예제 #1
0
파일: Solver.cs 프로젝트: RomanovX/RubySat
 /*
  * Deze methode controleert de vervulbaarheid van een formule voor een bepaalde waarde voor een enkele variabele
  */
 private static Valuatie VervulbaarVoorWaarde(IFormule formule, SortedSet <string> variabelen, Valuatie valuatie, string var, bool waarde)
 {
     // Voeg variabele toe aan valuatie
     valuatie.VoegToe(var, waarde);
     // Controleer of formule waar kan zijn
     if (formule.KanWaar(valuatie))
     {
         // Controleer recursief
         Valuatie resultaat = Vervulbaar(formule, variabelen, valuatie);
         // Als er een resultaat is, return deze
         if (resultaat != null)
         {
             return(resultaat);
         }
     }
     // Anders verwijder de variabele weer uit de valuatie en return null
     valuatie.Verwijder(var);
     return(null);
 }
예제 #2
0
파일: Formule.cs 프로젝트: RomanovX/RubySat
 public bool KanOnwaar(Valuatie v)
 {
     // Een negatie kan onwaar zijn als
     return(formule.KanWaar(v));
 }
예제 #3
0
파일: Formule.cs 프로젝트: RomanovX/RubySat
 public bool KanWaar(Valuatie v)
 {
     // Een conjuctie kan enkel waar zijn als beide elementen waar kunnen zijn
     return(links.KanWaar(v) && rechts.KanWaar(v));
 }
예제 #4
0
파일: Formule.cs 프로젝트: RomanovX/RubySat
 public bool KanWaar(Valuatie v)
 {
     // Een disjunctie kan waar zijn als één of beide van de elementen waar kunnen zijn
     return(links.KanWaar(v) || rechts.KanWaar(v));
 }