Válogatott fejezetek a logikai programozásból ASP. Answer Set Programming Kelemen Attila

Hasonló dokumentumok
Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

1. Logikailag ekvivalens

A logikai következmény

Az informatika logikai alapjai

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

2. Ítéletkalkulus szintaxisa

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

Predikátumkalkulus. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. Vizsgáljuk meg a következ két kijelentést.

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Logika és informatikai alkalmazásai

Logika es sz am ıt aselm elet I. r esz Logika Hatodik el oad as 1/33

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Elsőrendű logika. Mesterséges intelligencia március 28.

Logika és informatikai alkalmazásai

Logikai ágensek. Mesterséges intelligencia március 21.

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

Logika es sz am ıt aselm elet I. r esz Logika M asodik el oad as 1/26

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

A L Hospital-szabály, elaszticitás, monotonitás, konvexitás

Az informatika logikai alapjai

Deníciók és tételek a beugró vizsgára

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

A matematika nyelvér l bevezetés

Logika és informatikai alkalmazásai

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

1. Ábrázolja az f(x)= x-4 függvényt a [ 2;10 ] intervallumon! (2 pont) 2. Írja fel az alábbi lineáris függvény grafikonjának egyenletét!

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

KOVÁCS BÉLA, MATEMATIKA I.

Diszkrét matematika 1. középszint

Matematikai logika és halmazelmélet

2. Logika gyakorlat Függvények és a teljes indukció

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Kijelentéslogika, ítéletkalkulus

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Leképezések. Leképezések tulajdonságai. Számosságok.

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Algoritmusok bonyolultsága

Matematika III. harmadik előadás

Logika és informatikai alkalmazásai

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

Az informatika logikai alapjai

BASH script programozás II. Vezérlési szerkezetek

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Az informatika logikai alapjai

Trigonometria Megoldások. 1) Oldja meg a következő egyenletet a valós számok halmazán! (12 pont) Megoldás:

egyenlőtlenségnek kell teljesülnie.

A félév során előkerülő témakörök

Kijelentéslogika, ítéletkalkulus

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Logika kiskáté. Mihálydeák Tamás és Aszalós László

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Logika és informatikai alkalmazásai

Diszkrét matematika I.

Magyarok: Bereczki Ilona, Kalmár László, Neumann, Péter Rózsa, Pásztorné Varga Katalin, Urbán János, Lovász László

Diszkrét matematika I. gyakorlat

NP-teljesség röviden

Kongruenciák. Waldhauser Tamás

Knoch László: Információelmélet LOGIKA

Logika és informatikai alkalmazásai

LOGIKA. Magyarok: Bereczki Ilona, Kalmár László, Neumann, Péter Rózsa, Pásztorné Varga Katalin, Urbán János, Lovász László.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Logika és informatikai alkalmazásai

AZ INFORMATIKA LOGIKAI ALAPJAI

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Analízis előadás és gyakorlat vázlat

1. A matematikai logika alapfogalmai. 2. A matematikai logika műveletei

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Valószínűségi változók. Várható érték és szórás

Logika kiskáté. Mihálydeák Tamás és Aszalós László

Logika és számításelmélet. 11. előadás

1. Tétel - Az ítéletkalkulus alapfogalmai

A matematika nyelvéről bevezetés

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Diszkrét matematika 2.C szakirány

TANMENETJAVASLAT. Dr. Korányi Erzsébet MATEMATIKA. tankönyv ötödikeseknek. címû tankönyvéhez

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

KOVÁCS BÉLA, MATEMATIKA I.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

Az informatika logikai alapjai

Egészrészes feladatok

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

Kalkulus I. gyakorlat Fizika BSc I/1.

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Matematikai logika. 3. fejezet. Logikai m veletek, kvantorok 3-1

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

Átírás:

ASP 1

Kedvcsináló N királynő 3+1 sorban index(1..n). % minden sorban pontosan 1 királynő van 1{q(X,Y):index(X)}1 :- index(y). % az rossz, ha ugyanabban az oszlopban 2 királynő van :- index(x; Y1; Y2), q(x, Y1), q(x, Y2), Y1!= Y2. % az rossz, ha egy átlóban 2 királynő van :- index(x1; X2; Y1; Y2), q(x1, Y1), q(x2, Y2), Y1!= Y2, abs(x1 - X2) == abs(y1 - Y2). 2

Mi az ASP? Prolog Elsőrendű logika / Horn-klózok ASP Íteletlogika / Grounding Következik az állítás a programból? Létezik-e modellje a programnak? A válasz változó kötések A válasz a program modellje 3

