SAT- () (1, 2, 3),(-1, 2 ..), (True/False)., , .( , ); , , 8x8 = 64 , .(1 2 3тАж 8) тАФ 1 . тАФ [1,2,3...8]тАФ (9тАж 16) ..тАФ 1 ![ 1 2] ( тАФ ). [-1,-2],[-1,-3] ., , . , .( ) тАФ (1 2тАж 8) ( 1 2) (...). , тАФ .
| | | | | | | |x|| | | | | | |x| || | | | | |x| | || | | | |x| | | || | | |x| | | | || | |x| | | | | || |x| | | | | | ||x| | | | | | | |
for cnter in range(4): sol = pycosat.solve(clauses) if isinstance(sol, list): print(sol) clauses.append([-x for x in sol]) # - else: # - return # , , .
| | | | | | | |x|| | | | | | |x| || | | | | |x| | || | | | |x| | | || | | |x| | | | || |x| | | | | | || | |x| | | | | ||x| | | | | | | |
, ┬л-┬╗ ?/ /, тАФ . , .[1] 3 , :[X__],[_X_],[__X], ,[1,-2,-3],[-1,2,-3],[-1,-2,3], тАж:[1 -2 -3] [-1, 2...] [...], . , . тАФ , !
рд╣рдо DNF рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЗрдирдкреБрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ: lstall = [[1,2,3]]ред рдпрд╣реА рд╣реИ, рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ [1,2,3] (рдкреВрд░реА рд▓рд╛рдЗрди [XXX] рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ) рдПрдХ рд╡реИрдз рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛редрдкреБрд╕реНрддрдХрд╛рд▓рдп KNF: cnf = [[-1, -2, -3, 4], [1] рджреЗрддрд╛ рд╣реИред , -4], [2, -4], [3, -4]]рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдареАрдХ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рдЖрдкрдХрд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ ...рд╣рдо cnf рдХреЗ рд╕рднреА рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП pycosat рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ:[1, 2, 3, 4][1, 2, -3, -4][1, -2, -3, -4][1 , -2, 3, -4][-1, -2, -3, -4][-1, -2, 3, -4][-1, 2, -3, -4][-1 ] 2, 3, -4]рдЕрдкреЗрдХреНрд╖рд┐рдд рдПрдХ рдХреЗ рдмрдЬрд╛рдп, рдЙрдирдореЗрдВ рд╕реЗ рдЖрда рд╣реИрдВ! рдХреНрдпрд╛ рдХрд░реЗрдВ?, , 4 True. ?: cnf2 = [[-1, -2, -3, 4], [1, -4], [2, -4], [3, -4], [4]]pycosat cnf2:1: [1, 2, 3, 4], , ! , , .тАФ !
| |x| ||x|x|x|| |x| |
1| | |x|| | | ||x| | |2|x| | || | | || | |x|
3x3rows = [[1,1],[0],[1,1]]cols = [[1,1],[0],[1,1]]:|X| |X|| | | ||X| |X|4x4rows = [[1,1],[0],[0],[1,1]]cols = [[1],[1],[1],[1]]:1| |X| |X|| | | | || | | | ||X| |X| |2|X| |X| || | | | || | | | || |X| |X|
|x|_|x|_|_|_|_|x|_|x||x|x|x|_|_|_|_|x|x|x||_|x|_|_|_|_|_|_|x|_||_|x|_|x|_|_|x|_|x|_||_|x|x|x|x|x|x|x|x|_||_|_|x|x|x|x|x|x|_|_||x|x|x|x|x|x|x|x|x|x||_|_|x|x|x|x|x|x|_|_||x|x|_|x|x|x|x|_|x|x||x|_|_|_|_|_|_|_|_|x|
51511 clauses...2851 last var number--- 0.05186057090759277 seconds for clauses gen ---1| | |X|X| | | | | | | | | | | | | | | | || |X|X| | | | | | | | | | | | | | | | | || |X| | | | | | | | | | | | | | | | | | || |X| | | | | | | | | | | | | | | | | | || |X| | | | | |X|X|X| | | | | | | | | | ||X|X| | | | |X|X|X|X|X| | | | | | | | | ||X| | | | |X|X|X|X|X|X|X| | | |X| | | |X||X| | | | |X|X|X|X|X|X|X|X| | |X|X| |X|X||X| | | |X|X|X|X|X|X|X|X|X| | |X|X|X|X|X||X|X| | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|| |X| |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|| |X|X|X|X|X|X|X| |X|X|X|X|X|X|X|X|X|X|X|| | |X|X|X|X|X| | | |X|X|X|X|X| |X|X|X| || | |X|X|X|X|X| | | |X|X|X|X| | | | | | || | | |X|X|X| | | | | |X|X|X| | | | | | || | | |X|X| | | | | | |X|X| | | | | | | || | |X|X| | | | | | | | |X| | | | | | | || | |X| | | | | | | | | |X| | | | | | | || | |X|X| | | | | | | | |X|X| | | | | | || | |X|X| | | | | | | | |X|X| | | | | | |--- 0.02073383331298828 seconds for solve ---
13622799 clauses... -350737 last var number--- 14.18206787109375 seconds for clauses gen ---1| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X|X|X| | | | | || | | | | | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X| | | | || | | | | | | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X| | | || | | | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X|X| |X|X| | || | | | | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X|X|X|X|X| || | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|| | | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X|X| |X|X|X|X|X|| | | | | | | | | | | | | | | | | | | | | | | | |X|X|X|X|X|X|X| | | | | |X| || | | | | | | | | | |X|X|X|X| | | | | | | | | |X|X|X|X|X|X|X|X| | | | | | | || | | | | | | | |X|X|X|X|X|X|X|X|X| | | |X|X|X|X|X|X|X|X|X|X| | | | | | | | || | | | | | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | | | | | | || | | | | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | | | | | | | || | | | |X|X|X| |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | | | | | | | || | | |X|X|X| | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | | | | | | | || | |X|X|X| | | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | | || |X|X|X| | | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | ||X|X|X|X| | | |X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X| | | |X|X| | | || |X|X| | | |X|X|X|X|X| | | | |X|X|X|X|X|X|X|X|X|X|X|X| | | | | | |X|X| | | || | |X| | | |X|X|X|X| |X| | | | | | |X|X|X|X|X|X| | | |X| | | | | |X|X| | | || | | | | |X|X|X|X| |X|X| | | | | | | | | | | | | |X|X|X| | | | | |X|X| | | || | | | |X|X|X|X| |X|X| | | | | | | | | | | | | | |X|X|X| | | | | |X|X| | | || | | | |X|X|X| | |X|X| | | | | | | | | | | | | | | |X|X| | | | | |X|X| | | || | | | |X|X| | | |X|X| | | | | | | | | | | | | | | |X|X| | | | |X|X|X| | | || | | |X|X|X| | | | |X|X| | | | | | | | | | | | | | |X|X| | | | |X|X| | | | || | | |X|X| | | | | |X|X| | | | | | | | | | | | | | |X|X| | | | |X| | | | | || | | |X|X| | | | | |X|X| | | | | | | | | | | | | | |X|X| | | | | | | | | | || | | |X|X| | | | | | |X|X| | | | | | | | | | | | | |X|X| | | | | | | | | | || | | |X|X| | | | | | |X|X| | | | | | | | | | | | | |X|X| | | | | | | | | | || | | | |X|X| | | | | | |X|X| | | | | | | | | | | | | |X|X| | | | | | | | | || | | | |X|X|X| | | | | |X|X|X| | | | | | | | | | | | |X|X|X| | | | | | | | |--- 17.535892963409424 seconds for solve ---