from lordran import platform_selector       as ps
from lordran import sliding_puzzle_parallel as spp

def random_pop_size( context , how_many , max_size_chromossome ):
    
    print '[random list generator]'
    
    return spp.RandomNumberList( context ).execute( ps.Execution.ASYNC , how_many , max_size_chromossome )

    exit( 0 )

if __name__ == '__main__' :
     
    import time
    
    context = ps.get_intel_context()
    
    a = time.time()
    
    random_list = random_pop_size( context , 10  , 10 )
   
    a = time.time() - a
    
    print '-->[ Finish at : ' , ( a / 60 ) , ']'
	
    print random_list 
from lordran import platform_selector       as ps
from lordran import sliding_puzzle_parallel as spp

def init_pop( context , random_list , puzzle ):
    
    return spp.InitialPopulationGeneratorEnhanced( context ).execute( ps.Execution.ASYNC , random_list , [ -1 , puzzle.move_top , 1 , puzzle.move_bot ] )
    
if __name__ == '__main__' :
    
    #~ puzzle = spp.Puzzle( range( 9 ) )
    
    puzzle = spp.Puzzle( [1,0,2,3,4,5,6,7,8] )
    
    context = ps.get_intel_context()
    
    import time
   
    # --- INITIAL POPULATION ---

    population , offset_list , max_chromossome_size = init_pop( context , range(1,10) , puzzle )    
    
    # --- FITNESS ---
    
    a = time.time()
    
    fitness_result_list , chromossome_list , chromossome_offset_list = spp.FitnessEnhanced( context ).execute( ps.Execution.ASYNC , population , offset_list , max_chromossome_size , puzzle )
    
    # --- CROSSOVER ---
    
    print 'fitness_result_list:' , type( fitness_result_list )
    print 'chromossome_list:' , type( chromossome_list )