Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import argv
- script, variable, constraint, procedure = argv
- variableList = ()
- constraintList = []
- answer = {}
- variableFile = open(variable, "r")
- constraintFile = open(constraint, "r")
- procedureFile = open(procedure, "r")
- with open(variable, 'r') as variableFile:
- varNum = sum(1 for line in open(variable))
- for x in range(0, varNum):
- line = variableFile.readline()
- line = line.replace(':', '')
- line = line.split()
- if not line:
- continue
- answer[line[0]] = line[1:]
- variableList = variableList + (line[0],)
- print(variableList)
- # print(variableFile.read())
- # answer = answer.replace(":", "")
- print(answer)
- with open(constraint, 'r') as constraintFile:
- conNum = sum(1 for line in open(constraint))
- varTuple = ()
- for x in range(0, conNum):
- line = constraintFile.readline()
- varTuple = line.split()
- constraintList.append(varTuple)
- # print(constraintList[0])
- # print(constraintList)
- with open(procedure, 'r') as consistencyFile:
- print(consistencyFile.read())
- def backtrack(assignments, unassignedVariableList, constraintList):
- if complete(unassignedVariableList):
- return assignments
- selectedVariable =
- def complete(unassignedVariableList):
- return len(unassignedVariableList) == 0
- # Variable with the fewest values available
- def mostConstrainedVariable(unassignedVariableList):
- return min(unassignedVariableList.keys(), key=lambda k: len(unassignedVariableList[k]))
- # Value that eliminates the least amount of other values when assigned
- def leastConstrainingValue(unassignedVariableList, assignmentList, selectedVariable, constraintList):
- def countValues(variables):
- return sum((len(variables[v]) for v in unassignedVariableList if v != selectedVariable))
- def valuesDeleted(value):
- assignmentList[selectedVariable] = [value]
- updatedValues = countValues(enforceConsistency(assignmentList, unassignedVariableList, constraintList))
- del assignmentList[selectedVariable]
- return updatedValues
- #def consistencyCheck(assignmentList, unassignedVariableList, constraintList):
- # def removeInconsistency(head, tail, constraint, variableList):
- # validTails = [t for t in variableList[tail] if any((constraint(h, t) for h in variables[head]))]
- # invalidValues = len(variableList[tail]) != len(valid_tail_values)
- # variableList[tail] = validTails
- # return invalidValues
- #def newConstraint()
- #print(variableFile.read())
- #print(constraintFile.read())
- #print(procedureFile.read())
- #testing hello yoon made this comment hahahahaha
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement