Пример #1
0
    parser.add_argument('-S', help="The strategy to be used")
    parser.add_argument('input_file',
                        help="The input file containing the SAT problem")

    # Parse the arguments
    arguments = parser.parse_args()

    if not arguments.input_file:
        raise Exception("Invalid input file")

utils.lambda_value = 0.45
utils.beta_value = 0.5

split_method = SplitMethod.DEFAULT
if arguments.S == "2":
    split_method = SplitMethod.MOM
elif arguments.S == "3":
    split_method = SplitMethod.TK

formula = Formula(Operation.AND)
formula.add_elements_from_file(arguments.input_file)

sat_solver = SatSolver(formula, split_method)
solved, values = sat_solver.solve()

output_file_name = f'{arguments.input_file}.out'
file_saver = FileSaver()
if solved:
    file_saver.save_values_in_dimacs(values, output_file_name)
else:
    file_saver.save_values_in_dimacs({}, output_file_name)