A megengedett szabályok: Definíciók p 0 p 1,..., p m, not p m+1,..., not p n, ahol n m 0, és minden p i egy atom, és a not jelentése: nem bizonyítható. Legyen egy ilyen szabály r, ekkor fej(r) = p 0 törzs(r) = {p 1,..., p m, not p m+1,..., not p n } törzs + (r) = {p 1,..., p m } törzs - (r) = {not p m+1,..., not p n } 4

És megint definíciók... Egy Π program egyszerű, ha r Π törzs - (r) = X atomok halmaza zárt az egyszerű Π programon, ha r Π (törzs + (r) X fej(r) X) A legkisebb ilyen zárt halmazt válaszhalmaznak nevezzük. Ez fogja nekünk adni a modell leírását. Jelölésben: Cn(Π). Π X = { fej(r) törzs + (r) r Π, törzs - (r) X = }: Π program redukáltja X felett Egy Π program válaszhalmaza X = Cn(Π X ) Ennyi 5

Írjunk programot! Legyen egy példa a Π programra {p not q, q not p} X Π X Cn(Π X ) p q {p, q} {p} p {p} {q} q {q} {p, q} 6

Elképzelhető, hogy mi nem szeretjük a q -t, ezért szeretnénk, ha ez nem lenne megoldás. Nézzük először a {a not a} programot, aminek nincs válaszhalmaza. - Miért? - Mert ha belevesszük, a válaszhalmazba, a not a megakadályozza, hogy a -t levezessük, ha nem akkor pedig le tudnánk vezetni. Használjuk ezt ki, és vezessünk be a programunkba egy új f atomot és egy új szabályt: f not f, q Ez megakadályozza, hogy q-t levezessük. Továbbiakban: f not f, p 1,..., p m, not p m+1,..., not p n, helyett p 1,..., p m, not p m+1,..., not p n 7

Most már bármilyen programot megírhatunk Egy egyszerű stratégia a programunk írásra a jól ismert Generate and Test. 1. Írjunk olyan szabályokat, amik leírják, hogy milyen lehet egy modell 2. Írjunk olyan szabályokat, amik leírják, hogy milyen nem lehet egy modell Az 1. lépést általában egyszerűen leírhatjuk. A 2. lépésben A alakú szabályokkal tilthatunk le 1. szerint jó modelleket. 8

Nincsenek, de: Változók ítéletkalkulusban? Grounding Tegyük fel, hogy a predikátum-kalkulusbeli formulákban a változóinknak véges az értékkészlete. Vegyük példának a következőket: 1. vilagit(lampa). 2. vilagit(nap). 3. x fenyes(x) vilagit(x). fenyes(lampa) vilagit(lampa) fenyes(nap) vilagit(nap) fenyes(feketelyuk) vilagit(feketelyuk)... Látszik, hogy X értékei, amikor az implikáció nem triviális: {lampa, nap}, azaz a tényállításokból ki tudjuk találni. Így át tudjuk alakítani a 3-t két ítéletlogikai szabállyá. 9

Lparse: egy grounder Feladata: A változók eliminálása, ezzel íteletlogikai alakra hozni a problémát. Amit még megtesz: - Klasszikus tagadás értelmezése (később) - Változókon függvények elvégzése (abs, kivonás, összehasonlítás...) - Egyszerűsítések 10

Példa: Bűvös négyzet Definíció: Egy NxN-s mátrix bűvös négyzet, ha nincs olyan sor vagy oszlop melyben van két ugyanolyan elem. Elemei pozitív egészek, és N-nél nem nagyobbak. (+kikötés: az 1. sor x. oszlopában lévő elem: x) Első próba: index(1..n). e(x, 1, X) :- index(x). e(x, Y, K) :- index(x; Y; K). :- index(x; Y1; Y2; K), e(x, Y1, K), e(x, Y2, K), Y1!= Y2. :- index(x1; X2; Y; K), e(x1, Y, K), e(x2, Y, K), X1!= X2. Mi a hiba? 11

Javítás: Bűvös négyzet Logikai hiba: Semmi sem gátolta meg, hogy 1 pozíción több elem legyen. Szemantikai hiba: Mindent tényként közöltünk, és így nem tudtunk kizárni. index(1..n). e(x, 1, X) :- index(x). e(x, Y, K) :- index(x; Y; K), not -e(x, Y, K). -e(x, Y, K) :- index(x; Y; K; N), e(x, Y, N), N!= K. :- index(x; Y1; Y2; K), e(x, Y1, K), e(x, Y2, K), Y1!= Y2. :- index(x1; X2; Y; K), e(x1, Y, K), e(x2, Y, K), X1!= X2. Ahol a - a klasszikus tagadást jelöli. 12

