Exemplo n.º 1
0
    range_lambda = np.array([0.001, 0.5, 1.0, 2.0, 4.0])
    optimize_t = [True, True, True, True, True]
    num_sample_iter = 5



# -----------------------------------------------------------------------------#
# initialize distributions


# generate random robot species with fixed diversity
if not load_data:
    rk = 0
    print 'Computing Species-Trait matrix'
    while rk != desired_rank:
        species_traits, rk, s = generate_Q(num_species, num_traits)
else:
    species_traits = pickle.load(open(load_prefix+"species_traits.p", "rb"))
    print species_traits

random_transition = random_transition_matrix(num_nodes, max_rate/2)  # Divide max_rate by 2 for the random matrix to give some slack.


print 'Getting high enough starting error...'
sys.stdout.flush()

ratio_init = 0.0
while ratio_init < 0.25 and not load_data:
    # sample initial
    print ratio_init
    deploy_robots_init = np.random.randint(0, 100, size=(num_nodes, num_species))
Exemplo n.º 2
0
num_iter = 1

QQ = np.zeros((num_traits*num_nodes+num_species, num_species*num_nodes))
QQ_rks = np.zeros((num_species,num_iter))
Q_rks = np.zeros((num_species,num_iter))

print "num rows: ", QQ.shape[0]
print "num cols: ", QQ.shape[1]

for it in range(num_iter):
    print it
    for ui in range(1,num_species+1):
        rk = 0    
        sys.stdout.flush()
        while rk!=ui:
            Q, rk, s = generate_Q(num_species, ui)
            #print Q
        # generate QQ
        QQ = np.zeros((ui*num_nodes+num_species, num_species*num_nodes))
        QQ[0:ui*num_nodes,:] = sp.linalg.block_diag(*([Q.T]*num_nodes))
        QQ[ui*num_nodes:,:] = np.concatenate([np.identity(num_species)]*num_nodes,axis=1)
        rk_QQ = np.linalg.matrix_rank(QQ)
    
        ind = ui-1
        Q_rks[ind,it]= rk
        QQ_rks[ind,it] = rk_QQ
        

coef = QQ_rks / Q_rks

ind = 0