Vad är logik?

Moderator: Moderatorgruppen

Användarvisningsbild
David H
Moderator
Inlägg: 5742
Blev medlem: 13 nov 2005 22:29
Ort: Knivsta/Uppsala

Inläggav David H » 26 feb 2011 22:28

Marko skrev:Premisser:
Om det regnar blir gräset blött
gräset har blivit blött
Fråga: Har det regnat?

rain = "unknown"
wet = "true"
echo $rain
> unknown

inte så svårt ?


Jag begriper mig inte på dataprogrammering! :P
Men jag menar att om du vill lösa ett problem med egentlig logik, måste du kunna gå hela den där vägen som jag visade, med omkodning till bokstäver. Om det inte går att lösa på motsvarande sätt är det inte heller ett logiskt problem.

Marko
Avstängd
Inlägg: 5407
Blev medlem: 13 jan 2011 01:47

Inläggav Marko » 26 feb 2011 22:57

rekoj skrev:
Marko skrev:Premisser:
Om det regnar blir gräset blött
gräset har blivit blött
Fråga: Har det regnat?

rain = "unknown"
wet = "true"
echo $rain
> unknown

inte så svårt ?


Jag begriper mig inte på dataprogrammering! :P
Men jag menar att om du vill lösa ett problem med egentlig logik, måste du kunna gå hela den där vägen som jag visade, med omkodning till bokstäver. Om det inte går att lösa på motsvarande sätt är det inte heller ett logiskt problem.


skriver om det lite bättre, mer förståeligt

$gräset="blött"
if $Om_det_regnar="ja" then $gräset="blött"
echo $Om_det_regnar

variabeln $Om_det_regnar har aldrig blivit satt och det är helt omöjligt att veta vad den är.
jag jämför och sätter variabler efter dina påståenden i problem2

det är logik med ett annat språk, just nu ett simpelt bash script.

Användarvisningsbild
David H
Moderator
Inlägg: 5742
Blev medlem: 13 nov 2005 22:29
Ort: Knivsta/Uppsala

Inläggav David H » 26 feb 2011 23:09

Marko skrev:
skriver om det lite bättre, mer förståeligt

$gräset="blött"
if $Om_det_regnar="ja" then $gräset="blött"
echo $Om_det_regnar

variabeln $Om_det_regnar har aldrig blivit satt och det är helt omöjligt att veta vad den är.
jag jämför och sätter variabler efter dina påståenden i problem2

det är logik med ett annat språk, just nu ett simpelt bash script.


All right, det är mycket möjligt att du har rätt!!

Kan du då på motsvarande sätt lösa problem 1, eller problem 3?

Problem 1

Premisser:
Alla kvinnor är män
Marko är en man
Fråga: Är Marko en kvinna?

Problem 3:

Premisser:
USA:s huvudstad heter antingen New York eller Nev York
USA:s huvudstad heter inte Nev York
Fråga: Heter USA:s huvudstad New York?


Ena problemet går att besvara med hjälp av logik, det andra inte.

Marko
Avstängd
Inlägg: 5407
Blev medlem: 13 jan 2011 01:47

Inläggav Marko » 26 feb 2011 23:21

Premisser:
Alla kvinnor är män
Marko är en man
Fråga: Är Marko en kvinna?

Problem 3:

Premisser:
USA:s huvudstad heter antingen New York eller Nev York
USA:s huvudstad heter inte Nev York
Fråga: Heter USA:s huvudstad New York?

Ena problemet går att besvara med hjälp av logik, det andra inte.


$kvinnor="kvinnor";$män="män"
$kvinnor = $män
$marko = $män
echo $marko
> marko är en män
echo $kvinna
>kvinnor är män

kollar in problem 3 senare... (trött just nu, har haft fullt upp hela dan och har annat i huvvet : )

Användarvisningsbild
David H
Moderator
Inlägg: 5742
Blev medlem: 13 nov 2005 22:29
Ort: Knivsta/Uppsala

Inläggav David H » 26 feb 2011 23:32

Marko skrev:
$kvinnor="kvinnor";$män="män"
$kvinnor = $män
$marko = $män
echo $marko
> marko är en man

kollar in problem 3 senare... (trött just nu, har haft fullt upp hela dan och har annat i huvvet : )


Bra jobbat! Se din metod funkar att avgöra vilket problem som går att lösa genom logik. Det var allt jag ville veta, du behöver inte besvära dig med att koda om tredje problemet också.
I det här fallet fick vi inget svar om Marko är en kvinna, alltså var logiken inte till hjälp för att besvara frågan.

