# SWAP = True
SWAP = False  # 是否基于交换
""" 3-选择最初的解决方案是随机的(True)还是固定的(False) """
# RANDOM = True
RANDOM = False  # 如果初始解决方案是固定的(False),则需要在 tabu 类中的 initial_solution_fixe 函数下手动输入初始解
max_value_looptime = 120
initsol_looptime = 5
""" 4-设置禁忌长度 """
TABU_LENGTH = 30
""" 5-设置迭代相关系数 """
KMAX = 100  # 最大迭代次数
NUM_REPEAT = 10  # 控制提前退出迭代的当前解重复次数
""" 6-选择是否需要计算运行时间 """
start_time = time.time()
TIME = True
""" 阅读实例的数据 """
flights, compatibilities, L0, LNP1 = data.read_instance(filename)
# flights:航班列表(里面每个元素都是一个 “航班类”,详见模块 “flight”); compatibilities:每个航班可兼容的停机位
# L0:最早航班的到港时间的前推整点的量化; LNP1:最晚航班的离港时间的后推整点的量化
""" 创建 Tabu 对象 """
tabu_ins = tabu.Tabu(n_flights, n_gates, compatibilities, flights, L0, LNP1)
""" 启动禁忌搜索算法 """
loop_num = 1
for loop_i in range(loop_num):
    print("================================================== 第", loop_i,
          "次循环 ==================================================")
    tabu_ins.start_search(SWAP, RANDOM, KMAX, TABU_LENGTH, TIME, start_time,
                          NUM_REPEAT, max_value_looptime, initsol_looptime)
duration = 1800  # millisecond
freq = 550  # Hz
winsound.Beep(freq, duration)
예제 #2
0
            d.train_data.extend(documents[:fold_start])
            d.train_data.extend(documents[fold_end:])
            if len(external_train_data) != 0:
                d.train_data.extend(external_train_data)
            d.dev_data = documents[fold_start:fold_end]

            logging.info("begin fold {}".format(fold_idx))

            logging.info("build alphabet ...")
            d.build_alphabet(d.train_data)
            d.build_alphabet(d.dev_data)
            d.fix_alphabet()

            logging.info("generate instance ...")
            d.train_texts, d.train_Ids = data.read_instance(
                d.train_data, d.word_alphabet, d.char_alphabet,
                d.label_alphabet, d)
            d.dev_texts, d.dev_Ids = data.read_instance(
                d.dev_data, d.word_alphabet, d.char_alphabet, d.label_alphabet,
                d)

            logging.info("load pretrained word embedding ...")
            d.pretrain_word_embedding, d.word_emb_dim = data.build_pretrain_embedding(
                opt.word_emb_file, d.word_alphabet, opt.word_emb_dim, False)

            p, r, f = train.train(d, opt, fold_idx)

            d.clear()
            d.save(os.path.join(opt.output,
                                "data_{}.pkl".format(fold_idx + 1)))
예제 #3
0
print("bst sol: ",bs)

ls = tls.Tabu_list(2)

sol1 = {1:1,2:2}
def add_tabu(neighbor):
	for f in neighbor.keys():
		if neighbor[f] is not sol1[f]:
			ls.insert_movement(f,sol1[f],neighbor[f],0)

add_tabu({1:2,2:2})
print(ls.list)

# a partir d ici on teste fonction objectif

flights, compatibilities, L0, LNP1 = data.read_instance("data/GAP5_25")
sol_flights = flights.copy()
data.display_data(sol_flights)

random_gate = random.randint(0,2)
print(random_gate)


filename = "data/GAP5_25"
n_flights = 25
n_gates = 5

""" Lire les données d'une instance du problème """
flights, compatibilities, L0, LNP1 = data.read_instance(filename)
#print(compatibilities)