Rakendusliku loogika süvakursus: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 33 vahepealset redaktsiooni)
5. rida: 5. rida:




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


Semester: kevad<br>
Aeg ja koht (kaks eraldi aega):
Hindamine: eksam + praktikumid<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>


* 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)


== Soovitatav kirjandus:==
== Eksamiküsimused ==


* 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]]


Lausearvutus:


== Kodused ülesanded ==
* Ü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.


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


* 26. veebruar: käsitsi [[lausearvutuse ja lihtsamate predikaatarvutuse ülesannete lahendamine]].
* Ülesanded lahendamiseks: skolemiseerimine ja normaalkujule viimine.
* 14. 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]]
* Ülesanded lahendamiseks: unifitseerimine.
* [[Prax3: tõestajatega eksperimenteerimine 2015]]
* Ülesanded lahendamiseks: vastuolu tuletamine ilma võrduseta.
* Vabatahtlik [[Prax4: induktiivne tõestus 2015]]
* Ülesanded lahendamiseks: vastuolu tuletamine võrdusega.
* Ülesanded lahendamiseks: Knuth-Bendixi täielikustamine.


=== 1. prax: ülesanded ===
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.


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


26. veebruar
== Häid linke ==


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


== Koht ja aeg ==


=== 2. prax: lausearvutuse tõestajatega eksperimenteerimine ===
Semester: kevad<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>
Praktikumid: neljapäeviti paarisnädalatel kell 10:00-11:30 ruumis IT-637<br>


See ülesanne on näide 2013 aastast, mida lähiajal uuendatakse 2015 aastaks.
== Soovitatav kirjandus:==


Tähtaeg 14. märts:  
* 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]]


Ülesandel on kaks varianti - lihtsam ja keerulisem - ning võid ise valida, kumbat teed.
== Lahendajad testimiseks ==


[[Prax 2: lausearvutuse lahendajatega eksperimenteerimine]]
Test and compare simple propositional solver algorithms:


[[Prax 2: lihtsa DPLL lahendaja realiseerimine]]
Latest:


=== 3. prax: tõestajatega eksperimenteerimine ===
* [http://logictools.org Proper logictools site]


See ülesanne on näide 2013 aastast, mida lähiajal uuendatakse 2015 aastaks.
Old versions:


Tähtaeg: mai algus
* [http://dijkstra.cs.ttu.ee/~tammet/logictools/proplogic.html Uuem, arenduses versioon]
* [http://dijkstra.cs.ttu.ee/~tammet/proplogic.html Vana versioon]


predikaatarvutuse tõestajatega eksperimenteerimine.
== Kodused ülesanded ==


Kaks osa: soendus ja põhiosa.
Esimesed kolm ülesannet on kohustuslikud, neljas on vabatahtlik ja annab potentsiaalselt suure hulga lisapunkte.


A) Soendus:
* 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]]


1. osa: lihtsad katsed tõestajaga
== Loenguteemad ja materjalid  ==


Geoff:
=== 1. Sissejuhatus. Süntaks ja semantika. ===


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


Eesti õpik:
[[Media:RakLoogika_1_tz_tt-1.ppt|Loengukonspekt (ppt)]] <br>


* lk 319 ülesanne 3
=== 2. Resolutsioonimeetod ja DPLL lausearvutuses ===


B) Põhiosa: katsed tõestajaga, kus Otter automaatrezhiim ei leia mõistliku
12. veebruar.
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.


NB! Praktikum kell 10.


Mida sa pead nende ülesannetega tegema? Leidma Otteriga lahenduse, kusjuures pead ise seadma sellised otsingustrateegiad ja piirangud, et Otter sinu masinas hakkama saaks.
[[Media:RakLoogika_2_tz_tt-1.ppt|Loengukonspekt (ppt)]]  
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 ===
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]


See ülesanne on näide 2013 aastast, mida lähiajal uuendatakse 2015 aastaks.
=== 3. DPLL optimeeringud ja algus: resolutsioonimeetod predikaatarvutuses: põhialgoritm ===


See on vabatahtlik praks, mis annab hulgaliselt ekstrapunkte.
19. veebruar.


Ülesanne on tõestada
=== 4. Resolutsioonimeetod predikaatarvutuses: põhialgoritm jätkub ===
<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
26. veebruar.
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>


== Loenguteemad ja materjalid  ==
NB! Praktikum kell 10. Esimese ülesannetekomplekti vastuste tähtaeg.
 
Vaata kindlasti ka: [http://dijkstra.cs.ttu.ee/~tammet/proplogic.html Test and compare simple propositional solver algorithms]
 
=== 4. Resolutsioonimeetod predikaatarvutuses: põhialgoritm jätkub ===
 
5. märts.
 
=== 5. Resolutsioonimeetod predikaatarvutuses: strateegiad ===
 
12. märts


=== 1. Sissejuhatus. Süntaks ja semantika. ===
=== 6. Võrdus predikaatarvutuses ===


5. veebruar
19. märts.


[[Media:RakLoogika_1_tz_tt.ppt|Loengukonspekt (ppt)]] <br>
=== 6. Võrdus predikaatarvutuses jätkub: termiteisendussüsteemid ===


=== 2. Resolutsioonimeetod ja DPLL lausearvutuses ===
26. märts.


12. veebruar.


[[Media:RakLoogika_2_tz_tt.ppt|Loengukonspekt (ppt)]]
== <font color="red">Kursuse lõpu-tegevused</font> ==


Täiendavalt 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]
30. aprill loeng: Tanel jätkab verifitseerimisega.


7. mai: eelviimane prax.


=== 3. Resolutsioonimeetod predikaatarvutuses: põhialgoritm ===
7. mai loeng: Tanel räägib mitte-verifitseerimisrakendustest.


19. veebruar.
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 ==
== Vanad 2012 aasta loengute materjalid ==
161. 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).