here で説明されている標準に従って、cnfを保存するファイルからcnfをロードするコードをいくつか作成しました。
ファイルは次のとおりです。
c simple_v3_c2.cnf // lines bigining by c are comments
c
p cnf 3 2 // the line bigining by p is the description of the pb
1 -3 0 // folowing lines are formulation of the pb, with 0 as ending caractere
2 3 -1 0
[[1, -3][2,3,-1]] にロードしたい
私が書いたコードは機能しますが、私には醜いようです。それについて何らかのフィードバックをいただければ幸いです。(私はpythonが初めてです)。
def loadCnfFile(fileName='example.cnf'):
""" retourne une liste de listes d'entiers decrivants la forme normale conjonctive"""
cnf=[]
cnfFile = open(fileName, 'r')
for line in cnfFile:
if line[0]!="c" and line[0]!="p":
l=line.split("0")[0].strip().split(" ")
m=[]
for k in l:
m.append(int(k))
cnf.append(m)
cnfFile.close()
return cnf
ありがとう !