Marko
Avstängd
Inlägg: 5407
Blev medlem: 13 jan 2011 01:47

Inläggav Marko » 26 feb 2011 23:59

Ja det var lite roligt, har aldrig testat det på det här viset och mot logiska argument som dessa. (brukar vara mer konkreta saker)
antar att datorer är logiska heh.

Användarvisningsbild
David H
Moderator
Inlägg: 5742
Blev medlem: 13 nov 2005 22:29
Ort: Knivsta/Uppsala

Inläggav David H » 27 feb 2011 00:30

Kan väl lösa sista problemet med min metod

Steg 1

Frågeställare:
Heter USA:s huvudstad New York?

Steg 2

Forskare:
USA:s huvudstad heter antingen New York eller Nev York
USA:s huvudstad heter inte Nev York

Steg 3

Kodare:
p eller q
Inte q

Fråga: p eller q?

Steg 4

Logiker:
p eller q
inte q
alltså p!

Steg 5

Kodare:
Svar p återskrivs:
USA:s huvudstad heter New York

---

Problemet kunde lösas med hjälp av logik, det var ett logiskt problem!

Aftermath:

Någon viktigpetter dyker upp och påpekar att USA:s huvudstad faktiskt heter Washington och inte New York. Felet är då inte logikerns utan forskarens. Det är forskaren som har slarvat i sin research och gett oss falska premisser. Logiken är per definition oantastlig.

Dura M
Inlägg: 438
Blev medlem: 06 mar 2008 11:17

Inläggav Dura M » 27 feb 2011 00:34

Marko skrev:skriver om det lite bättre, mer förståeligt

$gräset="blött"
if $Om_det_regnar="ja" then $gräset="blött"
echo $Om_det_regnar

variabeln $Om_det_regnar har aldrig blivit satt och det är helt omöjligt att veta vad den är.
jag jämför och sätter variabler efter dina påståenden i problem2

det är logik med ett annat språk, just nu ett simpelt bash script.

Problemet med ditt program är att om man istället sätter $gräset="inte blött" så vet logikern att det inte regnar men ditt program ger fortfarande inget svar.

Logikerns "om ... så ..." motsvaras inte av programmerarens "if ... then ...". Många programmeringsspråk har ingen operator för materiell implikation utan man får istället skriva det som "not p or q".

Marko
Avstängd
Inlägg: 5407
Blev medlem: 13 jan 2011 01:47

Inläggav Marko » 27 feb 2011 01:35

ja normalt sett så körs ju logiska argumenten med and && not ! or ||
men för det här exemplet funkade det fint med if then else (orka skriva ett komlett script med rätt syntax i en xp som jag sitter vid nu ; )

Dura M
Inlägg: 438
Blev medlem: 06 mar 2008 11:17

Inläggav Dura M » 27 feb 2011 01:57

Det fungerar som sagt inte när gräset inte är blött, vilket visar att programmets logiska struktur inte är korrekt.

Användarvisningsbild
nytt namn
Inlägg: 782
Blev medlem: 23 okt 2009 06:42

Inläggav nytt namn » 27 feb 2011 02:11

Dura M skrev:Logikerns "om ... så ..." motsvaras inte av programmerarens "if ... then ...". Många programmeringsspråk har ingen operator för materiell implikation utan man får istället skriva det som "not p or q".
för att förtydliga, det korrekta (if-sats + "not p or q") är:
"if not p or q then true else false" (problemet här är att man även använder "or"/"eller" i definitionen av materiell implikation)

bättre är då istället denna variant:
"if not p then q else true"
alternativt:
"if p then true else q"

se även:
http://sv.wikipedia.org/wiki/Implikation#Materiell_implikation
http://en.wikipedia.org/wiki/Logic_gate#Logic_gates
http://en.wikipedia.org/wiki/Material_conditional

...

"(predikat) logik" går inte att skapa med if-satser på ovanstående sätt marko gör i tråden. Ska man konstruera "(predikat) logik" så behöver man språk som "prolog" ("programming in logic").

http://sv.wikipedia.org/wiki/Prolog_%28programmeringsspr%C3%A5k%29
http://en.wikipedia.org/wiki/Prolog

...

Överlag är inäggen i denna tråd förvirrade. De flesta skribenter tycks ha svårt att hitta en generös (eller ens användbar) definition av "logik" som samtidigt inte är normerande.
Det verkar vara svårt att klargöra huruvida "logik" finns i "språket", "världen", "huvudet", "korrelationen", "koherensen", är "objektiv" etc. Om den är atomär/diskret/isolerad eller kombinationär/kontigent, etc.

Detta ser jag (för att förenkla diskussionen en aning) som en del av den logocentriska jakten på det "transcendental signified". http://www.google.se/search?q=derrida+transcendental+signified

Förvirringen innefattar även detta stycke, om Auk här med "ni" implicerar "mig":
J R Auk skrev:Ni blandar ihop era programmeringsspråk, som består av logiska operander (och vilket visar problematiken med logik då ett begrepp har en identitet och inte flera) med logik.
http://www.filosofiforum.com/forum/viewtopic.php?p=174206&highlight=#174206

Dura M
Inlägg: 438
Blev medlem: 06 mar 2008 11:17

Inläggav Dura M » 27 feb 2011 02:38

nytt namn skrev:för att förtydliga, det korrekta (if-sats + "not p or q") är:
"if not p or q then true else false" (problemet här är att man även använder "or"/"eller" i definitionen av materiell implikation)

If-operatorn är överflödig. Det räcker med "not p or q".

nytt namn skrev:bättre är då istället denna variant:
"if not p then q else true"
alternativt:
"if p then true else q"

Det stämmer inte. Skall vara "if p then q else true".

Marko
Avstängd
Inlägg: 5407
Blev medlem: 13 jan 2011 01:47

Inläggav Marko » 27 feb 2011 05:47

#!/bin/sh
graset="blött"
if [ $Om_det_regnar = "true" ]; then
graset="blött"
elif [ $Om_det_regnar = "false" ]; then
graset="torrt"
fi
echo $Om_det_regnar
exit 1

där fungerar scriptet [syntaxen är dock inte felkollad]  och torrt är med, jag skulle kunna föra in ! & | -a -o -n och jämföra det mot p eller q (alla programmerar olika, vissa vill komprimera ner ett script till en rad, jag gillar att ha det luftigt)
men vitsen med tråden var inte att lära sig korrekt syntax i ett programmeringsspråk eller programmera en hel logik motor eller ens en dators sätt att lösa problem.. logiken fungerar även om inte ett helt komplett system satts upp. man kan testa givna premisser på ett enkelt sätt med lite grundläggande programmerings kunskaper. (kom vi fram till)
och jag satte upp det rakt upp och ner utefter hur problem 2 var presenterad.

jag antar att jag tog upp scripting som metod eftersom det är lite så som jag tänker när jag såg problemen.
problem 3 skulle jag sätta upp i en array och jämföra variablerna efter premisserna.

Användarvisningsbild
nytt namn
Inlägg: 782
Blev medlem: 23 okt 2009 06:42

Inläggav nytt namn » 27 feb 2011 10:38

Dura M skrev:
nytt namn skrev:för att förtydliga, det korrekta (if-sats + "not p or q") är:
"if not p or q then true else false" (problemet här är att man även använder "or"/"eller" i definitionen av materiell implikation)

If-operatorn är överflödig. Det räcker med "not p or q".
Ska du endast göra en assignment så stämmer detta. Men inte om du ska brancha. Men nu när jag tänker efter så har du rätt i detta, branchen behöver inte komma samtidigt som assignment utan kan komma senare, alt så behövs ingen branch.

En annan sak, i språk med den trenära operatorn ?: behöver inte "not" eller "or", det räcker med: "p?q:true" eller "p?q:1".
Genom detta kan man konstruera rätt vackra kedjor i språk som "c":

Kod: Markera allt

int r
=p1?q1
:p2?q2
:p3?q3
:p4;




Dura M skrev:
nytt namn skrev:bättre är då istället denna variant:
"if not p then q else true"
alternativt:
"if p then true else q"

Det stämmer inte. Skall vara "if p then q else true".
Du har så rätt här med. Talade i nattmössan igår :)

En annan sak jag tänkte på, är att det första av mina exemplet är "mindre elegant" än det andra, eftersom den första även innehåller "not" operatorn.

Användarvisningsbild
Anders
Inlägg: 9350
Blev medlem: 23 mar 2006 01:44
Kontakt:

Inläggav Anders » 27 feb 2011 11:51

Där är där man inte är, här är här man är. För här har man alltid med sig.
Min blogg över mitt filosofiska läsande --> http://ingenfilo.blogspot.com
Jonathan Haidt - A righteous mind
Juli 2026


Återgå till "Filosofi"

Vilka är online

Användare som besöker denna kategori: 28 och 0 gäster