Presentation laddar. Vänta.

Presentation laddar. Vänta.

Introduktion Logikprogrammering HT-02 Staffan Larsson.

Liknande presentationer


En presentation över ämnet: "Introduktion Logikprogrammering HT-02 Staffan Larsson."— Presentationens avskrift:

1 Introduktion Logikprogrammering HT-02 Staffan Larsson

2 Mål och innehåll inledande kurs i logik-programmering ges för datalingvister, kognitionsvetare, samt som fristående kurs avser att ge –grundläggande färdigheter i Prolog –grundläggande kunskap om allmänna datalogiska begrepp (rekursion, datastrukturer, etc.)

3 Lärare –Staffan Larsson (kursansvarig): v.42, 46 –Rebecca Jonson: v.36, 38, 39 –Kenneth Wilhelmsson: v.44, 45, 47 –Pontus Johansson: v.40, 41, (49?) –David Hjelm: v.37, (43?) –Torbjörn Lager (ev.): v. 48 Handledare (övningar & laborationer) –Niklas Een –Karl-Henrik Hagdal Se hemsida för mailadresser, telefonnummer, etc.

4 Undervisning hela terminen, v.36 2002 – v.02 2003 Föreläsningar (v.36 – 49) –måndagar och onsdagar 13.15-15.00 –lokal: MDH Övningar (v.36 – 48) –fredagar 10.15-12.00 –lokal: MD8 + MD10 Laborationer (v.36 – 02) –måndagar 10-12, 15-19; onsdagar 10-12, 15-17; fredagar 13-17 –lokal: G, MD2 enligt schema –boka datorplats på anslagstavla på plan 1, MC Projektarbete (v.45 – 02) –handledning enligt överenskommelse med handledare

5 Examinering Tenta v.46, 16/11 –betyg: G (minst 50% rätt), VG (75%) –betyg sätts efter resultat på tentamen –Omtenta v.2, 10/1 –tentadelen: 5 poäng Projektredovisning v.1+2 –projektdelen: 3 poäng Inlämnade laborationer –laborationsdelen: 2 poäng

6 Kurslitteratur Ivan Bratko: Prolog Programming for Artificial Intelligence, 3rd edition, Addison-Wesley 2001. –Finns t ex på Cremona (650:-) Manual för SICStus Prolog version 3.8 –Säljs på distributionscentralen (DC), vid ED- huset på Chalmers Kompendier som delas ut under kursens gång

7 Hemsida www.ling.gu.se/~sl/logprog_02.html Innehåll: –schema föreläsningar övningar laborationer –kurslitteratur –övningar –laborationer –föreläsningsanteckningar –kurs-PM

8 Programmeringsspråk Procedurella/imperativa språk. Man beskriver hur problemet ska lösas. –Exempel: basic, pascal, c, c++, java, ada, python, perl,... Deklarativa språk. Man försöker istället beskriva vad problemet är, och överlämnar åt datorn att bestämma exakt hur. –Funktionella språk. Exempel: lisp, scheme, ml, haskell,... –Logiska språk. Exempel: prolog, mercury, oz, (sql),...

9 Prolog Ett prologprogram består av en mängd klausuler, som definierar ett antal predikat, eller relationer. –En klausul är antingen ett faktum, eller en regel. –Man kan se ett prologprogram som en databas, speciellt om programmet mestadels består av fakta. Man kör prolog genom att ställa frågor till databasen. En fråga kallas även mål (efter engelskans goal).

10 Fakta (kap 1.1) Följande databas definierar vi först: gillar(pelle, lisa). gillar(pelle, mat). gillar(pelle, rödvin). gillar(pelle, mamma). gillar(lisa, astrid). gillar(lisa, mat). gillar(lisa, öl). gillar(lisa, mamma). gillar(astrid, pelle). gillar(astrid, jesus). gillar(astrid, öl). gillar(astrid, mat). gillar(astrid, pappa). gillar(astrid, rödvin

11 Fakta, forts. Detta program definierar ett predikat gillar med 2 argument - vem som gillar och vad som gillas. När man pratar om ett predikat så brukar man dessutom nämna hur många argument det har genom att skriva gillar/2. –Antal argument kallas argumenttal, ställighet eller aritet. Definitionen av predikatet ovan består av 14 klausuler vilka alla är fakta.

12 Frågor (kap 1.1-1.4) Nu kan man ställa frågor till prolog om programmet ovan. ?- gillar(pelle, lisa). yes ?- gillar(lisa, pappa). no Här ser man att ordningen mellan argumenten är viktig.

13 Frågor, forts. Dessutom kan man stoppa in variabler i stället för ett argument man inte känner till. ?- gillar(pelle, Vad). Vad = lisa ; Vad = mat ; Vad = rödvin ; Vad = mamma ; no (more solutions) ?- gillar(Vem, öl). Vem = lisa ; Vem = astrid ; no (more solutions)

14 Frågor, forts. Det går också att ställa sammansatta frågor –separeras med ett kommatecken –Kommatecknet betyder att båda delmålen måste lyckas, vilket även kallas konjunktion. ?- gillar(lisa, Vad), gillar(astrid, Vad). Vad = mat ; Vad = öl ; no (more solutions)

15 Frågor, forts. Observera att man kan ge målen i en annan ordning, i vilket fall man får samma svar, men kanske i en annan ordning. ?- gillar(astrid, Vad), gillar(lisa, Vad). Vad = öl ; Vad = mat ; no (more solutions) Detta beror på att prolog söker i databasen uppifrån och ner, samt försöker lösa det första (vänstraste) målet innan den försöker vidare. –Detta söksätt kallas backtracking, läs mer om det i boken.


Ladda ner ppt "Introduktion Logikprogrammering HT-02 Staffan Larsson."

Liknande presentationer


Google-annonser