示例#1
0
def experiment1():
    #digraph, threshold_function, t_func_params = None, dep_coef=1, past_coef=0, normalize_initial_values = True
    myFCM = FCM.FCM(nx.DiGraph(), FCM.trivalent)

    node_list = [1, 2, 3, 4, 5, 6]
    initial_state = [1, 1, 1, 1, 1, 1]
    density_percent = .4
    valid_input = False
    seed = 0
    while not valid_input:
        seed += time.time()
        print "seed is: "
        print seed
        input_FCM = FCM.generate_random_FCM_matrix(node_list,
                                                   density_percent,
                                                   seed,
                                                   FCM.pos_neg_int,
                                                   allow_self_edge=True)
        input_data = myFCM.calculate_next_states_matrix(input_FCM,
                                                        initial_state,
                                                        n=30)
        print input_data
        if not myFCM.simple_pattern_recognition(input_data):
            valid_input = True
    print "\n\nINPUT FCM IS:"
    print input_FCM
    print "INPUT DATA IS:"
    for row in input_data:
        print row
    print "RUNNING GA TO ATTEMPT TO LEARN FCM"
    genome = G2DList.G2DList(len(node_list), len(node_list))
    genome.setParams(rangemin=-1, rangemax=1)
    myGA = FCM_GA.LearnFCM(input_data, node_list, myFCM, genome)
    myGA.setPopulationSize(1000)
    myGA.setGenerations(100)
    myGA.setMutationRate(0.3)
    myGA.setMinimax(Consts.minimaxType["minimize"])
    myGA.evolve(10)
    print myGA.bestIndividual()
    print "THE ERROR FOR THE BEST INDIVIDUAL IS:"
    print myGA.eval_func_matrix(myGA.bestIndividual())
    print "ACTUAL FCM"
    print input_FCM
def experiment1():
    #digraph, threshold_function, t_func_params = None, dep_coef=1, past_coef=0, normalize_initial_values = True
    myFCM = FCM.FCM(nx.DiGraph(), FCM.trivalent)  
    
    node_list = [1, 2, 3, 4, 5, 6]
    initial_state = [1, 1, 1, 1, 1, 1]
    density_percent = .4
    valid_input = False
    seed = 0
    while not valid_input:
        seed += time.time()
        print "seed is: "
        print seed
        input_FCM = FCM.generate_random_FCM_matrix(node_list, density_percent, seed, FCM.pos_neg_int, allow_self_edge = True)
        input_data = myFCM.calculate_next_states_matrix(input_FCM, initial_state, n = 30)
        print input_data
        if not myFCM.simple_pattern_recognition(input_data):
            valid_input = True
    print "\n\nINPUT FCM IS:"
    print input_FCM
    print "INPUT DATA IS:"
    for row in input_data:
        print row
    print "RUNNING GA TO ATTEMPT TO LEARN FCM"
    genome = G2DList.G2DList(len(node_list), len(node_list))
    genome.setParams(rangemin=-1, rangemax=1)
    myGA = FCM_GA.LearnFCM(input_data, node_list, myFCM, genome)
    myGA.setPopulationSize(1000)
    myGA.setGenerations(100)
    myGA.setMutationRate(0.3)
    myGA.setMinimax(Consts.minimaxType["minimize"])
    myGA.evolve(10)
    print myGA.bestIndividual()
    print "THE ERROR FOR THE BEST INDIVIDUAL IS:"
    print myGA.eval_func_matrix(myGA.bestIndividual())
    print "ACTUAL FCM"
    print input_FCM