Loogiline programmeerimine

Kogu kursus põhineb näidisülesannetel ja harjutustel, mida kuulajad peavad ise läbi tegema. Sellepärast eeldatakse oma arvuti kasutamise võimalust (harjutustundide aeg pole piisav kõige läbitegemiseks ja kõigest arusaamiseks), s.t. kuuljatel peab olema võimalus kasutada väljaspool harjutustundide aega arvutit, kuhu nad saavad installeerida Prologi.

Kursuses kasutatav Swi-Prolog koos selle graafikalaiendiga on vaba ja selle saab maha laadida Swi-Prologi www-saidilt http://www.swi-prolog.org; saadaval on nii Windows-i, Linux-i kui ka Unix-i versioon. Installeerimine toimub automaatselt, vajaduse korral võib (hiljem, s.t. installeerimise järel) vaadata ka selgitusi failis README.TXT. Installeerimisel luuakse ka abitekstide kataloogid (Help); Prologi abimaterjalid on kataloogis Manual ja XPCE materjalid - kataloogis UserGuide. Swi-Prologil on oma editor programmide editeerimiseks, kuid see on Emacs-i stiilis (Unix-ümbruses tuntud tekstieditor) ja algajale võib olla lihtsam Swi-Prologi Windows-ümbruses töötav editor, mille saab samuti Swi-Prolog-i saidilt, menüüst IDE(Tools)- SWI-Prolog-Editor (Gerhard Röhner-i loodud). Lühiülevaade Swi-Prologi ja programmieditoride kasutamisest on esitatud loengus 0.5.

Isiklikuks kasutamiseks on vaba (freeware) ka Visual Prolog (töötab Windows-i akendega; lühiiseloomustus on esitatud loengus Prologi realisatsioonid.

Loogilises (s.t. Prolog) programmeerimises on peaaegu igal aastal korraldatud rahvusvahelisi võistlusi. Aastal 2017 toimunud vőistluse info vt https://sites.google.com/site/prologcontest2017/, 2019 a. vőistlus https://sites.google.com/view/iclpprogcontest2019/systems (näitena ka 2002. aasta võistluse ülesanded).
Stanfordi ülikool korraldas ka vőistlust mänge mängivatele programmidele; osalev programm peab mängu kirjelduse põhjal (kirjeldus on keeles KRF, mis on väga sarnane Prologile) suutma mängida teiste võistluses osalevate programmidega; peaauhind oli 10000 USD. Kes selle kursuse edukalt sooritasid, peaks olema võimelised selles võitluses osalema; ka siis, kui esikohale tulek ei õnnestu, võib kaasneda kutse tulla Stanfordi õppima, ja see on üks maailma aremaid ja mainekamaid ülikoole - Silicon Valey naabruses ;-)

Kursuse sisu:
Mis on Loogiline Programmeerimine?
Intellekt, Imperatiivne ja Deklaratiivne Programmeerimine
Arvutamisel põhinev intellekt
Swi-Prologi kasutajaümbrus
Programeerimine loogikas
Kuidas Prolog otsib vastust päringule?
Kuidas loomulikku keelt tõlkida Prologi?
Prologi seos loogikaga
Loomulik keel -> Prologi laused
80 päevaga ümber maailma
Mis päev on täna?
Tee otsimine labyrindis
Loogilisi keerdülesandeids
Nimistud ja andmestruktuurid
Nimistud
Mida millest saab, mis millest koosneb
Prologi andmetüübid
Prologi loogikaoperaatorid
Nimistute käsitlemine
Tee kaardil ja Dijkstra algoritm
Lõpprekursioon
Lõpprekursioon ja keerukus
Paljude piirangutega ülesanded: konverentsi ajakava
Mängud
Hunt, kits ja kapsad
Kaheksa lippu
Nim
Kui keerukas on Nim?
Trips-traps-trull ja minimax
Mõttemeister (Mastermind)
Keel ja grammatika
Morfolooogiline analüüs
Lihtlause struktuur:
Verbiliigid
Silbitamine
Arvsõnade interpreteerimine
Erinevusnimistud
DCG
Loomuliku keele tekkimine: agendid õpivad rääkima
SQL, induktiivsed andmebaasid ja päringud loomulikus keeles
Semantiline web ja ontoloogia
Matemaatika
Analüütiline differentseerimine ja avaldise lihtsustamine
Sisendite-väljundite ühendamine (routing)
Loogiliste skeemide modeleerimine
Krüptoritmide lahendamine
Määratud integraal
Ridade summeerimine
Neljavärviprobleem
Ilmutamata võrrandite lahendamine
Ekspertsüsteemid
Ekspertsüsteemid
Arvutusülesannete lahendamine - NUT
Objekt-orienteeritud programeerimine Prologis
SWI-Prologi graafika
SWI-Prologi graafikalaiendus: XPCE
Rubik 2D
Kuidas genereerida labyrinti?
AI mängudes: Wumpusejaht (Doom-i eelkäija)
Arvutamine looduses
Fraktaalid ja Lindenmayeri süsteemid
Fraktaalid looduses
Rakuautomaadid
Prologi realisatsioone, Kirjandus
Prologi realiseeringud
Visual Prolog
Kirjandus

Küsimused, probleemid: