Rakendusliku loogika süvakursus: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 35 vahepealset redaktsiooni)
4. rida: 4. rida:
Arhiiv: [[ITV0081 arhiiv 2014|2013]], [[ITV0081 arhiiv 2012|2012]]
Arhiiv: [[ITV0081 arhiiv 2014|2013]], [[ITV0081 arhiiv 2012|2012]]


== Eksam ==
Aeg ja koht (kaks eraldi aega):
* 4. juuni, neljapäev, kell 10:00 ruumis <font color="red"><b>ICT-A1</b></font>, ülesanded saab samas Ago Lubergi käest (IT maja on esialgu planeeritud SOC-210 asemel, kuna T. Tammet peab olema magistrikaitsmise komisjonis)
* 11. juuni, neljapäev, kell 10:00 ruumis <b>ICT-A2</b> (IT-maja)
== Eksamiküsimused ==
Lausearvutus:
* Ülesanded lahendamiseks DPLL-ga (paar väikest lausearvutuse valemit, mille vastuolulisus või mudel leida käsitsi DPLL algoritmi abil (splitting ja unit propagation), st joonistada otsingupuu)
* Osata tõestada teoreem 17.5  (muutujateta resolutsioonimeetodi  täielikkus) lk 307 Prank, Tamme, Tammeti õpikust.
Predikaatarvutus:
* Ülesanded lahendamiseks: skolemiseerimine ja normaalkujule viimine.
* Ülesanded lahendamiseks: unifitseerimine.
* Ülesanded lahendamiseks: vastuolu tuletamine ilma võrduseta.
* Ülesanded lahendamiseks: vastuolu tuletamine võrdusega.
* Ülesanded lahendamiseks: Knuth-Bendixi täielikustamine.
Kõik ülesanded antakse Otteri kujul (muutujad suurte tähtedega) ja vaja on kirjutada välja detailne tõestus, samas otsingut ei ole vaja välja kirjutada. Unifitseerimise juures on vastuseks unifikaator, Knuth-Bendixi puhul on tulemuseks täielikustatud võrduste hulk.
Mõne ülesande juures võib juhtuda, et tõestust ei olegi (ei ole vastuoluline). Sel juhul selgitada, miks ei ole vastuoluline.
== Häid linke ==
https://news.ycombinator.com/item?id=9565577
http://wiremask.eu/hackingweek-2015-reverse-4/


== Koht ja aeg ==
== Koht ja aeg ==


Semester: kevad<br>
Semester: kevad<br>
Hindamine: eksam + praktikumid<br>
Hindamine: 60% eksam + 40% praktikumid<br>. Kolm kohustuslikku praktikumi, üks valikuline.
Loengud: iga neljapäev kell  12:00-13:30 ruumis IT-A2<br>
Loengud: iga neljapäev kell  12:00-13:30 ruumis IT-A2<br>
Praktikumid: neljapäeviti paarisnädalatel kell 10:00-11:30 ruumis IT-637<br>
Praktikumid: neljapäeviti paarisnädalatel kell 10:00-11:30 ruumis IT-637<br>


== Soovitatav kirjandus:==


