160 likes | 406 Views
ERK 2003. Ogrodje paketa za avtomatsko reševanje logičnih ugank. Robert Meolic , Tatjana Kapus, Zmago Brezočnik. Ogrodje paketa za avtomatsko reševanje logičnih ugank. Uvod Primer logične naloge Logična tabela Naš postopek reševanja Razprava in sklep. Uvod.
E N D
ERK 2003 Ogrodje paketa za avtomatsko reševanje logičnih ugank Robert Meolic, Tatjana Kapus, Zmago Brezočnik
Ogrodje paketa za avtomatsko reševanje logičnih ugank • Uvod • Primer logične naloge • Logična tabela • Naš postopek reševanja • Razprava in sklep
Uvod • Reševanje logičnih (tabelaričnih) nalog • Naloga je podana kot tekst v naravnem jeziku • Postopek reševanja brez uporabe Prologa • Za računanje uporabimo izjavni račun
Primer logične uganke • Andrej ali Borut je iz Maribora. • Največji je iz Ljubljane, najmanjši pa ni iz Celja. • Če je Andrej manjši od Ceneta, potem Andrej ni iz Maribora. • Cene je večji od tistega iz Celja. Andrej (A), Borut (B), Cene (C) Celje (ce), Maribor (mb), Ljubljana (lj) majhen (s), večji (l), največji (x)
Logična tabela Rešitev: Andrej-Celje-srednje velik Borut-Maribor-majhen Cene-Ljubljana-največji
Naš pristop • 1. Kodiranje z logičnimi spremenljivkami • 2. Pretvorba pogojev v logične formule • Zapis s predikatnim računom • Pretvorba v izraze izjavnega računa • 3. Postavimo omejitve • 4. Rešitev je enostavna konjunkcija
1. Kodiranje • 1. Kodiranje z logičnimi spremenljivkami Osnovne izjave sestavljene iz osebka in še ene lastnosti Amb - Andrej je iz Maribora Bl - Borut je srednje velik cex - ni osnovna izjava, ker ne vsebuje osebka Ambx - ni osnovna izjava, ker vsebuje več kot dve lastnosti
2. Pretvorba • 2. Pretvorba pogojev v logične formule • Zapis s predikatnim računom • Avtomatska pretvorba v izraze izjavnega računa Predikatni račun je bliže človeku. P1 = kraj(A,mb) + kraj(B,mb) Računalnik računa z izjavnim računom. P1 = Amb + Bmb
Zapis s predikatnim računom • Andrej ali Borut je iz Maribora. • Največji je iz Ljubljane, najmanjši pa ni iz Celja. • Če je Andrej manjši od Ceneta, potem Andrej ni iz Maribora. • Cene je večji od tistega iz Celja. P1 = kraj(A,mb) + kraj(B,mb) P2a = XS:( velikost(X,x) kraj(X,lj) ) P2b = XS:( velikost(X,s) !kraj(X,ce) ) P3 = vecji(C,A) !kraj(A,mb) P4 = XS: ( kraj(X,ce) vecji(C,X) )
Zapis z izjavnim računom • Andrej ali Borut je iz Maribora. • Največji je iz Ljubljane, najmanjši pa ni iz Celja. • Če je Andrej manjši od Ceneta, potem Andrej ni iz Maribora. • Cene je večji od tistega iz Celja. P1 = Amb + Bmb P2a = (Ax Alj) * (Bx Blj) * (Cx Clj) P2b = (As !Ace) * (Bs !Bce) * (Cs !Cce) P3 = (As * Cl + As * Cx + Al * Cx) !Amb P4 = (Ace * As + Bce * Bs) * (Cl + Cx) + (Ace * Al + Bce * Bl) * Cx
3. Omejitve • 3. Postavimo omejitve O1 = Ace * Bmb * Clj + Ace * Blj * Cmb + Amb * Bce * Clj + Amb * Blj * Cce + Alj * Bce * Cmb + Alj * Bmb * Cce O2 = As * Bl * Cx + As * Bx * Cl + Al * Bs * Cx + Al * Bx * Cs + Ax * Bs * Cl + Ax * Bs * Cl
4. Rešitev • 4. Rešitev je enostavna konjunkcija R = O1 * O2 * P1 * P2a * P2b * P3 * P4 = Ace * Bmb * Clj * Al * Bs * Cx
Dva izmed problemov • En stavek lahko vsebuje več dejstev • Nastopajo lahko količine, ki so med seboj urejene: • majhen, večji, največji... • prvi, drugi, tretji... • levo/desno, zgoraj/spodaj, na sredini, poleg…
Efficient Symbolic Tools • V celoti izveden na Fakulteti za elektrotehniko, računalništvo in informatiko v Mariboru • Uporablja BDD-je (binarne odločitvene grafe) • GNU General Public License • Deluje na več operacijskih sistemih, tudi na Linuxu in Windowsih. http://lms.uni-mb.si/EST/
Einsteinova uganka • V ulici je pet hiš različne barve: bela, rumena, rdeča, zelena, modra • V vsaki hiši živi oseba drugačne narodnosti: Britanec, Danec, Nemec, Norvežan, Šved • Vsak pije drugačno pijačo: vodo, mleko, čaj, kavo, pivo • Vsak kadi različne cigarete: Blend, Blue Master, Dunhill, Pall-Mall, Prince • Vsak ima drugačno žival: psa, papagaja, konja, mačko, ribo • Danih je 15 trditev in vprašanje: Kdo ima ribo? Albert Einstein je menil, da 98% ljudi ni sposobnih rešiti njegove naloge!
Zaključek • Predstavjen projekt predstavlja le ogrodje • Težko delo in pravi prispevki šele pridejo:razpoznavanje slovenskega jezika • Daljnoročni cilj: uporaba na področju formalne specifikacije in verifikacije sistemov Hvala za pozornost!