Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Preneks forma - Prolog

[es] :: Veštačka inteligencija :: Preneks forma - Prolog

[ Pregleda: 3085 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

inostranac

Član broj: 141142
Poruke: 35
*.kolej.mff.cuni.cz.



Profil

icon Preneks forma - Prolog06.12.2007. u 13:55 - pre 199 meseci
Pozdrav svima! Ne znam koliko je ovaj forum pogodan za sledece pitanje, ali svi drugi su manje pogodni, pa eto...

Treba da u Prologu napisem program koji standardnu logicku formulu prebacuje u preneks formu.

Za sada sam definisao operatore

Code:

?- op(200, fx, ~).
?- op(400, xfy, #).
?- op(400, xfy, &).
?- op(700, xfy, ->).
?- op(700, xfy, <->).


izbacio implikaciju i ekvivalenciju

Code:

implout((P <-> Q), ((P1 & Q1) # (~P1 & ~Q1))) :- !, implout(P, P1), implout(Q, Q1).
implout((P -> Q), (~P1 # Q1)) :- !, implout(P, P1), implout(Q, Q1).
implout(all(X, P), all(X, P1)) :- !, implout(P, P1).
implout(exists(X, P), exists(X, P1)) :- !, implout(P, P1).
implout((P & Q), (P1 & Q1)) :- !, implout(P, P1), implout(Q, Q1).
implout((P # Q), (P1 # Q1)) :- !, implout(P, P1), implout(Q, Q1).
implout((~P), (~P1)) :- !, implout(P, P1).
implout(P, P).


i pomerio negaciju do atomske formule

Code:

negin((~P), P1) :- !, neg(P, P1).
negin(all(X, P), all(X, P1)) :- !, negin(P, P1).
negin(exists(X, P), exists(X, P1)) :- !, negin(P, P1).
negin((P & Q), (P1 & Q1)) :- !, negin(P, P1), negin(Q, Q1).
negin((P # Q), (P1 # Q1)) :- !, negin(P, P1), negin(Q, Q1).
negin(P, P).

neg((~P), P1) :- !, negin(P, P1).
neg(all(X, P), exists(X, P1)) :- !, neg(P, P1).
neg(exists(X, P), all(X, P1)) :- !, neg(P, P1).
neg((P & Q), (P1 # Q1)) :- !, neg(P, P1), neg(Q, Q1).
neg((P # Q), (P1 & Q1)) :- !, neg(P, P1), neg(Q, Q1).
neg(P, (~P)).


Posle toga ostaje da se (1) preimenuju vezana pojavljivanja promenljivih, i (2) da se kvantori pomere ispred formule.
Sa (2) bih se i izborio, ali (1) mi zadaje velike probleme. Svaka pomoc je dobrodosla.
Hvala unapred!
 
Odgovor na temu

[es] :: Veštačka inteligencija :: Preneks forma - Prolog

[ Pregleda: 3085 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.