==Soovitatav kirjandus:==
* T.Tamme, T.Tammet, R.Prank.  [http://dspace.utlib.ee/dspace/bitstream/handle/10062/24397/9985562313.pdf Loogika: mõtlemisest tõestamiseni. TÜ Kirjastus, 2002]
* T.Tamme, T.Tammet, R.Prank.  [http://dspace.utlib.ee/dspace/bitstream/handle/10062/24397/9985562313.pdf Loogika: mõtlemisest tõestamiseni. TÜ Kirjastus, 2002]
* [[Media:Geoffreasoningnotes.pdf|Geoff reasoning course notes]]
* [[Media:Geoffreasoningnotes.pdf|Geoff reasoning course notes]]


== Lahendajad testimiseks ==
Test and compare simple propositional solver algorithms:
Latest:
* [http://logictools.org Proper logictools site]
Old versions:
* [http://dijkstra.cs.ttu.ee/~tammet/logictools/proplogic.html Uuem, arenduses versioon]
* [http://dijkstra.cs.ttu.ee/~tammet/proplogic.html Vana versioon]


== Kodused ülesanded ==
== Kodused ülesanded ==


Ülesanded jagunevad kaheks:
Esimesed kolm ülesannet on kohustuslikud, neljas on vabatahtlik ja annab potentsiaalselt suure hulga lisapunkte.
* käsitsi väikeste ülesannete lahendamine
* tõestajatega eksperimenteerimine mittetriviaalsete ülesannete automaatseks lahendamiseks


=== 1. prax: ülesanded ===
* 26. veebruar: käsitsi [[lausearvutuse ja lihtsamate predikaatarvutuse ülesannete lahendamine]].
* 12 või 26 märts: lausearvutuse tõestajatega eksperimenteerimine. Vali kas lihtsam variant [[Prax 2: lausearvutuse lahendajatega eksperimenteerimine]] või keerukam variant: [[Prax 2: lihtsa DPLL lahendaja realiseerimine]]
* [[Prax3: tõestajatega eksperimenteerimine 2015]]
* Vabatahtlik [[Prax4: induktiivne tõestus 2015]]


See ülesanne kehtib 2015 aastal.
== Loenguteemad ja materjalid  ==


26. veebruar
=== 1. Sissejuhatus. Süntaks ja semantika. ===


[[lausearvutuse ja lihtsamate predikaatarvutuse ülesannete lahendamine]].
5. veebruar


=== 2. prax: lausearvutuse tõestajatega eksperimenteerimine ===
[[Media:RakLoogika_1_tz_tt-1.ppt|Loengukonspekt (ppt)]] <br>


See ülesanne on näide 2013 aastast, mida lähiajal uuendatakse 2015 aastaks.
=== 2. Resolutsioonimeetod ja DPLL lausearvutuses ===


Tähtaeg 14. märts:
12. veebruar.


Ülesandel on kaks varianti - lihtsam ja keerulisem - ning võid ise valida, kumbat teed.
NB! Praktikum kell 10.


[[Prax 2: lausearvutuse lahendajatega eksperimenteerimine]]
[[Media:RakLoogika_2_tz_tt-1.ppt|Loengukonspekt (ppt)]]  


[[Prax 2: lihtsa DPLL lahendaja realiseerimine]]
Täiendavalt väga detailne kolmeosaline loengukomplekt  Eugene Goldbergilt: [http://eigold.tripod.com/presentations/Lecture1.zip loeng1], [http://eigold.tripod.com/presentations/Lecture2.zip loeng2],[http://eigold.tripod.com/presentations/Lecture3.zip loeng3]


=== 3. prax: tõestajatega eksperimenteerimine ===
=== 3. DPLL optimeeringud ja algus: resolutsioonimeetod predikaatarvutuses: põhialgoritm ===


See ülesanne on näide 2013 aastast, mida lähiajal uuendatakse 2015 aastaks.
19. veebruar.


Tähtaeg: mai algus
=== 4. Resolutsioonimeetod predikaatarvutuses: põhialgoritm jätkub ===


predikaatarvutuse tõestajatega eksperimenteerimine.
26. veebruar.


Kaks osa: soendus ja põhiosa.
NB! Praktikum kell 10. Esimese ülesannetekomplekti vastuste tähtaeg.


A) Soendus:
Vaata kindlasti ka: [http://dijkstra.cs.ttu.ee/~tammet/proplogic.html Test and compare simple propositional solver algorithms]


1. osa: lihtsad katsed tõestajaga
=== 4. Resolutsioonimeetod predikaatarvutuses: põhialgoritm jätkub ===


Geoff:
5. märts.


* lk 36 ülesanded 1,3,4,5,6,8
=== 5. Resolutsioonimeetod predikaatarvutuses: strateegiad ===
* lk 43 ülesanne 7: joonista puu
* lk 47 ülesanne 2


Eesti õpik:
12. märts


* lk 319 ülesanne 3
=== 6. Võrdus predikaatarvutuses ===


B) Põhiosa: katsed tõestajaga, kus Otter automaatrezhiim ei leia mõistliku
19. märts.
aja jooksul lahendust, vaja on ise proovida eri strateegiaid.  
Ülesanded: [[Media:Problems.tar.gz‎]]. Mõned neist (ntx ex_1) on lihtsad, ja Otteri automaatrezhiim leiab kiirelt tõestuse. Alustagi lihtsatest. Enamik ülesandeid on keerulisemad.


=== 6. Võrdus predikaatarvutuses jätkub: termiteisendussüsteemid ===


Mida sa pead nende ülesannetega tegema? Leidma Otteriga lahenduse, kusjuures pead ise seadma sellised otsingustrateegiad ja piirangud, et Otter sinu masinas hakkama saaks.
26. märts.
Seejuures <b>ei tohi</b> kasutada automaatrezhiimi ja GEO ülesannete juures ei tohi kasutada splittimist. Sa võid küll automaatrezhiimi ja splittimisega katsetada (see on täiesti soovitav)
aga lõpuks pead leidma ise fikseeritud strateegia ja piirangud, millega Otter lahenduse leiab.
Vaata kindlasti ka
* [[soovitusi Otteri otsingu suunamiseks]].
* [http://www.cs.miami.edu/~tptp/ TPTP] ja sealt [http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Problems Problems] ja selle alt leiad ülesannete tõestused ja saad online katsetada hulga eri tõestajatega: eriti head on Vampire ja E.
* [https://www.cs.unm.edu/~mccune/mace2/ Otter]


=== 4. prax ===


See ülesanne on näide 2013 aastast, mida lähiajal uuendatakse 2015 aastaks.
== <font color="red">Kursuse lõpu-tegevused</font> ==


See on vabatahtlik praks, mis annab hulgaliselt ekstrapunkte.
30. aprill loeng: Tanel jätkab verifitseerimisega.


Ülesanne on tõestada
7. mai: eelviimane prax.
<pre>
All x All y Exists z All u ((m(u,x) & m(u,y)) <=> m(u,z))
</pre>
eeldades, et on defineeritud member funktsioon
<pre>
-m(X,n).
m(X,c(X,Y)).
X=Z | m(X,Y) | -m(X,c(Z,Y)).
-m(X,Y) | m(X,c(Z,Y)).
</pre>
Ja Otteri jaoks ära unusta ka lisada aksioomi
<pre>
X=X
</pre>


Tõestuse jaoks on vaja kasutada induktsiooni, st tõestada nii
7. mai loeng: Tanel räägib mitte-verifitseerimisrakendustest.
induktsiooni baas
<pre>
All y Exists z All u ((m(u,n) & m(u,y)) <=> m(u,z))
</pre>
kui induktsiooni samm
<pre>
All x ((All y Exists z All u ((m(u,x) & m(u,y)) <=> m(u,z)))
      =>
      (All h All y1 Exists z1 All u1 ((m(u1,c(h,x)) & m(u1,y1))
                                      <=> m(u1,z1)))
</pre>


== 2015 aasta loengute materjalid  ==
14. mai: Juhan räägib SMT-solveritest


# [[Media:RakLoogika_1_tz_tt.ppt|Sissejuhatus, süntaks, semantika (ppt)]] <br>
21. mai: eksamiülevaade jms.
# [[Media:RakLoogika_2_tz_tt.ppt|Resolutsioonimeetod ja DPLL lausearvutuses (ppt)]] <br>
 
# DPLL tehnoloogia: hea väga detailne kolmeosaline loengukomplekt  Eugene Goldbergilt: [http://eigold.tripod.com/presentations/Lecture1.zip loeng1], [http://eigold.tripod.com/presentations/Lecture1.zip loeng2],[http://eigold.tripod.com/presentations/Lecture1.zip loeng3]
21. mai: viimane prax, hiljemalt selleks ajaks vaja esitada oma tööd!!! Kes on


== Vanad 2012 aasta loengute materjalid ==
== Vanad 2012 aasta loengute materjalid ==
139. rida: 149. rida:


== Eksam ==
== Eksam ==
<b>NB! see on näitekirjeldus 2013 eksamist: 2015 eksam tuleb veidi teistsugune</b>


Eksamil on küsimusi kolmest teemast:
Eksamil on küsimusi kolmest teemast:

Viimane redaktsioon: 3. juuni 2015, kell 17:15

Ainekood: ITV0081
Lektor: Tanel Tammet
Kontakt: tanel.tammet@ttu.ee, 6203457, TTÜ IT-426
Arhiiv: 2013, 2012


Eksam

Aeg ja koht (kaks eraldi aega):

  • 4. juuni, neljapäev, kell 10:00 ruumis ICT-A1, ülesanded saab samas Ago Lubergi käest (IT maja on esialgu planeeritud SOC-210 asemel, kuna T. Tammet peab olema magistrikaitsmise komisjonis)
  • 11. juuni, neljapäev, kell 10:00 ruumis ICT-A2 (IT-maja)

Eksamiküsimused

Lausearvutus:

  • Ülesanded lahendamiseks DPLL-ga (paar väikest lausearvutuse valemit, mille vastuolulisus või mudel leida käsitsi DPLL algoritmi abil (splitting ja unit propagation), st joonistada otsingupuu)
  • Osata tõestada teoreem 17.5 (muutujateta resolutsioonimeetodi täielikkus) lk 307 Prank, Tamme, Tammeti õpikust.

Predikaatarvutus:

  • Ülesanded lahendamiseks: skolemiseerimine ja normaalkujule viimine.
  • Ülesanded lahendamiseks: unifitseerimine.
  • Ülesanded lahendamiseks: vastuolu tuletamine ilma võrduseta.
  • Ülesanded lahendamiseks: vastuolu tuletamine võrdusega.
  • Ülesanded lahendamiseks: Knuth-Bendixi täielikustamine.

Kõik ülesanded antakse Otteri kujul (muutujad suurte tähtedega) ja vaja on kirjutada välja detailne tõestus, samas otsingut ei ole vaja välja kirjutada. Unifitseerimise juures on vastuseks unifikaator, Knuth-Bendixi puhul on tulemuseks täielikustatud võrduste hulk.

Mõne ülesande juures võib juhtuda, et tõestust ei olegi (ei ole vastuoluline). Sel juhul selgitada, miks ei ole vastuoluline.

Häid linke

https://news.ycombinator.com/item?id=9565577 http://wiremask.eu/hackingweek-2015-reverse-4/

Koht ja aeg

Semester: kevad
Hindamine: 60% eksam + 40% praktikumid
. Kolm kohustuslikku praktikumi, üks valikuline. Loengud: iga neljapäev kell 12:00-13:30 ruumis IT-A2
Praktikumid: neljapäeviti paarisnädalatel kell 10:00-11:30 ruumis IT-637

Soovitatav kirjandus:

Lahendajad testimiseks

Test and compare simple propositional solver algorithms:

Latest:

Old versions:

Kodused ülesanded

Esimesed kolm ülesannet on kohustuslikud, neljas on vabatahtlik ja annab potentsiaalselt suure hulga lisapunkte.

Loenguteemad ja materjalid

1. Sissejuhatus. Süntaks ja semantika.

5. veebruar

Loengukonspekt (ppt)

2. Resolutsioonimeetod ja DPLL lausearvutuses

12. veebruar.

NB! Praktikum kell 10.

Loengukonspekt (ppt)

Täiendavalt väga detailne kolmeosaline loengukomplekt Eugene Goldbergilt: loeng1, loeng2,loeng3

3. DPLL optimeeringud ja algus: resolutsioonimeetod predikaatarvutuses: põhialgoritm

19. veebruar.

4. Resolutsioonimeetod predikaatarvutuses: põhialgoritm jätkub

26. veebruar.

NB! Praktikum kell 10. Esimese ülesannetekomplekti vastuste tähtaeg.

Vaata kindlasti ka: Test and compare simple propositional solver algorithms

4. Resolutsioonimeetod predikaatarvutuses: põhialgoritm jätkub

5. märts.

5. Resolutsioonimeetod predikaatarvutuses: strateegiad

12. märts

6. Võrdus predikaatarvutuses

19. märts.

6. Võrdus predikaatarvutuses jätkub: termiteisendussüsteemid

26. märts.


Kursuse lõpu-tegevused

30. aprill loeng: Tanel jätkab verifitseerimisega.

7. mai: eelviimane prax.

7. mai loeng: Tanel räägib mitte-verifitseerimisrakendustest.

14. mai: Juhan räägib SMT-solveritest

21. mai: eksamiülevaade jms.

21. mai: viimane prax, hiljemalt selleks ajaks vaja esitada oma tööd!!! Kes on

Vanad 2012 aasta loengute materjalid

  1. Meeldetuletus lausearvutusest. (ppt)
  2. Meeldetuletus predikaatarvutusest. (ppt)
  3. Sekventsarvutus.
  4. Tõestuseotsingu strateegiad.
  5. Unifitseerimine. (ppt)
  6. Sissejuhatus automaattõestamisse.
  7. Davis-Putnami meetod. (ppt)
  8. Resolutsioonimeetod lausearvutuses. (ppt)
  9. Resolutsioonimeetod predikaatarvutuses. (ppt).
  10. Resolutsioonistrateegiad. (ppt)
  11. Võrdusega predikaatarvutus. (ppt)
  12. Mitteklassikalised loogikad.


Eksam

NB! see on näitekirjeldus 2013 eksamist: 2015 eksam tuleb veidi teistsugune

Eksamil on küsimusi kolmest teemast:

  • Indekseerimine:
    • McCune klassikalise artikli tasemel: Media: Mccuneindexing.pdf
    • Oskus ehitada väikesi discrimination tree indeksipuid (trie termi jaoks).