Help réalisé un algorithme de satisfiabilité

Fermé
abdoulive - 30 janv. 2009 à 23:16
 abdoulive - 31 janv. 2009 à 00:11
Bonjour,
help sur la réalisation du algorithme de satisfiabilité de Allen en language "c" que je m'étrise pas !! un exposé que je doit remettre le 23/02/2009 :(

principe: soit un concept Cn
pb: satisfiabilité de C?
etape1: transformer C sous ça forme normal négative C[ind]0/ind
etape2: /démarrer avec A0 = { C0 (x0) } ( lois démorgane je crois lol )
/appliquer les règle jusqu'à ce qu'aucune règle ne soit applicable
étape3: si A contient une contradiction alors C0 n'est pas satisfiable
sinon C0 est satisfiable.

ps: si quelqu'un connais se algorithme !! et si il peu m'aidé a le réalisé sur le language C sa sera cool !!

merci d'avance !!

1 réponse

dsl g jamais programmé avec se "c"!! ( g trouvé un doc pour apprendre le langage c en 14 jour !! mais avec le peu de temps que g !! sa sera tro difficile a le réalisé au temps )
je c même pas comment démarré se algorithme!!

voici les regle de transformation:
1/ regle ----> intersection
condition: A contient ( C[ind]1/ind "intersection" C[ind]2/ind ) (x)
mais A ne contient pas C[ind]1/ind et C[ind]2/ind (x)
action: A' = A U { C[ind]1/ind (x) , C[ind]2/ind (x) }
2/ ---> l'union "U"
condition: A contient ( C[ind]1/ind U C[ind]2/ind ) (x)
mais A ne contient ni C[ind]1/ind ni C[ind]2/ind
action: A' = A U { C[ind]1/ind}; A'' = A u { C[ind]2/ind (x) }
3/ ---> il existe
condition: A contient ( il existe R.C )(x)
mais il existe pas un individu z tel que C(z) ET R(x,z)
Action: A'= A U { C(y), R (x,y) }
4/ ---> quelque soie
condition: A contient ( quelque soie R.C ) (x) et R(x,y)
mais ne contient pas C(y)
action A'=A u { C(y) }
5/ ---> >=
condition: A contient (>= nR)(x)
n'existe pas d'individus Z[ind]1/ind,....,Z[ind]n/ind telque R (x,Z[ind]i/ind) , 1<= i <= n et Z[ind]i/ind différent de Z[ind]j/ind ( 1<=i<=j<=n ) soient contenus dans A
action: A'= A U { R(x,y), 1 <= i <= n } U { y[ind]i/ind différent de y[ind]2/ind; 1<=i<=jn } /où y[ind]1/ind,........, y[ind]n/ind désignent des noms distincts d'individu non contenus dans A
6/ ----> <=
condition: A contient (<= nR)(x) et A contient des noms distincts d'individus y[ind]1/ind, ..... , y[ind]n/ind, y[ind]n+1/ind
et R(x,y)...... R(x,y[ind]n+1/ind) appartient à A
et y[ind]i/ind différent de y[ind]j/ind n'est pas dans A
Action: pour chaque pair ( y[ind]i/ind,y[ind]j/ind) ( i déferrent de j ) n'appartient pas a A on a A[ind]ij/ind = [y[ind]i/ind/y[ind]j/ind ] A obtenue, à partir de A en remplacent chaque occurrence y[ind]i/ind par y[ind]j/ind


voila tout les regle !! c tré défficil meme de les comprendre alors pour les programé sur un language que je connais pas ( language c oblige :( )!

je demande seulement si quelque'un peu m'aidé a démarer se pb!! (un pt aide mieu que rien!!) ! je demande quelque chose tré simple! pour le rendre dans les temps :(

merci d'avance !!
0