noeuds = Noeuds()
arcs = Arcs()
monDom = range(10)
monDom2 = range(11)
monDom3 = range(9)
v1=libPSC.Variable("a",monDom)
v2=libPSC.Variable("b",monDom2)
v3=libPSC.Variable("c",monDom3)
noeuds.ajouteNoeud(libPSC.Noeud(v1))
noeuds.ajouteNoeud(libPSC.Noeud(v2))
noeuds.ajouteNoeud(libPSC.Noeud(v3))
print noeuds
noeudb = noeuds.retourneNoeud("b")
print noeudb
cv1= libPSC.ContrainteUnaire(v1,"<",2)
cv2= libPSC.ContrainteUnaire(v2,"<",3)
cv3= libPSC.ContrainteUnaire(v3,"<",3)
cv1v2= libPSC.ContrainteBinaire(v1,"<>",v2)
cv2v3= libPSC.ContrainteBinaire(v2,"<>",v3)
cv1v3= libPSC.ContrainteBinaire(v1,"<>",v3)
arcs.ajouteArc(libPSC.Arc(cv1))
arcs.ajouteArc(libPSC.Arc(cv1))
arcs.ajouteArc(libPSC.Arc(cv2))
arcs.ajouteArc(libPSC.Arc(cv3))
arcs.ajouteArc(libPSC.Arc(cv1v2))
arcs.ajouteArc(libPSC.Arc(cv2v3))
arcs.ajouteArc(libPSC.Arc(cv1v3))
print arcs
print "Fait la consistance des noeuds"
noeuds.consistanceDesNoeuds()
print noeuds
print "Fait la consistance des arcs"
arcs.consistanceDesArcs()
print noeuds
##sol=backtrack([-1,-1,-1],0,True)
##print "Solution trouvée avec bt:=", SOLUTION
variableOrdering()
print noeuds
sol=forwardChecking([-1,-1,-1],0,True,True)
print "Solution trouvée avec fc:=", SOLUTION