@@ -11,7 +11,7 @@ object SatSolver:
1111 Ædificium.select(problem.name)
1212 println(s " ${problem.name} has been selected. " )
1313
14- var knowledge = KnowledgeHolder (Vector .empty, Vector .empty)
14+ var knowledge = KnowledgeHolder (problem.size, Vector .empty, Vector .empty, Vector .empty, Vector .empty)
1515 while true do
1616 println(" Determining next step..." )
1717 val step = nextStep(problem, knowledge)
@@ -100,6 +100,18 @@ object SatSolver:
100100 sb ++= s " ${roomLabelVariablesCount + connectionVariableIndex(problem.size, j, i, k)} "
101101 sb ++= " 0\n "
102102
103+ // expeditions
104+ for (enterLabel, exitLabel, door) <- exploredConnections do
105+ // enter
106+ for i <- 0 to problem.size - 1 do
107+ for j <- 0 to problem.size - 1 do
108+ sb ++= s " - ${roomLabelVariablesCount + connectionVariableIndex(problem.size, i, j, door)} "
109+ sb ++= s " ${roomLabelVariableIndex(i, enterLabel)}"
110+ // exit
111+ for i <- 0 to problem.size - 1 do
112+ for j <- 0 to problem.size - 1 do
113+ sb ++= s " - ${roomLabelVariablesCount + connectionVariableIndex(problem.size, i, j, door)} "
114+ sb ++= s " ${roomLabelVariableIndex(j, exitLabel)}"
103115
104116 Files .writeString(folder.resolve(" step1.dimacs" ), sb.toString)
105117 throw new Exception (" Incorrect solution! Analyze results in \" path\" ." )
0 commit comments