def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step202-LR-centers-solve.txt', 'xxxxLLLLxxxxRRRRxxxxxxxx', linecount=51482970)
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step201-UD-centers-solve.txt', 'UUUUxxxxxxxxxxxxxxxxDDDD', linecount=51482970)
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step203-FB-centers-solve.txt', 'xxxxxxxxFFFFxxxxBBBBxxxx', linecount=51482970)
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-4x4x4-step30-ULFRBD-centers-solve.txt', 'UUUULLLLFFFFRRRRBBBBDDDD', linecount=2058000)
def __init__(self, parent): LookupTable.__init__( self, parent, "lookup-table-4x4x4-step20-highlow-edges.txt", ( "LLLLRRRRUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "LLRRLLRRUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "LLRRRRLLUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "LRLRLRLRUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "LRLRRLRLUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "LRRLRLLRUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "RLLRLRRLUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "RLRLLRLRUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "RLRLRLRLUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "RRLLLLRRUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "RRLLRRLLUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", "RRRRLLLLUDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", ), all_moves=moves_444, legal_moves=("Uw", "Uw'", "Dw", "Dw'", "Fw", "Fw'", "Bw", "Bw'", "Lw", "Lw'", "Rw", "Rw'"), linecount=2304998, max_depth=6, filesize=182094842, )
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step11-UD-centers-stage.txt', 'f0000f', linecount=735471)
def __init__( self, parent, filename, state_target, moves_all, moves_illegal, linecount, max_depth=None, filesize=None, legal_moves=[], prune_tables=[], ): LookupTable.__init__(self, parent, filename, state_target, linecount, max_depth, filesize) self.ida_nodes = {} self.recolor_positions = [] self.recolor_map = {} self.nuke_corners = False self.nuke_edges = False self.nuke_centers = False self.min_edge_paired_count = 0 self.prune_tables = prune_tables for x in moves_illegal: if x not in moves_all: raise Exception("illegal move %s is not in the list of legal moves" % x) if legal_moves: self.moves_all = list(legal_moves) else: self.moves_all = [] for x in moves_all: if x not in moves_illegal: self.moves_all.append(x) log.info("%s: moves_all %s" % (self, ",".join(self.moves_all))) self.step_index = {} for (index, step) in enumerate(self.moves_all): self.step_index[step] = index COST_LENGTH = 1 STATE_INDEX_LENGTH = 4 self.ROW_LENGTH = COST_LENGTH + (STATE_INDEX_LENGTH * len(self.moves_all)) # Cache the results of steps_on_same_face_and_layer() for all # combinations of moves we will see while searching. self.steps_on_same_face_and_layer_cache = {} self.steps_not_on_same_face_and_layer = {} for step1 in self.moves_all + [None]: for step2 in self.moves_all: if steps_on_same_face_and_layer(step1, step2): self.steps_on_same_face_and_layer_cache[(step1, step2)] = True else: self.steps_on_same_face_and_layer_cache[(step1, step2)] = False if step1 not in self.steps_not_on_same_face_and_layer: self.steps_not_on_same_face_and_layer[step1] = [] self.steps_not_on_same_face_and_layer[step1].append(step2)
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-3x3x3-step11-edges.txt', 'UUUULLLLFFFFRRRRBBBBDDDD', linecount=967680, max_depth=12)
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-3x3x3-step12-corners.txt', 'UUUULLLLFFFFRRRRBBBBDDDD', linecount=40320, max_depth=13)
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step50-tsai-phase1.txt', '0f0f00', linecount=735471, max_depth=8)
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-4x4x4-step72-tsai-phase3-centers.txt', 'UUUULLLLFFFFRRRRBBBBDDDD', linecount=58800)
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-5x5x5-step101-stage-second-four-edges.txt', 'TBD', linecount=338122, filesize=28740370)
def __init__( self, parent, filename=None, all_moves=[], illegal_moves=[], state_target=None, linecount=None, max_depth=None, filesize=None, legal_moves=[], prune_tables=[], multiplier=None, main_table_state_length=None, main_table_max_depth=None, main_table_prune_tables=None, perfect_hash_filename=None, pt2_state_max=None, multiple_solutions=False, ): LookupTable.__init__(self, parent, filename, state_target, linecount, max_depth, filesize) self.recolor_positions = [] self.recolor_map = {} self.nuke_corners = False self.nuke_edges = False self.nuke_centers = False self.prune_tables = prune_tables self.multiplier = multiplier self.main_table_state_length = main_table_state_length self.main_table_max_depth = main_table_max_depth self.main_table_prune_tables = main_table_prune_tables self.perfect_hash_filename = perfect_hash_filename self.pt2_state_max = pt2_state_max self.max_ida_threshold = None self.multiple_solutions = multiple_solutions if self.perfect_hash_filename or self.pt2_state_max: assert self.perfect_hash_filename and self.pt2_state_max, "both perfect_hash_filename and pt2_state_max must be specified" download_file_if_needed(self.perfect_hash_filename, self.parent.size) if legal_moves: self.all_moves = list(legal_moves) else: for x in illegal_moves: if x not in all_moves: raise Exception("illegal move %s is not in the list of legal moves" % x) self.all_moves = [] for x in all_moves: if x not in illegal_moves: self.all_moves.append(x) log.debug("%s: all_moves %s" % (self, ",".join(self.all_moves))) COST_LENGTH = 1 STATE_INDEX_LENGTH = 4 self.ROW_LENGTH = COST_LENGTH + (STATE_INDEX_LENGTH * len(self.all_moves))
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-5x5x5-step310-edges-x-plane-with-solved-centers.txt', '------------sSSTTtuUUVVv------------', linecount=40320, max_depth=14, filesize=3427200)
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-5x5x5-step302-edges-x-plane-centers-only.txt', 'LLLLLLLLLFFFFFFFFFRRRRRRRRRBBBBBBBBB', linecount=2520, max_depth=6, filesize=146160)
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-5x5x5-step301-edges-x-plane-edges-only.txt', '------------sSSTTtuUUVVv------------', linecount=40320, max_depth=13, filesize=3346560)
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-4x4x4-step71-tsai-phase3-edges.txt', '213098ba6574', # this is the same with/without symmetry #linecount=239500800, # without symmetry linecount=14999140, # with symmetry max_depth=13)
def __init__(self, parent): LookupTable.__init__( self, parent, "lookup-table-5x5x5-step100-stage-first-four-edges.txt", "TBD", linecount=7389543, filesize=421203951, )
def __init__(self, parent): LookupTable.__init__( self, parent, "lookup-table-4x4x4-step21-highlow-edges-edges.txt", "UDDUUDDUDUDUUDUDDUUDDUUDDUDUUDUDDUUDDUUDUDDUUDDU", linecount=2704156, max_depth=10, filesize=227149104, )
def __init__(self, parent): LookupTable.__init__( self, parent, 'lookup-table-4x4x4-step61-tsai-phase2-centers.txt', ('UUUULLLLFFFFRRRRFFFFUUUU', 'UUUURRRRFFFFLLLLFFFFUUUU', 'UUUULLRRFFFFRRLLFFFFUUUU', 'UUUULLRRFFFFLLRRFFFFUUUU', 'UUUURRLLFFFFRRLLFFFFUUUU', 'UUUURRLLFFFFLLRRFFFFUUUU', 'UUUURLRLFFFFRLRLFFFFUUUU', 'UUUURLRLFFFFLRLRFFFFUUUU', 'UUUULRLRFFFFRLRLFFFFUUUU', 'UUUULRLRFFFFLRLRFFFFUUUU', 'UUUURLLRFFFFLRRLFFFFUUUU', 'UUUULRRLFFFFRLLRFFFFUUUU'), linecount=900900)
def __init__(self, parent, build_state_index=False): LookupTable.__init__( self, parent, "lookup-table-4x4x4-step13-FB-centers-stage.txt", self.state_targets, linecount=735471, max_depth=8, filesize=40450905, all_moves=moves_444, illegal_moves=("Lw", "Lw'", "Lw2", "Bw", "Bw'", "Bw2", "Dw", "Dw'", "Dw2"), use_state_index=True, build_state_index=build_state_index, )
def __init__(self, parent): LookupTable.__init__( self, parent, "lookup-table-4x4x4-step22-highlow-edges-centers.txt", ( "LLLLRRRR", "LLRRLLRR", "LLRRRRLL", "LRLRLRLR", "LRLRRLRL", "LRRLRLLR", "RLLRLRRL", "RLRLLRLR", "RLRLRLRL", "RRLLLLRR", "RRLLRRLL", "RRRRLLLL", ), linecount=70, max_depth=4, filesize=1610, )
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step110-edges.txt', '111111111111_10425376a8b9ecfdhgkiljnm', linecount=7363591) # 10-deep
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step13-FB-centers-stage.txt', '00f0f0', linecount=735471)
def __init__(self, parent): LookupTable.__init__(self, parent, 'lookup-table-4x4x4-step71-tsai-phase3-edges.txt', '213098ba6574', linecount=14999140)