Mi volt a problémánk az előző példánál? Klasszikus tagadás - Ki szerettük volna fejezni, hogy valami nincs a modellben, és erre a meghiúsulásos tagadás kevés volt. Elvileg A és A t is tekinthetjük külön szimbólumnak. A probléma csak akkor jelenik meg, ha A és A is megjelenne a válaszhalmazban. Erre a matematika válasza: - Ebben a világaban minden állítás igaz. Gondoljunk a Hamis A ra. Tehát a válaszhalmaz minden literált kell, hogy tartalmazzon. Ezért ilyen szabályok kellenek (a -k a szimbólum negáltját jelölik): q p, p p q, q q p, p p q, q...... 13

A gyakorlatban nem tűnik a legjobb ötletnek, ha egy minden literált tartalmazó halmazt adunk vissza, hiszen általában ez a halmaz nem használható. Gyakran jobb, ha ezt nem fogadjuk el válaszhalmaznak. Ezt a következő szabályokkal tehetjük meg: p, p q, q... Az Lparse opcionálisan lehetőséget biztosít az előbbi mechanizmusokat felhasználva a klasszikus negációra, és mindkettő filozófiát megengedi. Az alapértelmezett az utóbbi. megj.: Valószínűleg nem tökéletes az algoritmusa, mert sikerült klasszikus negációval végtelenciklusba juttatnom. 14

Kardinalitás Alakja: K = min {q 1,..., q n } max. ahol n 1 Jelentése: X válaszhalmaz kielégíti K-t, ha min X K max Magyarul: X halmazban legalább min darab, legfeljebb max darab eleme van K-nak Egy kis kiegészítés: min {q 1,..., q n : f } max Itt f egy feltételes literál, f-nek mindenképpen igaznak kell lennie. (q-k közül lehet vele szűrni) Komplexitás: NP - teljes 15

Bűvös négyzet kardinális felhasználásával index(1..n). e(x, 1, X) :- index(x). % minden (X, Y) pozíción pontosan egy féle elem van 1{e(X, Y, K):index(K)}1 :- index(x; Y). :- index(x; Y1; Y2; K), e(x, Y1, K), e(x, Y2, K), Y1!= Y2. :- index(x1; X2; Y; K), e(x1, Y, K), e(x2, Y, K), X1!= X2. 16

Az smodels Egy implementáció a válaszhalmaz számítására íteletlogikában. Az smodels algoritmusa smodels(l, U) 1 expand(l,u) 2 if L = U then exit with L 3 if L U then return fail 4 4 A select(u \ L) 5 smodels(l {A},U) 6 smodels(l,u \ {A}) expand(l, U) repeat L := L L := L answerset(π U ) if not (L U) then return U := U U := U answerset(π L ) if not (L U) then return until L = L and U = U 17

Példa: pelda_ember.txt 18

Preferenciák Szabály preferencia: Egy prioritást határozunk meg a szabályok között, és először mindig a nagyobb prioritású szabályt nézzük. Rendezett diszjunkció: A fej részben több atomot sorolunk fel, de ezt nem rendes diszjunkcióként értelmezzük. Legyen most p; q a fejben. Ez azt jelenti, hogy p-t gondoljuk oda csak, de ha az derülne ki, hogy p lehetetlen, akkor q-t. Még több és komplexebb preferenciát tud leírni a PDL (preference description language). 19

- Turing-teljes - Egyszerű, tisztán logikai leírás. - Feketedoboz-szerű működés. Amiért jó... - A probléma triviális leírása esetén is meglepően gyorsan kapunk megoldást. Amiért nem... - Nagy állapottér (pl.: nagy értékkészlet) esetén rengeteg atom, ezért lassú futás. - Nem logikai jellegű feladatokkat nehéz, vagy közel lehetetlen vele megoldani. - A kimenet általában nehezen olvasható, ezért többnyire csak valamilyen rendszerbe integrálva jó használni. 20

Eddigi felhasználási területei - N királynő és bűvös négyzet - Orvosi diagnosztika - Tervezés - Termék konfiguráció -Űrhajó reakcióvezérlése - Kriptoanalízis - Régi nyelvek tanulmányozása - és még sok más... 21