In [1]:
import pandas as pd
import generate_states as gs

In [2]:
num_cars = 8
num_trucks = 2
filename = 'rushour counts - class %d'%(2**num_cars*3**num_trucks)
filename


Out[2]:
'rushour counts - class 2304'

In [ ]:
import datetime
print (datetime.datetime.now())

In [3]:
gs.generate_states(num_cars,num_trucks)


Initializing With Red Car in Position: 12
Initializing With Red Car in Position: 13
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-3-ac93a192b12f> in <module>()
----> 1 gs.generate_states(num_cars,num_trucks)

~\Documents\repos\RushHour\RushHourPy\generate_states.py in generate_states(num_cars, num_trucks)
    149         #print_board(red_car_end_a)
    150 
--> 151         place_remaining_pieces(0, num_cars-1, num_trucks, red_car_end_a, comb_class)
    152         remove_piece(red_car_end_a, HORIZONTAL_CAR)
    153 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    209                 add_piece(pos, VERTICAL_TRUCK)
    210                 #print_board(red_car_end_a)
--> 211                 place_remaining_pieces(pos + 1, num_cars, num_trucks-1, red_car_end_a, comb_class)
    212                 remove_piece(pos, VERTICAL_TRUCK)
    213 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    193                 add_piece(pos, VERTICAL_CAR)
    194                 #print_board(red_car_end_a)
--> 195                 place_remaining_pieces(pos + 1, num_cars - 1, num_trucks, red_car_end_a, comb_class)
    196                 remove_piece(pos, VERTICAL_CAR)
    197 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    209                 add_piece(pos, VERTICAL_TRUCK)
    210                 #print_board(red_car_end_a)
--> 211                 place_remaining_pieces(pos + 1, num_cars, num_trucks-1, red_car_end_a, comb_class)
    212                 remove_piece(pos, VERTICAL_TRUCK)
    213 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    193                 add_piece(pos, VERTICAL_CAR)
    194                 #print_board(red_car_end_a)
--> 195                 place_remaining_pieces(pos + 1, num_cars - 1, num_trucks, red_car_end_a, comb_class)
    196                 remove_piece(pos, VERTICAL_CAR)
    197 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    187                 add_piece(pos, HORIZONTAL_CAR)
    188                 #print_board(red_car_end_a)
--> 189                 place_remaining_pieces(pos+2, num_cars-1, num_trucks, red_car_end_a, comb_class)
    190                 remove_piece(pos, HORIZONTAL_CAR)
    191 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    193                 add_piece(pos, VERTICAL_CAR)
    194                 #print_board(red_car_end_a)
--> 195                 place_remaining_pieces(pos + 1, num_cars - 1, num_trucks, red_car_end_a, comb_class)
    196                 remove_piece(pos, VERTICAL_CAR)
    197 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    187                 add_piece(pos, HORIZONTAL_CAR)
    188                 #print_board(red_car_end_a)
--> 189                 place_remaining_pieces(pos+2, num_cars-1, num_trucks, red_car_end_a, comb_class)
    190                 remove_piece(pos, HORIZONTAL_CAR)
    191 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    193                 add_piece(pos, VERTICAL_CAR)
    194                 #print_board(red_car_end_a)
--> 195                 place_remaining_pieces(pos + 1, num_cars - 1, num_trucks, red_car_end_a, comb_class)
    196                 remove_piece(pos, VERTICAL_CAR)
    197 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    187                 add_piece(pos, HORIZONTAL_CAR)
    188                 #print_board(red_car_end_a)
--> 189                 place_remaining_pieces(pos+2, num_cars-1, num_trucks, red_car_end_a, comb_class)
    190                 remove_piece(pos, HORIZONTAL_CAR)
    191 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in place_remaining_pieces(cur_position, num_cars, num_trucks, red_car_end_a, comb_class)
    175 
    176         top_hash_int, bottom_hash_int = board_to_ints()
--> 177         save_graph_stats(state.State(red_car_end_a,top_hash_int,bottom_hash_int))
    178 
    179 

~\Documents\repos\RushHour\RushHourPy\generate_states.py in save_graph_stats(state)
    230     comb_class = state.combinatorial_class
    231     topo_1 = state.topo_class_1
--> 232     topo_2 = state.topo_class_2
    233     deg = state.degree
    234 

~\Documents\repos\RushHour\RushHourPy\state.py in topo_class_2(self)
    460         vertical = [ p for p in self.pieces if p.topology in [self.VERTICAL_CAR, self.VERTICAL_TRUCK]]
    461 
--> 462         horizontal = [p for p in self.pieces if p.topology in [self.HORIZONTAL_CAR,self.HORIZONTAL_TRUCK]]
    463 
    464 

KeyboardInterrupt: 

In [5]:
len(gs.graph_stats)


Out[5]:
26

In [6]:
sum([gs.graph_stats[k]['num_states'] for k in gs.graph_stats.keys()])


Out[6]:
91133282

In [33]:


In [7]:
graph_list = [ [k[0],k[1],k[2],gs.graph_stats[k]] for k in gs.graph_stats]

Header = ['comb class','topo class 1','topo class 2','num_states','isolated states','soln states']
          
Data = [ [x[0],x[1],x[2],x[3]['num_states'],x[3]['num_isolated_states'],x[3]['num_soln_states']] for x in graph_list]

In [8]:
df = pd.DataFrame(Data, columns=Header)

In [9]:
df.head()


Out[9]:
comb class topo class 1 topo class 2 num_states isolated states soln states
0 256 0vc_0vt_8hc_0ht 0 1099600 0 261010
1 256 1vc_0vt_7hc_0ht 0 4793395 70 1051543
2 256 1vc_0vt_7hc_0ht 1 1501615 0 378353
3 256 2vc_0vt_6hc_0ht 0 9449477 360 1940644
4 256 2vc_0vt_6hc_0ht 1 6324588 147 1498353

In [4]:
grp_topo1 = df.groupby('topo class 1')
grp_class = df.groupby('comb class')


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-f267b1e9be0b> in <module>()
----> 1 grp_topo1 = df.groupby('topo class 1')
      2 grp_class = df.groupby('comb class')

NameError: name 'df' is not defined

In [3]:
grp_class.sum()


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-3-e81ae344318d> in <module>()
----> 1 grp_class.sum()

NameError: name 'grp_class' is not defined

In [1]:
grp_topo1.count()


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-40483ea32809> in <module>()
----> 1 grp_topo1.count()

NameError: name 'grp_topo1' is not defined

In [14]:
df.to_pickle(filename)

In [13]:
pwd


Out[13]:
'C:\\Users\\chaithcock\\Documents\\repos\\RushHour\\RushHourPy'

In [ ]: