def readMinisatResult(path):
|
|
result = {"assignments": [], "satisfiable": False}
|
|
|
|
resultFile = open(path)
|
|
|
|
line = resultFile.readline()
|
|
|
|
if line.strip() == "SAT":
|
|
result["satisfiable"] = True
|
|
|
|
result["assignments"] = __parseVarAssignments(resultFile.readline())
|
|
|
|
resultFile.close()
|
|
|
|
return result
|
|
|
|
def __parseVarAssignments(line):
|
|
assignmentStrings = line.split()
|
|
|
|
trailer = assignmentStrings.pop()
|
|
|
|
assignments = []
|
|
|
|
if trailer == "0":
|
|
for assignmentStr in assignmentStrings:
|
|
|
|
assignment = True if int(assignmentStr) > 0 else False
|
|
|
|
assignments.append(assignment)
|
|
else:
|
|
print("Bad format of assignment string:\n %s", line)
|
|
|
|
return assignments
|
|
|