博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法Project(变种背包问题)
阅读量:2395 次
发布时间:2019-05-10

本文共 61600 字,大约阅读时间需要 205 分钟。

问题描述:

假设有n个商店和m位顾客,我们希望计算得到:

(1)开放那些商店

(2)安排哪位顾客去哪位商店

来使得开销最小。

其中:如果商店有安排到至少一位顾客,则商店需要开放营业,而这需要开销opening cost(每个商店的opening cost不同),另外安排某位顾客去某位商店的这一过程也需要开销assigning cost,且因商店的不同和顾客的不同而变化。

也即: 总开销 = 所有商店的opening cost + 所有顾客的assigning cost

除此之外,还需要考虑到商店的容量,每位顾客会占据一定的空间(demand of customer),安排到一个商店的顾客不能超过商店的容量。

 

输入格式:

共71个输入,格式为: 

 解法一:

使用局部搜索的思想(爬山法):

(1)随机生成一个合法的解

关于这个随机,需要考虑到商店是否开放的问题。当商店开放的开销非常大时,商店开放的选择将对最终的结果产生较大的影响。我采用的方式是:随机选择一个商店,顺序安排顾客,容量满了之后再随机选择另一个商店,重复这个过程。(如果这样的策略导致最终无法安排完所有的顾客,则重新再生成一个合法初始解)。

(2)对一个初始解进行n次迭代(如果迭代一段时间仍然得不到更优的解,则认为已经得到了局部最优解,停止迭代):

         找到当前解的邻域,在邻域中找出开销最小的解,如果这个解比原来的解要好,则将它作为新的解,重复这个过程。

(3) 为了避免一开始商店不完全开放产生的不好的影响,每次随机生成多个合法的初始解,重复以上过程。并且保证第一个初始解开放了所有的商店。

其中找邻域的算法为:

随机选择一个顾客,再随机选择一个商店,将这个顾客分配到这个商店。(保证这个商店不是这个顾客原来分配的商店,且分配过去之后不会超过商店的容量,如果不满足就重新执行)并在一次迭代中同时找到十个这样的随机更改(都是以当前的解为起点),作为邻域进行判断。

 

这个思想很简单,但是存在问题:

1. 可能最终得到的解是局部最优,而不是全局最优(可以理解为到达了一个小山峰,通过邻域无法在找到更好的解,但实际上有更高的山峰)。

2. 可能遇到平顶,邻域中的解相同,无法确定要搜索的最佳方向。

代码:

定义数据结构

#ifndef DEFINE_HPP#define DEFINE_HPP#include 
using namespace std;struct data { int facility_num; // 商店数量 int customer_num; // 顾客数量 vector
facility_capacity; // 商店容量 vector
facility_opening_cost; // 商店开放开销 vector
customer_demand; // 顾客占的空间 vector
> assignment_cost; // [facility][customer] 安排顾客的开销 data(int facility_num, int customer_num, vector
> init_assignment_cost) { this->facility_num = facility_num; this->customer_num = customer_num; this->assignment_cost = init_assignment_cost; } vector
assignment; // 最终的安排方式 vector
facility_used; // 最终各个商店消耗的容量};#endif

核心代码:

int get_random(int range) {  return rand()%range;}// 根据顾客的安排计算总开销int evaluation(vector
& assignment, data& m_data) { int result = 0; // 要记得初始化 vector
facility_status(m_data.facility_num, 0); for(int i = 0; i < assignment.size(); i++) { facility_status[assignment[i]] = 1; } for(int i = 0; i < facility_status.size(); i++) { if(facility_status[i] != 0) result += m_data.facility_opening_cost[i]; } for(int i = 0; i < assignment.size(); i++) { result += m_data.assignment_cost[assignment[i]][i]; } return result;}// 随机得到一个初始的合法解bool init_solution(vector
& assignment, vector
& facility_used, data& m_data, vector
& m_random) { // 随机选择一个商店,顺序安排顾客,容量满了之后再随机选择另一个商店,重复这个过程 // 初始解中未开放的商店意味着永远关闭,后续不会安排顾客过去 int p = get_random(m_data.facility_num); m_random.push_back(p); for(int i = 0; i < m_data.customer_num; i++) { while(true) { int facility = p; if(m_data.facility_capacity[facility]-facility_used[facility] >= m_data.customer_demand[i]) { assignment[i] = facility; facility_used[facility] += m_data.customer_demand[i]; break; } else { while(true) { p = get_random(m_data.facility_num); if(find(m_random.begin(), m_random.end(), p) == m_random.end()) { m_random.push_back(p); break; } if(m_random.size() == m_data.facility_num) return false; // 当前的策略导致无法安排完所有顾客,抛弃此次初始解 } } } } return true;}bool can_open(int facility, vector
& m_random) { // 初始时开放的商店才能继续使用,其余的商店不再开放 if(find(m_random.begin(), m_random.end(), facility) != m_random.end()) return true; else return false;}// 爬山法int local_search(data& m_data) { int final_result = 100000; int final_times; int final_last_update; for(int x = 0; x < 10; x++) { int result = 0; vector
facility_status(m_data.facility_num, 0); vector
assignment(m_data.customer_num, 0); vector
facility_used(m_data.facility_num, 0); vector
m_random; // 获得一个初始解 // 如果求解异常,跳过这次执行 if(!init_solution(assignment, facility_used, m_data, m_random)) { x--; continue; } result = evaluation(assignment, m_data); int last_update = -1; int times = 500; for(int i = 0; i < times; i++) { int cur = 0; int customer1, customer2; int facility1, facility2; int type; // 确定邻域中的最优解是用哪种策略找到的 for(int j = 0; j < 10; j++) { // int choice = get_random(100); // 修改一个顾客的安排得到一个邻域,同时找10个邻域,从中选出最好的 int tmp_customer, tmp_facility; while(true) { // 得到一个可执行的调整(不超过最大容量) tmp_customer = get_random(m_data.customer_num); tmp_facility = get_random(m_data.facility_num); // 不选取关闭的商店 // 第一个初始解开放所有的商店 if(facility_used[tmp_facility] == 0 && !can_open(tmp_facility, m_random) && x != 0) continue; if(m_data.facility_capacity[tmp_facility]-facility_used[tmp_facility] >= m_data.customer_demand[tmp_customer] && tmp_facility != assignment[tmp_customer]) // 要避开调度到同一个商店的情况(相当于没调动,而且会出bug) break; } int tmp_result = m_data.assignment_cost[tmp_facility][tmp_customer]-m_data.assignment_cost[assignment[tmp_customer]][tmp_customer]; if(facility_used[tmp_facility] == 0) { // 变动需要开启新的商店 tmp_result += m_data.facility_opening_cost[tmp_facility]; } if(facility_used[assignment[tmp_customer]] == m_data.customer_demand[tmp_customer]) { // 变动会关闭旧的商店 tmp_result -= m_data.facility_opening_cost[assignment[tmp_customer]]; } // 求出10个邻域中的最优解 if(tmp_result < cur) { cur = tmp_result; customer1 = tmp_customer; facility1 = tmp_facility; } } // 如果邻域中有更优的解,将这个解作为新解 if(cur < 0) { facility_used[assignment[customer1]] -= m_data.customer_demand[customer1]; assignment[customer1] = facility1; facility_used[facility1] += m_data.customer_demand[customer1]; result += cur; last_update = i; } if(i == times-1) { if(i-last_update < 500) // 如果迭代一段时间仍然得不到更优的解,则认为已经得到了局部最优解,停止迭代 times += 500; } } if(result < final_result) { final_result = result; final_times = times; final_last_update = last_update; m_data.assignment = assignment; m_data.facility_used = facility_used; } } cout << "HC final cost: " << final_result << " total times: " << final_times << " last update: " << final_last_update << " check: " << evaluation(m_data.assignment, m_data) << endl; return final_result;}

运行结果

Result Time(s)p1  9501  0.054185p2  8389  0.045538p3  10238 0.050825p4  12130 0.051824p5  9439  0.017958p6  7962  0.017928p7  10032 0.018934p8  11857 0.020096p9  9115  0.034581p10 8123  0.033655p11 9677  0.034299p12 10914 0.036240p13 9661  0.135806p14 8191  0.166471p15 9945  0.242802p16 13097 0.228588p17 10134 0.152015p18 8015  0.128695p19 10536 0.116270p20 12680 0.110996p21 10074 0.077413p22 8881  0.082733p23 9860  0.077299p24 12351 0.091676p25 13234 0.209495p26 12969 0.241355p27 15095 0.263315p28 18475 0.254944p29 16332 0.218115p30 14259 0.198850p31 19712 0.231230p32 20131 0.219975p33 14405 0.334967p34 13089 0.306140p35 16172 0.342267p36 22645 0.322351p37 14907 0.173000p38 12751 0.176526p39 15464 0.189599p40 16619 0.181526p41 7388  0.052925p42 6544  0.171739p43 6032  0.210609p44 8467  0.047902p45 8258  0.100014p46 6932  0.262841p47 8181  0.082714p48 7223  0.134204p49 6815  0.197290p50 10577 0.053424p51 9268  0.131023p52 12332 0.045207p53 13069 0.088564p54 10441 0.041415p55 11832 0.149901p56 25263 0.124397p57 29976 0.119811p58 42407 0.131893p59 32655 0.121115p60 22848 0.172864p61 30155 0.166056p62 37719 0.165686p63 30824 0.170274p64 25597 0.204970p65 33459 0.242885p66 40494 0.222066p67 32434 0.165219p68 25102 0.176221p69 32597 0.176730p70 41367 0.204037p71 35552 0.191322

具体信息:

(依次为:总开销,商店是否开放,各个顾客的安排)

[p1]95011 1 1 1 1 0 1 1 1 0 8 2 3 6 3 0 2 4 4 1 4 0 3 2 8 3 4 0 6 7 3 8 6 4 2 6 1 6 0 1 2 6 0 0 4 4 4 3 0 4 1 8 1 6 7 0 4 0 4 3 [p2]83891 1 0 1 1 1 1 1 1 1 7 8 1 6 3 8 4 4 4 1 9 8 3 4 8 3 9 0 9 7 3 4 6 4 5 5 1 5 0 5 9 6 0 3 9 4 4 3 0 4 1 8 1 5 7 0 9 0 4 0 [p3]102381 1 1 1 1 0 1 1 0 0 0 2 1 6 3 0 2 4 2 1 4 0 3 2 7 3 4 2 6 7 3 4 6 4 2 6 1 6 0 1 2 6 0 3 4 4 4 3 0 4 1 0 3 6 7 3 4 0 4 0 [p4]121301 1 0 1 1 1 0 1 0 1 7 4 5 5 3 0 5 4 4 1 9 0 3 7 0 3 4 0 9 7 1 4 9 4 5 5 1 5 0 5 9 5 0 3 9 4 4 3 0 4 1 3 3 5 7 0 4 3 4 0 [p5]94391 1 1 1 1 0 1 1 1 1 8 0 1 6 3 8 2 4 4 1 9 8 3 2 0 3 2 0 9 7 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 7 3 0 4 1 8 1 6 7 0 4 3 4 8 [p6]79621 1 1 1 1 0 1 1 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 4 0 9 7 3 4 6 7 2 6 1 1 8 1 2 6 0 3 9 4 7 3 0 4 1 8 1 6 7 0 4 0 4 0 [p7]100321 1 1 1 1 1 1 1 1 0 8 8 1 6 3 8 2 4 4 1 4 8 0 2 8 0 4 0 6 7 3 8 6 7 2 5 1 5 0 5 6 6 0 3 2 4 4 3 0 4 1 8 1 5 7 0 2 3 4 3 [p8]118571 1 1 1 1 1 1 1 1 0 8 8 1 6 3 8 2 4 4 1 4 8 3 2 8 3 4 0 6 7 3 8 6 7 2 5 1 5 0 5 2 6 0 3 2 4 7 3 0 4 1 8 1 5 7 0 4 0 4 1 [p9]91150 1 1 1 1 0 1 0 1 0 8 8 1 6 3 8 2 4 4 1 4 8 3 2 8 3 4 8 6 4 3 4 6 2 2 6 1 1 8 1 2 6 3 3 2 4 4 3 8 4 1 8 1 6 4 8 4 3 2 3 [p10]81231 1 1 1 1 1 0 1 1 0 8 8 1 5 3 8 2 4 4 1 4 8 3 2 8 3 4 0 4 7 3 8 5 4 2 5 1 5 0 5 2 5 0 3 4 4 7 3 0 4 1 8 1 5 7 0 4 0 4 0 [p11]96771 0 1 1 1 0 1 0 1 1 8 8 3 6 3 8 2 4 4 3 9 8 3 2 8 3 4 0 9 4 3 8 6 9 2 6 3 6 0 2 2 6 0 3 9 4 4 3 0 4 3 8 3 6 4 0 4 0 4 0 [p12]109141 0 0 1 1 1 0 0 1 1 8 8 5 5 3 8 3 4 4 5 9 8 3 4 8 3 4 0 9 4 3 8 9 9 5 5 3 5 0 5 9 5 0 3 9 4 9 3 0 4 3 8 3 5 4 0 4 0 4 0 [p13]96610 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 16 12 10 10 12 12 1 13 14 19 15 19 19 6 13 12 15 10 19 9 12 15 15 19 6 1 16 1 1 1 13 15 13 16 12 10 9 19 19 13 6 16 5 16 9 5 14 10 19 9 [p14]81911 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 16 1 10 10 1 18 17 18 14 17 15 4 1 6 13 11 15 10 4 6 14 15 15 13 6 17 16 17 1 17 13 15 13 16 11 10 11 1 1 13 6 0 0 0 8 13 14 10 4 8 [p15]99450 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 7 14 10 10 19 13 17 13 14 17 7 19 19 6 13 11 5 10 19 6 14 5 5 19 6 17 7 17 17 17 13 7 13 7 11 10 11 19 19 13 6 7 5 7 11 5 14 10 19 6 [p16]130970 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 10 11 10 10 1 15 1 7 7 4 15 4 1 6 2 11 7 10 4 6 1 7 7 2 6 4 7 11 1 4 2 15 2 15 1 10 11 2 4 2 6 15 7 15 11 15 10 6 2 6 [p17]101340 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 16 12 16 16 1 18 17 18 14 17 15 19 1 9 18 12 15 14 17 9 12 15 15 19 9 17 16 17 1 17 18 15 18 15 1 14 8 19 19 18 9 16 16 14 8 15 14 14 19 9 [p18]80151 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 16 1 10 10 1 18 17 18 14 17 15 19 1 6 18 3 15 10 17 6 14 15 15 19 6 17 16 17 1 17 18 15 18 16 3 10 3 19 19 18 6 0 5 0 3 5 14 10 19 6 [p19]105360 1 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 16 1 7 7 1 18 17 13 7 17 15 4 1 9 13 8 15 7 4 9 18 15 15 13 9 17 16 17 1 17 13 7 13 16 1 7 8 1 1 13 9 16 15 16 8 13 7 9 4 9 [p20]126800 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 16 12 15 7 19 12 17 15 12 17 15 19 12 9 19 3 7 7 17 9 12 15 15 19 9 3 16 17 3 17 19 7 19 16 3 7 3 12 17 12 9 7 16 16 3 15 12 9 19 9 [p21]100740 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 16 1 16 6 1 12 17 13 12 17 16 1 1 6 13 12 16 6 17 9 12 12 12 13 6 17 16 17 1 17 13 16 13 16 1 6 17 1 1 13 6 13 12 12 9 13 12 6 1 9 [p22]88810 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 5 12 6 6 12 12 17 13 12 17 15 17 12 6 13 12 15 6 17 9 12 15 15 13 6 17 5 17 12 17 13 15 13 15 12 6 17 12 13 13 6 5 5 15 9 5 12 6 13 9 [p23]98600 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 16 1 10 10 1 18 3 18 3 3 15 1 1 6 18 3 15 10 1 6 18 15 15 18 6 3 16 1 1 3 18 15 18 16 3 10 3 1 1 18 6 16 15 16 6 15 15 10 18 6 [p24]123511 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 12 10 10 12 12 11 5 12 11 5 1 1 10 5 11 5 10 11 9 12 5 5 1 9 1 0 1 1 11 12 10 12 0 11 10 11 1 1 5 10 0 5 0 11 0 12 10 1 9 [p25]132341 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 20 11 20 2 20 5 2 24 14 17 24 20 28 20 2 14 14 17 5 11 14 0 5 2 5 20 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 28 24 14 7 20 11 28 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 24 24 20 20 11 17 24 20 24 20 14 24 20 7 20 0 2 17 17 7 20 5 17 24 17 11 17 24 2 14 21 20 28 7 17 25 14 25 7 11 14 28 14 14 2 11 11 21 24 24 24 24 5 28 25 20 20 0 5 24 0 25 0 11 24 5 28 14 7 5 20 0 0 28 20 14 20 25 25 5 2 5 [p26]129691 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 20 11 13 2 20 5 2 24 14 17 24 16 8 20 19 14 14 17 5 11 2 0 5 17 5 8 19 24 5 24 5 25 13 25 20 20 24 15 0 14 0 14 15 8 24 14 7 13 11 8 29 14 14 5 20 20 17 11 11 14 0 5 20 11 11 11 24 0 24 24 20 20 11 17 24 8 24 20 14 24 20 7 20 0 19 0 2 7 20 5 14 24 17 11 17 5 2 2 25 16 8 17 14 25 2 29 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 16 0 5 24 0 29 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p27]150951 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 20 11 13 2 20 5 2 9 14 17 24 8 8 20 19 14 14 17 5 11 2 0 5 19 5 8 19 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 28 24 14 0 13 11 8 5 14 14 5 13 20 17 11 0 14 0 5 20 11 11 11 9 0 9 24 20 20 11 0 24 8 24 20 14 24 20 0 13 0 19 17 17 0 20 5 2 24 17 11 17 5 2 19 25 20 8 17 14 25 2 25 17 11 14 28 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 9 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p28]184751 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 20 11 13 2 20 5 2 9 14 0 9 8 8 20 19 14 14 0 25 11 2 0 9 17 9 8 19 5 5 9 5 25 20 25 20 20 5 15 0 14 0 14 15 8 5 14 0 13 11 8 5 14 14 5 13 20 17 11 11 14 0 5 20 11 11 11 9 0 5 9 20 20 11 17 9 8 9 20 14 9 20 7 20 17 19 0 17 7 20 5 2 9 17 11 17 9 2 19 25 20 8 17 17 25 2 25 7 11 14 8 14 14 2 11 11 25 5 15 5 5 5 8 25 13 8 0 5 9 0 25 0 11 5 25 8 14 7 25 20 17 0 8 20 14 8 25 25 5 2 5 [p29]163320 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 20 11 20 2 20 5 2 9 14 17 24 8 8 20 19 14 14 11 5 11 2 7 5 17 24 8 19 24 5 9 5 25 20 25 20 20 24 24 7 14 17 14 24 8 24 14 4 13 11 8 29 14 14 5 13 20 17 11 11 14 17 5 8 11 17 11 24 17 5 9 20 13 11 7 24 8 9 20 14 24 20 7 20 17 19 17 17 4 20 5 2 9 17 11 7 9 2 2 21 13 8 17 17 25 2 29 17 11 14 8 14 14 2 11 11 21 5 24 24 24 5 8 25 13 8 7 5 9 7 29 17 11 24 5 8 8 17 5 13 17 11 8 13 14 8 25 25 11 2 5 [p30]142591 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 8 11 20 2 20 5 2 24 14 17 22 8 28 14 19 14 14 17 5 0 2 0 5 17 5 8 19 24 5 24 5 11 20 11 20 20 24 24 0 14 0 14 24 8 5 17 7 20 11 8 29 14 17 5 20 20 17 11 11 14 0 5 20 11 11 11 22 0 22 22 20 8 11 17 9 8 22 20 14 24 8 7 28 17 17 17 17 7 20 5 2 24 17 11 17 9 2 2 21 8 8 7 14 11 2 29 17 0 14 28 14 14 2 11 11 21 24 24 24 24 11 8 11 20 8 0 5 9 0 21 0 11 24 5 28 8 7 5 8 17 0 8 20 14 8 29 11 5 2 24 [p31]197121 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 16 11 16 2 16 5 19 9 2 17 24 16 16 8 17 17 14 0 5 11 2 0 5 17 5 8 19 24 5 24 5 25 16 25 8 14 5 24 0 14 0 14 24 16 24 14 7 8 11 8 5 2 17 11 8 2 2 11 11 14 0 5 14 11 11 11 9 0 9 9 8 8 11 0 24 2 24 14 2 9 8 7 8 0 19 0 17 7 8 25 2 9 7 11 17 9 14 19 21 16 16 17 17 25 2 25 17 11 14 14 17 14 2 11 11 25 24 24 24 24 5 8 25 2 16 0 5 24 0 21 0 11 24 5 16 2 17 5 8 0 0 8 14 17 14 25 25 5 17 11 [p32]201311 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 20 11 13 2 20 5 2 9 28 17 22 8 8 20 19 8 17 0 5 11 2 0 5 19 5 8 19 24 24 24 5 25 20 25 20 13 24 24 0 2 0 8 24 28 24 17 7 13 11 8 5 28 17 5 13 20 2 11 11 17 0 5 8 11 11 11 22 0 22 22 13 20 11 0 24 8 9 20 2 24 20 7 20 17 19 0 17 7 20 25 2 9 17 11 17 9 2 2 25 20 8 17 17 25 2 25 17 11 28 28 17 2 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 9 0 25 0 11 24 5 8 8 7 5 20 17 0 8 20 17 8 25 25 5 2 5 [p33]144051 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 20 11 20 2 20 5 2 24 14 17 24 16 14 20 19 14 14 17 5 11 2 0 5 17 5 20 19 24 5 24 5 25 13 25 20 20 24 24 0 14 0 14 24 16 24 14 0 13 27 14 5 14 14 5 20 20 17 11 11 14 0 5 20 11 11 11 5 0 24 24 20 20 11 17 24 20 5 20 14 24 13 7 13 17 19 17 17 7 20 5 2 24 17 11 17 24 2 2 25 16 16 17 17 25 2 25 17 11 14 14 14 14 2 11 11 27 24 24 24 24 5 16 25 13 16 0 5 24 0 25 0 11 5 5 16 14 7 5 20 17 0 20 20 14 14 25 25 5 2 5 [p34]130891 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 20 11 13 2 20 5 2 24 14 17 24 16 8 20 19 14 14 17 5 11 2 0 5 17 5 8 19 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 0 13 27 8 29 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 9 0 24 24 20 20 11 17 24 8 9 20 14 24 20 7 13 17 17 17 17 7 20 5 2 24 17 11 17 24 2 19 25 16 8 17 17 25 2 29 17 11 14 8 14 14 2 11 11 27 24 24 24 5 5 8 25 13 16 0 5 24 0 29 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p35]161721 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 20 11 20 2 20 11 2 24 14 17 29 20 28 13 19 14 14 17 25 11 2 0 24 17 24 20 19 24 25 24 29 25 20 25 20 20 24 25 0 14 0 14 24 28 24 14 0 13 11 28 29 14 14 11 20 20 17 11 0 14 0 24 20 11 11 11 29 0 24 24 20 20 11 17 24 28 29 20 14 24 20 7 20 17 17 17 17 7 20 29 2 24 17 11 17 24 2 19 25 13 28 17 17 25 2 29 17 11 14 28 14 14 2 11 11 25 24 24 24 24 11 28 25 13 20 0 25 29 0 25 0 11 24 29 28 14 17 25 20 17 0 28 13 14 14 25 25 11 2 11 [p36]226451 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 6 11 16 14 16 5 19 24 14 17 24 16 14 14 19 14 17 17 5 11 19 0 5 17 5 17 19 24 5 24 5 25 6 25 17 14 5 24 0 14 0 0 24 16 24 0 7 14 27 17 5 19 14 5 6 17 17 11 11 14 0 5 17 11 11 11 24 0 24 24 16 6 11 0 24 19 24 14 14 24 6 7 14 0 19 17 17 7 14 5 14 24 17 11 7 5 17 19 25 16 16 17 17 25 19 25 7 11 14 14 17 19 0 11 11 27 24 24 24 24 5 16 25 14 16 0 5 5 0 25 0 11 24 5 16 17 7 5 14 0 0 14 17 17 0 25 25 5 0 5 [p37]149071 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 8 11 6 14 8 5 19 24 14 17 24 8 8 8 19 14 14 17 5 11 14 0 5 17 5 8 19 24 5 24 5 25 6 25 8 8 24 15 0 14 0 14 15 28 24 14 7 8 25 8 5 14 14 5 6 8 17 11 0 14 0 5 8 11 11 11 24 0 24 24 8 6 11 17 24 8 24 8 14 24 8 7 8 17 17 17 17 7 8 5 17 24 17 11 17 24 14 19 25 8 8 17 17 25 19 25 17 11 14 28 14 14 17 11 11 25 24 24 24 24 5 8 25 8 8 0 5 24 0 25 0 11 24 5 8 14 17 5 8 17 0 8 8 14 8 25 25 5 17 5 [p38]127511 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 20 11 13 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 19 24 5 24 5 25 6 25 20 20 24 24 0 14 0 14 24 28 24 14 0 13 11 8 5 14 14 5 13 20 17 11 0 14 0 5 20 11 11 11 24 0 24 24 20 6 11 17 24 8 24 20 14 24 20 7 13 17 19 17 17 7 20 5 2 24 17 11 17 5 2 2 25 18 8 17 17 25 2 25 17 11 14 28 14 14 2 11 11 25 24 24 24 24 5 8 25 13 18 0 5 24 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p39]154641 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 20 25 20 2 20 5 2 9 14 17 9 8 8 20 3 14 14 17 5 11 2 0 5 3 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 28 24 14 0 13 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 5 9 20 20 11 17 24 8 9 20 14 24 20 7 20 17 17 17 17 7 20 5 2 24 17 11 17 5 2 2 25 13 8 17 17 25 2 25 17 11 14 28 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 9 0 25 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p40]166191 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 20 11 20 14 20 5 19 5 14 17 5 8 8 20 17 14 14 17 5 11 14 0 5 17 5 8 19 5 5 15 5 25 20 25 20 20 5 15 0 14 0 14 15 8 11 14 0 20 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 5 0 5 5 20 20 11 17 5 8 15 20 14 5 20 7 20 17 17 17 17 7 20 5 17 5 17 11 17 5 14 19 25 20 8 17 17 25 19 25 17 11 14 8 14 14 17 11 11 25 5 15 5 5 5 8 25 20 20 0 25 15 0 25 0 11 5 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 17 5 [p41]73881 1 0 0 1 0 1 1 0 1 4 6 4 1 6 9 7 7 7 7 4 6 6 6 9 7 7 0 0 6 6 1 4 1 6 4 4 4 0 0 0 0 0 0 7 7 7 6 6 9 6 7 7 7 7 4 0 7 6 4 1 1 6 6 7 7 7 7 7 7 0 4 1 0 0 6 6 6 4 4 0 4 4 4 7 7 7 7 6 7 9 9 7 9 7 9 9 9 7 9 [p42]65440 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 16 10 4 10 18 18 16 4 16 16 4 18 10 10 18 18 16 4 10 10 10 4 10 18 16 18 4 16 16 4 16 18 10 18 10 10 10 18 16 16 16 4 4 16 4 10 18 18 18 18 16 16 16 4 4 10 16 10 10 10 4 4 4 4 4 4 16 18 18 18 10 18 18 18 18 18 18 18 18 18 [p43]60320 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 27 19 6 27 2 19 2 19 6 6 2 2 2 19 6 6 19 6 19 19 2 19 19 19 19 2 2 6 27 6 2 2 2 2 19 19 2 19 19 6 6 6 2 2 27 2 2 19 19 6 19 19 19 6 6 6 19 19 2 27 27 27 27 27 27 27 2 2 27 2 [p44]84671 1 1 0 1 1 0 1 1 1 4 4 4 4 4 4 4 4 0 0 7 0 0 0 7 0 1 1 1 1 7 1 8 2 2 2 2 2 2 2 2 5 4 5 5 4 9 5 5 5 4 0 1 7 8 8 7 5 9 7 7 7 5 5 8 8 7 7 9 5 5 5 9 9 0 1 0 8 1 0 4 7 5 7 7 7 7 7 5 2 7 9 7 9 9 9 7 5 7 5 [p45]82580 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 18 17 18 18 18 18 18 18 18 18 18 18 18 18 18 3 3 3 3 3 3 4 4 4 4 4 4 4 4 14 18 14 14 17 17 14 17 14 18 18 3 3 4 3 18 14 18 3 18 14 17 17 17 18 17 18 14 18 3 3 3 3 17 17 18 3 17 17 3 3 18 3 18 17 14 17 17 17 3 18 [p46]69321 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 8 0 0 0 15 15 15 15 15 15 15 0 18 18 18 15 18 18 5 5 5 5 5 5 8 8 8 27 27 8 27 0 15 18 5 18 18 18 18 15 0 5 18 18 27 18 18 0 27 27 0 5 18 27 18 18 27 15 15 18 18 27 27 27 27 15 18 [p47]81811 1 1 1 0 0 1 1 1 0 0 2 0 0 0 0 2 0 0 0 1 2 1 1 2 1 1 2 0 2 2 2 2 2 3 2 2 3 3 3 3 3 3 3 3 2 6 3 6 6 2 2 2 2 3 3 2 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 6 7 2 8 7 7 7 7 7 8 8 0 7 8 7 0 8 0 8 7 8 2 7 2 0 2 [p48]72230 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 4 4 4 4 4 3 4 4 4 8 4 4 4 4 4 4 11 11 8 8 8 11 4 8 4 11 8 11 11 11 11 11 11 8 4 11 11 8 8 11 11 14 11 14 11 4 14 14 14 14 14 18 18 18 18 18 4 18 18 18 18 18 18 18 18 [p49]68150 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 19 19 19 12 19 12 12 19 12 12 12 19 19 19 19 19 12 12 19 19 19 19 12 19 24 19 24 19 19 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 [p50]105771 0 1 0 1 1 0 1 0 0 7 0 4 0 2 2 5 5 7 7 7 4 0 2 0 2 2 2 7 7 0 4 4 4 0 0 7 4 4 7 7 7 4 4 7 5 2 2 4 0 0 0 2 2 5 5 5 5 5 4 7 5 4 4 0 0 0 4 5 2 2 7 7 7 7 7 0 4 7 7 7 4 0 0 0 4 4 4 4 4 4 5 2 2 2 5 2 7 2 7 2 2 2 5 2 2 2 2 2 2 [p51]92681 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 19 0 5 13 5 5 19 1 5 19 13 5 0 5 13 5 2 1 0 0 0 19 19 0 1 19 19 1 2 2 19 19 19 5 13 13 19 19 0 13 13 13 2 5 2 2 5 19 19 2 0 19 0 0 13 13 13 13 13 2 1 5 19 1 0 19 1 5 19 19 0 19 0 19 19 19 19 19 19 5 5 13 2 2 13 2 13 1 13 13 5 5 2 13 13 13 5 13 [p52]123321 1 0 1 1 1 1 0 1 1 4 6 6 4 4 4 3 4 3 4 3 4 3 4 3 4 3 8 3 8 8 4 3 8 8 5 9 5 9 9 5 9 9 5 6 6 6 6 6 1 6 6 6 6 4 4 4 8 8 1 5 3 4 6 4 5 4 3 3 4 6 9 5 5 0 5 5 6 0 4 6 6 4 3 3 1 3 4 4 9 1 3 8 5 5 4 3 4 9 3 5 9 9 5 5 6 3 4 3 6 [p53]130690 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3 3 3 9 9 15 15 15 3 3 9 3 5 16 16 16 16 16 16 16 16 16 5 16 7 15 3 9 4 4 7 15 16 9 4 4 3 7 16 15 15 15 3 4 9 16 7 5 16 15 7 3 3 15 3 7 5 15 16 7 3 15 15 3 3 7 15 4 15 15 9 15 15 15 7 7 4 16 [p54]104411 0 1 1 1 1 1 0 1 0 2 2 2 2 2 4 2 2 2 2 4 2 2 2 2 4 2 2 2 3 3 2 2 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 6 6 8 8 6 8 3 8 8 8 8 8 3 6 6 6 6 6 6 6 6 6 5 5 6 5 5 5 6 6 4 0 6 0 0 2 0 0 4 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2 2 [p55]118320 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 17 17 16 17 16 17 16 16 18 16 18 17 17 18 17 18 18 18 18 16 16 16 14 14 16 14 16 16 14 16 14 7 16 16 14 7 7 16 7 7 7 18 14 14 7 7 7 7 16 7 14 7 7 7 7 7 7 7 18 7 7 7 18 14 18 7 7 7 14 13 13 13 13 13 17 13 13 13 13 13 13 13 13 17 18 13 18 17 18 18 18 18 18 18 18 17 18 18 18 18 [p56]252631 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 18 19 21 27 21 19 15 27 22 0 29 6 13 13 19 18 3 20 22 0 18 21 5 24 10 18 27 26 29 21 6 26 26 21 27 6 20 8 27 15 18 9 6 26 8 19 13 21 6 20 24 24 21 15 8 19 25 9 18 25 29 24 7 8 13 25 5 10 0 25 18 25 19 9 5 13 20 5 8 24 10 0 9 7 29 13 6 0 27 7 27 19 25 25 0 3 27 19 0 19 19 15 25 18 29 24 29 24 22 3 19 29 18 6 25 8 27 7 0 8 26 18 0 19 26 15 21 6 26 10 27 24 7 20 5 9 3 3 0 10 6 22 6 25 25 5 24 15 27 7 27 0 10 0 8 25 5 15 3 13 13 27 10 21 5 24 5 29 3 21 5 20 6 10 26 5 24 10 29 10 5 21 24 19 25 8 6 10 0 21 21 21 6 29 7 6 7 15 20 6 [p57]299760 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 27 19 21 27 21 25 2 27 22 17 29 28 13 13 28 7 10 20 22 27 27 21 5 24 10 27 24 14 29 2 26 26 26 21 27 28 20 20 27 21 7 20 19 26 13 26 13 21 19 14 24 24 2 24 20 28 25 26 22 7 29 2 7 20 13 25 5 14 19 25 7 19 19 20 5 13 20 5 10 24 10 17 26 7 29 13 19 5 27 25 17 19 25 25 2 20 28 28 17 28 17 21 25 7 29 24 29 24 22 13 19 29 22 25 19 20 28 7 17 20 26 7 17 14 26 21 2 25 26 17 28 24 25 20 5 26 13 13 28 10 28 22 28 25 7 5 21 21 27 7 24 17 10 17 20 27 2 21 13 13 13 27 10 24 5 27 5 29 13 21 5 20 19 14 26 2 24 10 29 10 5 2 2 19 28 20 28 10 17 21 2 21 19 29 7 19 7 21 10 19 [p58]424070 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 18 19 21 22 21 6 15 18 22 17 4 17 8 3 19 18 3 20 22 17 18 21 2 2 20 18 22 19 4 2 19 19 26 21 18 6 20 8 21 15 18 8 6 4 8 26 3 21 19 14 2 22 15 15 8 19 18 8 22 7 4 2 7 8 3 11 5 14 19 7 18 6 6 8 20 5 20 5 8 22 20 17 26 7 4 3 6 5 22 7 17 19 7 11 2 3 11 6 17 17 17 15 11 7 4 17 4 22 22 3 19 4 22 6 11 8 11 7 17 20 26 11 14 19 26 21 2 11 26 17 11 21 7 20 5 8 3 3 11 14 11 18 6 11 11 5 21 15 18 11 22 17 5 17 8 11 2 15 3 3 3 17 14 21 2 18 5 4 3 21 5 8 19 14 26 2 2 20 4 20 2 21 5 19 6 8 6 5 2 21 2 21 6 4 7 4 7 15 20 19 [p59]326551 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 18 6 21 27 2 6 2 27 18 27 4 28 23 3 28 18 3 20 27 0 18 21 23 24 20 18 27 28 4 2 6 26 4 21 27 6 8 8 24 21 18 9 6 4 8 26 3 21 6 20 24 24 24 21 8 6 11 9 18 25 4 24 18 8 3 11 0 28 6 11 18 11 6 9 0 23 20 20 8 24 23 0 9 25 26 20 6 23 27 25 28 4 25 25 2 3 11 6 0 28 0 21 25 18 4 0 4 24 27 3 26 4 27 6 11 8 28 25 0 20 26 11 28 4 26 21 21 11 26 0 28 24 25 8 23 9 3 3 28 20 25 27 11 11 25 2 24 21 18 25 24 0 20 28 8 28 2 21 3 3 3 27 20 2 23 27 2 4 3 21 23 20 28 8 26 2 0 23 4 8 23 2 2 6 11 8 28 23 0 21 2 21 6 4 25 11 25 21 23 6 [p60]228480 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 18 6 21 27 2 12 21 27 22 17 4 17 13 13 6 18 3 13 22 27 18 16 23 27 23 18 27 17 29 2 6 4 4 16 27 6 8 8 16 16 18 8 6 4 8 4 13 21 6 17 27 16 2 16 8 6 11 8 18 11 29 2 18 8 13 11 23 17 6 12 18 12 6 8 23 23 8 23 8 16 23 17 8 11 29 13 6 2 27 18 17 6 11 11 2 3 11 6 17 17 17 21 12 18 4 2 4 27 22 3 6 4 27 12 12 8 11 11 17 8 8 11 17 6 4 16 2 11 4 17 11 21 11 8 23 8 3 3 17 17 12 22 11 11 11 2 16 21 27 11 27 17 23 17 8 11 2 16 3 13 13 27 23 2 23 27 23 4 3 21 23 8 17 17 4 2 27 23 29 23 2 21 2 6 12 8 11 23 17 21 2 21 6 4 18 12 18 21 23 6 [p61]301551 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 7 6 2 27 0 25 0 27 27 17 4 17 13 13 6 7 13 10 0 0 27 2 23 0 10 27 0 17 4 2 6 4 4 2 27 6 10 13 27 0 7 10 6 4 10 4 13 2 6 10 0 27 0 27 13 25 25 10 7 25 4 17 7 10 13 25 23 17 6 25 7 25 6 13 23 23 10 23 10 27 10 0 4 25 4 13 6 23 27 7 17 6 25 7 0 23 27 17 0 17 17 2 25 7 4 0 4 2 27 13 6 4 27 6 6 13 17 7 17 13 10 25 17 4 4 2 0 6 4 17 27 2 25 10 23 13 13 13 17 10 25 27 6 25 25 2 2 2 27 25 27 17 23 0 13 25 2 2 13 13 13 27 23 2 23 27 23 4 13 2 23 10 17 10 4 0 0 23 6 10 2 2 2 6 6 13 6 23 0 2 2 2 6 4 7 25 7 2 10 6 [p62]377190 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 18 19 2 22 2 12 15 11 22 18 26 19 3 3 19 18 3 9 22 18 18 15 23 2 23 18 22 19 26 2 19 26 26 15 18 12 9 9 22 15 18 9 12 26 9 19 3 15 19 19 2 22 15 15 9 12 18 9 18 11 26 22 18 9 3 11 2 19 19 12 18 12 19 9 3 23 23 23 9 22 23 2 9 11 26 23 19 23 22 11 11 19 11 11 15 3 11 12 2 11 11 15 12 18 26 22 26 22 22 3 19 26 18 12 12 9 11 11 19 9 26 11 19 26 26 15 2 12 26 23 11 2 11 23 3 9 3 3 11 23 12 22 11 11 12 2 22 15 22 12 22 23 23 2 3 11 2 15 3 3 3 18 23 15 23 18 2 26 3 15 3 9 19 19 26 2 2 23 26 23 2 15 2 19 12 9 11 23 11 2 2 2 12 19 18 12 18 15 3 19 [p63]308240 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 18 28 16 27 5 12 5 27 18 28 4 28 1 1 28 18 1 20 27 27 18 16 5 27 20 18 27 28 4 5 4 26 4 16 27 12 20 26 16 16 27 20 12 4 20 26 20 16 28 20 27 16 16 16 26 12 27 26 18 18 4 17 18 20 1 28 5 17 28 18 18 12 4 20 5 5 17 5 26 16 20 17 26 12 4 20 4 5 27 18 28 4 18 12 5 1 28 28 17 28 28 16 12 18 4 17 4 27 27 1 26 4 18 12 12 20 28 18 17 26 26 18 17 4 26 16 16 12 26 17 28 16 28 20 1 26 1 1 28 17 12 27 12 12 12 17 27 5 27 12 27 17 1 17 20 28 5 16 20 1 1 27 20 16 5 27 5 4 1 16 1 20 28 20 26 5 17 20 4 20 5 16 16 28 12 20 28 5 17 16 5 16 12 4 18 12 18 5 17 28 [p64]255970 0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 24 6 21 24 21 12 15 28 21 24 4 28 23 3 28 28 3 8 24 24 28 21 5 24 23 28 24 28 4 21 6 4 4 21 28 6 8 8 24 15 28 9 6 4 8 4 3 21 6 9 24 24 24 21 8 6 12 9 24 12 4 24 12 8 3 12 5 28 28 6 28 12 6 9 23 23 8 23 8 24 23 5 9 12 4 23 6 5 24 12 28 6 12 12 5 3 28 6 5 28 28 15 12 12 4 24 4 24 21 3 6 4 28 12 12 8 28 12 23 8 9 12 28 6 9 21 21 12 4 28 28 24 12 8 23 9 3 3 28 23 12 24 12 12 12 5 24 15 21 12 24 23 23 24 8 28 5 15 3 3 3 28 23 21 5 24 5 4 3 21 5 8 28 23 4 21 24 23 4 23 5 21 21 6 12 8 12 23 24 21 21 21 6 4 28 6 12 15 23 6 [p65]334591 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 7 19 21 21 21 6 21 19 7 0 26 19 14 5 19 7 5 14 21 0 7 21 5 0 0 7 21 19 26 5 19 19 26 21 0 6 14 14 21 0 7 26 6 26 26 19 14 21 19 19 0 21 0 21 14 6 7 26 7 7 26 21 7 14 14 6 5 14 19 7 7 6 19 26 14 5 14 5 14 21 5 0 26 7 26 14 6 5 0 7 0 6 7 6 5 5 6 6 0 19 19 21 7 7 26 0 26 21 0 5 19 26 0 6 6 26 19 6 14 14 26 7 0 19 26 21 0 6 26 0 6 21 7 14 5 26 5 5 19 14 6 21 6 7 7 5 21 21 7 7 14 19 0 14 14 6 5 5 14 5 5 21 19 0 5 0 5 26 5 21 5 26 19 14 26 5 0 14 26 14 5 21 21 19 6 26 6 5 0 0 21 21 6 6 7 6 7 21 14 19 [p66]404940 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 22 6 21 22 21 6 21 6 22 21 29 17 20 8 6 12 8 20 22 22 12 21 21 21 17 22 22 6 29 21 6 29 29 21 17 12 20 8 29 21 12 8 6 29 8 29 8 21 17 17 21 22 22 21 8 6 12 8 22 12 29 17 12 8 20 12 17 17 17 12 22 6 6 8 17 20 8 17 8 22 20 17 8 6 29 20 6 22 22 22 6 6 12 12 17 8 12 6 17 17 17 21 12 22 29 17 29 22 22 8 8 29 22 12 6 8 6 12 17 8 8 12 17 29 8 21 20 12 6 17 17 21 12 20 20 20 20 20 12 20 12 22 12 12 6 17 21 22 22 12 20 20 20 17 8 12 21 21 8 8 20 12 8 20 17 21 21 29 8 21 8 20 17 17 29 21 6 20 29 8 21 21 21 6 12 20 12 20 17 22 21 21 6 29 6 6 22 21 8 6 [p67]324341 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 18 26 24 24 10 11 16 18 24 28 20 28 3 3 28 18 3 20 16 0 18 16 0 24 10 18 24 28 26 24 26 26 26 16 28 11 20 3 24 16 18 26 28 10 20 20 3 16 26 28 24 16 24 16 10 11 11 20 18 25 26 0 18 20 3 11 0 26 0 25 18 11 26 20 20 10 10 10 10 16 3 0 20 25 26 10 26 0 24 25 11 28 25 25 0 3 11 11 0 28 28 16 25 18 11 0 26 24 16 3 26 26 18 11 11 20 28 25 0 3 20 11 28 28 26 16 16 11 26 0 28 24 25 20 20 26 3 3 28 10 11 18 28 11 25 10 24 16 18 25 24 28 20 0 20 11 0 16 3 3 3 24 20 24 10 18 10 26 3 16 3 20 28 10 26 0 0 10 25 10 0 16 24 28 25 20 28 10 0 16 0 16 11 26 25 25 25 24 10 28 [p68]251021 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 7 19 16 22 5 28 15 28 22 28 19 28 20 1 28 7 1 20 22 0 7 16 5 0 20 7 22 19 4 5 19 19 4 16 28 19 20 8 16 16 7 9 19 9 8 4 3 16 19 20 0 16 0 16 8 19 25 9 22 25 4 5 7 8 3 25 5 19 0 25 7 25 4 9 5 5 20 5 8 16 20 0 9 7 4 20 19 5 22 7 28 19 25 25 0 3 28 19 0 28 0 15 7 7 4 0 4 16 22 3 19 4 22 19 25 8 7 7 0 8 9 25 0 9 9 16 5 25 19 0 28 16 25 20 1 9 3 3 28 20 28 22 28 7 25 5 16 15 22 25 0 28 5 0 8 25 5 15 3 3 1 0 20 16 5 0 5 4 3 15 1 20 19 20 4 0 0 20 4 20 5 15 0 19 25 8 25 5 28 16 5 16 19 4 7 19 7 15 20 19 [p69]325970 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 7 12 21 24 21 12 21 11 16 11 4 17 23 23 11 7 8 5 16 17 11 16 21 21 8 11 16 17 4 21 12 8 12 16 24 12 8 8 16 16 7 8 11 4 8 4 8 21 12 8 24 16 21 16 8 12 11 8 7 7 8 17 7 8 8 11 5 17 11 12 7 12 4 23 5 23 23 5 5 16 23 5 8 7 4 8 4 5 24 7 17 12 7 11 5 8 11 11 17 17 17 21 12 7 12 24 4 16 16 8 4 12 11 12 12 8 11 7 17 8 23 11 17 4 8 16 21 11 12 17 11 24 11 8 5 4 8 5 17 23 12 24 11 11 11 5 24 21 24 7 24 5 5 23 5 11 5 16 8 8 23 24 5 24 5 24 23 17 23 21 5 8 12 5 4 21 24 5 8 5 5 21 21 12 12 8 11 23 24 21 21 21 12 4 7 11 7 21 23 12 [p70]413670 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 18 28 21 18 21 25 21 28 18 17 29 28 5 13 28 18 13 13 16 17 7 16 5 21 13 18 18 17 29 21 28 9 29 16 18 28 9 9 16 16 18 9 25 29 9 29 13 21 28 9 21 16 21 16 9 17 7 9 18 7 9 5 7 9 9 25 13 28 28 7 7 25 25 9 5 13 9 5 9 16 13 17 9 25 29 5 29 5 18 7 7 28 7 25 5 5 28 25 17 28 9 21 7 18 25 21 29 16 16 13 28 29 18 25 25 13 18 7 28 9 9 18 5 29 9 16 21 28 29 17 28 21 7 9 5 13 13 5 17 17 25 16 17 25 25 5 16 21 7 25 21 17 5 17 13 18 5 16 13 13 13 18 5 21 5 7 5 9 5 21 5 13 28 5 9 21 21 13 29 9 5 21 16 28 25 9 7 13 17 21 21 21 29 29 7 7 7 21 17 9 [p71]355521 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 22 28 16 22 1 12 0 28 22 0 8 28 8 1 28 11 1 8 22 0 22 16 1 0 13 11 22 26 26 1 26 26 26 16 11 12 26 8 22 16 11 8 12 8 8 8 13 16 26 8 0 16 16 22 8 12 28 8 22 12 26 0 11 8 13 11 0 28 12 12 22 12 12 8 13 1 8 1 8 16 13 0 26 12 26 13 26 0 22 12 11 12 12 11 16 13 11 12 0 28 28 16 12 11 26 0 26 16 22 13 28 26 22 12 12 8 28 11 0 8 26 11 28 26 26 16 0 11 8 0 11 16 11 8 1 1 1 8 0 13 12 22 11 11 11 0 16 16 22 11 22 11 13 11 13 28 0 16 13 13 13 0 13 16 0 22 1 26 1 16 1 8 28 8 26 1 0 8 26 13 1 16 0 28 11 8 11 13 0 16 0 16 12 26 11 11 11 16 13 28

 

解法二

使用模拟退火算法:

模拟退火法是克服爬山法缺点的有效方法,所谓退火是冶金专家为了达到某些特种晶体结构重复将金属加热或冷却的过程,该过程的控制参数为温度T。模拟退火法的基本思想是,在系统朝着能量减少的趋势这样一个变化过程中,偶尔允许系统跳到能量较高的状态,以避开局部极小点,最终稳定到全局极小点。

算法步骤如下:

(1)随机生成一个合法的解P_k

(2)随机挑选一单元k,并给它一个随机的位移,求出系统因此而产生的能量变化\Delta E_K

(3)若\Delta E_K\leq0,该位移可采纳,而变化后的系统状态可作为下次变化的起点;若\Delta E_K>0,位移后的状态可采纳的概率为:

                                                                                          P_k=e^{-\Delta E_k/T}

式中T为温度,然后从(0,1)区间均匀分布的随机数中挑选一个数R,若R<P_k,则将变化后的状态作为下次的起点;否则,将变化前的状态作为下次的起点。

关于温度:

温度越高,系统越容易达到平衡状态,然而在平衡状态下处于能量较小状态的可能性也越小。温度越低,系统达到平衡状态的速度虽慢,但系统更容易达到能量较小的平衡状态。对于搜索问题中的爬山法,利用模拟退火法,不但可以使变化的随机选择大一些的步长,而且可以跨过局部极小点。通常的做法是:最初阶段倾向于取大步,后阶段倾向于取小步。

可以采用如下的方式设置温度:设置一个初始温度T,一个最终温度min_T, 一个降温系数f(如0.9)。每次迭代 T = T*f,使得温度逐渐降下来,当温度低于最终温度时,迭代停止。

算法的应用:

产生能量变化的方式: 与上文爬山法一致。

\Delta E_K即新解的开销减去旧解的开销。

初始时温度较高,P_k较大,容易接受差解,但随着温度的降低,接受差解将成为小概率事件,大部分时候都是朝着优解的方向搜索的,偶尔接受差解,使得能够跳出局部最小值。

代码:

int SA(data& m_data) {  int final_result = 100000;  int final_times;  int final_last_update;  for(int x = 0; x < 5; x++) {    int result = 0;    float T = 10000;        // 初温    float min_T = 0.00001;  // 末温    float factor = 0.9999;  // 降温系数    vector
facility_status(m_data.facility_num, 0); vector
assignment(m_data.customer_num, 0); vector
facility_used(m_data.facility_num, 0); vector
m_random; if(!init_solution(assignment, facility_used, m_data, m_random)) { x--; continue; } result = evaluation(assignment, m_data); // cout << "init cost: " << result << endl; float last_update = -1; int i = 1; while(T > min_T) { int customer; int facility; // 随机挑选一个顾客,并给他一个随机的位移,求出系统因此而产生的能量变化 while(true) { // 得到一个可执行的调整(不超过最大容量) customer = get_random(m_data.customer_num); facility = get_random(m_data.facility_num); // 不选取关闭的商店 // 第一个初始解开放所有的商店 if(facility_used[facility] == 0 && !can_open(facility, m_random) && x != 0) continue; if(m_data.facility_capacity[facility]-facility_used[facility] >= m_data.customer_demand[customer] && facility != assignment[customer]) // 要避开调度到同一个商店的情况(相当于没调动,而且会出bug) break; } int E = m_data.assignment_cost[facility][customer]-m_data.assignment_cost[assignment[customer]][customer]; if(facility_used[facility] == 0) { // 当前调整如果需要开启新的商店 E += m_data.facility_opening_cost[facility]; } if(facility_used[assignment[customer]] == m_data.customer_demand[customer]) { // 当前调整如果会关闭旧的商店 E -= m_data.facility_opening_cost[assignment[customer]]; } if(E <= 0) { // 如果是优的解,接受 facility_used[assignment[customer]] -= m_data.customer_demand[customer]; assignment[customer] = facility; facility_used[assignment[customer]] += m_data.customer_demand[customer]; result += E; last_update = i; // cout << i << " : " << result << endl; } else { // 如果是差的解,以一定概率接受 float R = get_random(10000)/(float)10000; float P = exp(-E/T); if(R < P) { facility_used[assignment[customer]] -= m_data.customer_demand[customer]; assignment[customer] = facility; facility_used[assignment[customer]] += m_data.customer_demand[customer]; result += E; last_update = i; } } T *= factor; // 降温 i++; } if(result < final_result) { final_result = result; final_times = i; final_last_update = last_update; m_data.assignment = assignment; m_data.facility_used = facility_used; } } cout << "SA final cost: " << final_result << " total times: " << final_times << " last update: " << final_last_update << " check: " << evaluation(m_data.assignment, m_data) << endl; return final_result; // cout << "check result..." << endl; // check(assignment, m_data);}

运行结果

Result  Time(s)p1  8958  0.542318p2  7977  0.574981p3  9521  0.456748p4  11335 0.434649p5  9037  0.222143p6  7781  0.216178p7  9602  0.231183p8  11377 0.233821p9  8576  0.332075p10 7648  0.358680p11 9226  0.336261p12 10826 0.324133p13 8798  1.668732p14 7435  1.281751p15 10185 1.042824p16 12255 1.464110p17 8719  1.065602p18 7519  1.008021p19 9319  1.221803p20 11606 0.977873p21 8567  0.679936p22 7332  0.649653p23 10187 0.642594p24 11057 0.796385p25 12995 2.124665p26 11353 2.373364p27 14023 1.998778p28 15730 1.702998p29 13257 1.971333p30 12171 1.774540p31 14723 1.401018p32 17377 2.267692p33 13366 2.080220p34 11325 1.964321p35 13981 2.501082p36 15039 2.642908p37 12793 1.685629p38 11280 1.486809p39 13540 1.251547p40 14984 1.465966p41 6628  0.485934p42 6976  1.455323p43 6098  2.149522p44 7160  0.493512p45 6910  6.036019p46 7409  2.324937p47 6309  0.581589p48 6459  1.213418p49 5625  1.343800p50 9343  0.356038p51 8180  0.739496p52 9403  0.462276p53 10375 1.207710p54 9207  0.483871p55 9195  1.347166p56 23371 0.605247p57 29942 0.714306p58 42494 0.614179p59 32929 0.643699p60 22875 1.437787p61 29571 1.117360p62 41236 1.174382p63 32934 1.109773p64 22970 1.780464p65 29930 1.659472p66 36962 1.782220p67 32720 1.151957p68 23150 1.530568p69 30626 1.938921p70 39355 1.266474p71 33590 1.367931

 

具体信息:

(依次为:总开销,商店是否开放,各个顾客的安排)

[p1]89581 1 1 1 1 1 0 0 1 1 8 2 1 5 3 8 2 4 4 1 9 0 3 2 8 3 4 0 9 4 3 4 9 4 2 5 1 5 0 5 2 5 0 3 9 4 4 3 0 4 1 8 1 5 4 0 2 0 4 0 [p2]79771 1 1 1 1 1 1 1 1 0 8 2 1 6 3 8 2 4 4 1 4 8 3 2 0 3 4 0 6 7 3 4 6 4 2 5 1 5 0 5 2 6 0 3 4 4 4 3 0 4 1 8 1 5 7 0 2 0 4 0 [p3]95211 1 1 1 1 1 1 0 1 0 8 2 1 6 3 8 2 4 4 1 4 0 3 2 8 3 2 0 6 4 3 4 6 4 2 5 1 5 0 5 2 6 0 3 4 4 4 3 0 4 1 8 1 5 4 0 2 0 4 0 [p4]113351 0 1 1 1 1 1 0 1 1 2 8 5 6 3 8 2 4 4 5 9 8 3 2 8 3 4 0 9 4 3 4 6 4 2 5 3 5 0 5 2 6 0 3 9 4 4 3 0 4 5 8 3 5 4 0 2 0 4 0 [p5]90371 1 1 1 1 1 1 0 1 1 8 8 1 6 1 8 2 4 4 1 9 8 0 2 8 3 2 0 9 9 3 8 6 4 2 5 1 5 0 5 2 6 0 3 9 4 4 3 0 4 1 8 1 5 4 0 9 0 4 3 [p6]77811 1 1 1 1 0 1 1 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 2 0 9 7 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 4 3 0 4 1 8 1 6 7 0 9 3 4 0 [p7]96021 1 1 1 1 0 1 0 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 2 0 9 9 3 2 6 4 2 6 1 1 8 1 9 6 0 3 9 4 4 3 0 4 1 8 1 6 4 0 9 0 4 0 [p8]113771 1 1 1 1 0 1 1 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 4 0 9 7 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 4 3 0 4 1 8 1 6 7 0 2 3 7 0 [p9]85761 1 1 1 1 0 1 0 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 4 0 9 4 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 4 3 0 4 1 8 1 6 4 0 2 0 4 0 [p10]76481 1 1 1 1 0 1 1 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 4 0 9 7 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 4 3 0 4 1 8 1 6 7 0 4 0 4 0 [p11]92261 1 1 1 1 0 1 0 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 4 0 9 4 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 4 3 0 4 1 8 1 6 4 0 2 0 4 0 [p12]108261 1 1 1 1 0 1 0 1 1 8 8 1 6 3 8 2 4 4 1 9 8 3 2 8 3 4 0 9 4 3 8 6 4 2 6 1 1 0 1 2 6 0 3 9 4 4 3 0 4 1 8 1 6 4 0 2 0 4 0 [p13]87981 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 16 1 10 10 1 15 17 13 14 17 15 19 1 10 13 3 15 10 17 9 14 15 15 19 9 17 16 17 1 17 13 15 13 16 3 10 3 19 19 13 9 0 0 0 3 13 14 10 19 9 [p14]74350 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 1 16 12 10 10 1 12 17 13 12 17 15 19 1 6 13 3 15 10 17 9 12 15 15 19 6 17 16 17 1 17 13 15 13 16 3 10 3 19 19 13 6 16 15 16 3 13 12 10 19 9 [p15]101850 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 16 3 10 10 18 18 3 18 7 4 7 4 4 10 2 3 7 7 4 8 18 18 7 2 10 4 16 3 3 4 2 7 2 16 3 10 3 18 4 2 8 16 16 16 8 18 7 10 2 8 [p16]122551 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 14 7 7 19 19 17 2 14 17 7 19 19 9 2 14 2 7 19 9 14 7 7 19 9 17 0 17 17 17 2 7 2 0 17 14 8 19 19 2 8 7 0 0 8 2 14 9 19 9 [p17]87190 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 16 14 10 10 1 15 17 13 14 17 15 1 1 10 13 14 15 10 17 9 14 15 15 13 9 1 16 17 14 17 13 15 13 16 17 10 8 1 1 13 9 16 15 16 8 13 14 10 1 9 [p18]75191 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 10 10 1 15 17 13 7 17 15 19 1 10 13 3 15 10 17 9 15 15 15 19 9 17 0 17 1 17 13 7 13 0 3 10 3 19 19 13 9 0 15 0 3 13 7 10 19 9 [p19]93191 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 3 10 10 1 1 17 13 3 17 15 1 1 6 13 3 15 10 17 6 15 15 15 13 6 17 0 17 1 17 13 15 13 0 3 10 3 1 1 13 6 0 15 0 3 13 10 10 1 6 [p20]116060 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 16 1 10 10 1 18 17 18 14 17 15 19 1 10 18 11 15 10 17 11 14 15 15 19 10 17 16 17 1 17 18 15 18 16 1 10 11 19 19 18 14 16 15 16 11 15 14 14 19 11 [p21]85670 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 16 1 10 10 1 13 17 13 14 17 5 19 1 10 13 14 5 10 17 9 14 5 5 19 9 17 16 17 1 17 13 14 13 16 1 10 17 19 19 13 10 16 5 16 9 5 14 10 19 9 [p22]73321 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 10 10 1 15 17 13 3 17 15 19 1 6 13 3 15 10 17 6 15 15 15 19 6 17 0 17 1 17 13 15 13 0 3 10 3 19 19 13 6 0 0 0 3 13 15 10 19 6 [p23]101870 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 16 14 10 10 18 18 17 18 14 17 7 2 18 10 2 11 5 10 17 11 14 5 7 2 10 17 16 17 17 17 2 7 2 16 11 10 11 18 2 2 10 16 5 16 11 5 14 10 2 11 [p24]110571 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 3 10 10 19 18 17 18 14 17 15 19 19 10 18 3 15 10 17 9 14 15 15 19 9 17 0 17 3 17 18 15 18 0 3 10 3 19 19 18 10 0 0 0 3 15 14 10 19 9 [p25]129951 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 20 11 20 14 20 5 2 24 14 17 24 8 8 20 7 14 14 17 5 11 2 0 5 7 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 7 20 11 8 29 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 24 24 20 20 11 17 24 8 24 20 14 24 20 7 20 17 2 17 2 7 20 5 2 24 17 11 7 5 2 14 25 20 8 17 17 25 2 29 7 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 20 8 0 5 24 0 29 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p26]113531 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 13 14 20 5 2 24 14 17 24 8 8 20 0 14 14 17 5 11 2 0 5 2 5 8 2 24 5 24 5 25 13 25 20 20 24 24 0 14 0 14 24 8 24 14 0 13 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 5 24 20 20 11 17 24 8 24 20 14 24 20 0 13 17 17 17 17 0 20 5 2 24 0 11 0 5 2 14 25 20 8 17 14 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 24 0 25 0 11 24 5 8 14 0 5 20 17 0 8 20 14 8 25 25 5 2 5 [p27]140231 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 13 14 20 5 2 24 14 17 24 8 8 20 2 14 14 17 5 11 2 0 5 2 5 8 2 24 5 24 5 25 13 25 20 20 24 24 0 14 0 14 24 8 24 14 7 13 11 8 5 14 14 5 20 20 17 11 11 14 0 5 20 11 11 11 24 0 24 24 20 20 11 17 24 8 24 20 14 24 20 7 20 17 2 17 17 7 20 5 2 24 7 11 7 5 14 14 25 20 8 17 17 25 2 25 7 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 24 0 25 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p28]157301 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 14 20 5 2 24 14 17 24 8 8 20 2 14 14 17 5 11 14 0 5 17 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 0 20 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 5 24 20 20 11 17 24 8 24 20 14 24 20 7 20 17 17 17 2 7 20 5 2 24 17 11 7 5 2 14 25 20 8 17 14 25 2 25 7 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 20 8 0 5 24 0 25 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p29]132571 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 2 20 5 2 9 14 17 9 8 8 20 2 14 14 17 5 11 2 0 9 17 5 8 2 24 24 9 5 25 6 25 20 20 24 24 0 14 0 14 24 8 24 14 0 20 11 8 5 14 14 5 6 20 17 11 11 14 0 5 20 11 11 11 9 0 9 9 8 6 11 17 24 8 9 20 2 24 20 0 20 17 2 17 17 0 20 5 2 24 17 11 17 5 2 2 25 8 8 17 17 25 2 25 0 11 14 17 14 14 2 11 11 25 24 24 24 24 5 8 25 20 8 0 5 9 0 25 0 11 24 5 8 14 17 5 20 17 0 8 8 14 8 25 25 5 2 5 [p30]121711 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 20 11 13 2 20 5 2 9 14 17 9 8 8 20 17 14 14 17 5 11 2 0 5 17 9 8 2 24 5 9 5 25 13 25 20 20 24 24 0 14 0 14 24 28 24 14 7 13 11 8 5 14 14 5 13 20 17 11 11 14 0 5 20 11 11 11 9 0 9 9 20 20 11 17 24 8 9 20 14 24 20 7 13 17 17 17 17 7 20 5 2 24 17 11 17 9 2 2 25 13 8 17 17 25 2 25 7 11 28 28 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 9 0 25 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p31]147231 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 20 11 13 2 20 5 2 24 14 17 29 8 8 20 17 14 14 17 25 11 2 0 5 17 29 8 2 24 5 29 29 25 13 25 20 20 5 24 0 14 0 8 24 8 24 14 0 13 11 8 29 14 14 5 13 20 17 11 11 14 0 5 20 11 11 11 5 0 29 24 20 20 11 17 24 8 24 20 14 24 20 7 13 17 2 17 17 7 20 29 2 5 17 11 17 24 2 2 25 13 8 17 17 25 2 29 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 5 0 25 0 11 24 29 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p32]173771 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 20 11 13 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 25 11 2 0 5 17 25 8 2 24 24 24 5 25 13 25 20 20 24 5 0 14 0 14 24 8 24 14 0 13 27 8 25 2 14 5 13 20 17 27 0 14 0 5 20 11 11 11 25 0 5 25 20 20 11 17 24 8 24 20 14 25 20 7 13 17 2 17 17 7 20 25 2 24 17 11 17 5 2 2 25 13 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 27 24 24 5 5 5 8 25 13 8 0 5 24 0 25 0 11 24 27 8 14 7 5 20 17 0 8 20 14 8 27 25 5 2 5 [p33]133661 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 2 20 5 2 9 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 13 25 20 20 24 24 0 14 0 14 24 8 24 14 0 13 11 8 5 14 14 5 13 20 17 11 11 14 0 5 20 11 11 11 9 0 5 24 20 20 11 17 24 8 24 20 14 24 20 0 20 17 17 17 17 0 20 5 2 24 17 11 17 24 2 2 25 20 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 24 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p34]113251 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 13 2 20 5 2 5 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 0 13 11 8 5 14 14 5 13 20 17 11 0 14 0 5 20 11 11 11 24 0 24 5 20 20 11 17 24 8 24 20 14 24 20 0 13 17 17 17 17 0 20 5 2 24 17 11 17 5 2 2 25 13 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 24 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p35]139811 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 2 20 5 2 24 14 17 5 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 0 13 11 8 5 14 14 5 13 20 17 11 11 14 0 5 20 11 11 11 24 0 24 5 20 20 11 17 24 8 24 20 14 24 20 7 13 17 17 17 17 7 20 5 2 24 17 11 17 5 2 2 25 13 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 24 0 25 0 11 24 5 8 14 7 5 20 17 0 8 20 14 8 25 25 5 2 5 [p36]150391 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 8 25 20 20 24 24 0 14 0 14 24 8 24 14 0 20 11 8 5 14 14 5 8 20 17 11 11 14 0 5 20 11 11 11 24 0 5 24 20 20 11 17 24 8 24 20 14 24 20 0 20 17 17 17 17 0 20 5 2 24 17 11 17 5 2 2 25 20 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 20 8 0 5 5 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p37]127931 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 13 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 13 25 20 20 24 24 0 14 0 14 24 8 24 14 0 13 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 5 24 20 20 11 17 24 8 24 20 14 24 20 0 13 17 17 17 17 0 20 5 2 24 17 11 17 5 2 2 25 20 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 13 8 0 5 24 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p38]112801 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 0 20 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 5 24 20 20 11 17 24 8 24 20 14 24 20 7 20 17 17 17 17 7 20 5 2 24 17 11 17 5 2 2 25 20 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 20 8 0 5 24 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p39]135401 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 20 11 13 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 11 20 11 20 20 24 24 0 14 0 14 24 8 24 14 0 13 27 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 5 24 20 20 11 17 24 8 24 20 14 24 20 0 13 17 17 17 17 0 20 5 2 24 17 11 17 24 2 2 27 20 8 17 17 11 2 5 17 11 14 8 14 14 2 11 11 27 24 24 24 24 5 8 11 13 8 0 5 24 0 27 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 27 11 5 2 5 [p40]149841 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 20 11 20 2 20 5 2 24 14 17 24 8 8 20 17 14 14 17 5 11 2 0 5 17 5 8 2 24 5 24 5 25 20 25 20 20 24 24 0 14 0 14 24 8 24 14 0 20 11 8 5 14 14 5 20 20 17 11 0 14 0 5 20 11 11 11 24 0 24 24 20 20 11 17 24 8 24 20 14 24 20 0 20 17 17 17 17 0 20 5 2 24 17 11 17 24 2 2 25 20 8 17 17 25 2 25 17 11 14 8 14 14 2 11 11 25 24 24 24 24 5 8 25 20 8 0 5 24 0 25 0 11 24 5 8 14 17 5 20 17 0 8 20 14 8 25 25 5 2 5 [p41]66281 0 1 1 0 1 1 0 0 1 5 6 0 6 2 9 3 3 5 3 5 6 2 6 2 2 5 3 0 6 6 6 6 6 6 5 5 0 5 5 5 0 0 0 3 9 2 6 6 9 2 3 3 3 3 5 0 5 6 6 6 6 6 6 9 9 2 3 3 3 0 0 6 5 0 6 6 6 5 5 0 0 5 0 3 9 2 2 2 5 5 2 2 2 9 9 9 9 9 2 [p42]69760 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 17 14 9 9 7 18 17 17 17 17 9 18 18 14 18 18 18 17 14 14 14 9 9 17 18 18 9 17 17 17 7 18 18 14 14 18 14 7 7 7 7 17 17 18 9 14 18 18 18 18 17 17 7 17 17 9 17 18 14 14 18 17 9 17 9 17 7 18 18 18 18 18 18 18 18 18 18 18 18 18 [p43]60980 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 29 7 11 29 7 7 7 7 29 29 29 29 7 7 11 11 11 11 7 7 7 7 7 11 7 7 29 11 29 29 29 29 29 7 7 7 7 7 11 11 29 7 29 29 29 7 7 7 7 11 11 7 7 11 11 11 7 11 7 29 29 29 7 29 29 29 29 29 29 29 [p44]71601 1 1 1 1 1 1 1 1 1 4 4 4 4 4 4 4 4 6 6 0 0 0 0 0 0 1 1 1 7 1 7 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 0 1 1 2 8 7 5 3 7 7 6 5 5 8 8 7 7 9 5 5 5 9 3 0 6 6 8 1 0 4 9 9 7 7 8 6 6 5 8 7 9 9 9 9 9 6 5 7 5 [p45]69101 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 18 1 1 1 1 1 18 2 2 2 2 2 2 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 0 0 2 2 11 11 18 17 18 13 18 5 13 13 11 18 18 18 5 1 2 2 2 2 0 17 13 13 11 11 13 1 18 2 13 17 17 17 17 17 13 13 [p46]74091 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 10 0 10 10 10 0 10 1 1 18 1 1 1 1 19 2 2 2 2 2 2 27 27 27 27 27 27 8 8 27 8 8 8 8 10 2 2 14 14 1 0 19 19 0 14 14 18 27 26 18 0 26 27 0 2 26 27 18 18 14 19 19 0 18 26 27 14 27 19 18 [p47]63091 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 1 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 6 7 6 0 7 7 7 7 7 7 8 8 6 8 8 8 8 8 9 2 9 9 9 9 9 0 [p48]64591 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 2 3 2 2 3 3 5 5 5 5 5 5 5 5 5 9 5 5 9 5 5 5 8 8 8 8 8 8 8 9 9 9 9 11 11 11 11 11 11 13 13 13 13 13 13 13 14 14 13 14 13 0 14 14 14 14 17 17 17 17 17 17 17 17 17 17 17 0 17 0 0 [p49]56250 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 6 6 6 6 6 6 6 6 6 9 9 9 9 9 13 13 14 13 13 13 14 13 14 13 13 13 13 13 13 20 20 20 20 20 20 21 20 21 20 2 21 21 21 21 26 26 26 26 26 26 26 26 28 28 28 28 28 [p50]93431 1 1 1 1 1 1 1 0 1 3 6 3 0 2 9 5 5 3 7 7 4 6 9 9 2 9 2 5 3 6 6 0 4 0 6 7 4 4 7 7 7 3 3 3 5 9 9 0 6 0 9 9 9 5 5 5 5 5 3 3 5 6 0 0 0 9 6 1 2 9 7 7 7 3 3 0 4 7 7 3 0 6 6 0 4 4 3 3 4 3 5 2 2 2 2 1 7 2 7 9 1 2 2 2 1 1 9 1 1 [p51]81801 1 0 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 15 0 19 10 12 13 5 5 15 1 5 14 18 13 13 13 12 5 5 15 0 0 10 14 14 14 1 19 19 15 1 1 19 19 15 5 13 13 10 0 0 13 13 13 12 5 5 5 5 15 15 5 0 14 14 10 13 0 18 12 13 5 1 5 15 15 10 19 1 1 15 0 0 0 10 19 19 19 19 19 19 5 12 12 13 13 18 5 12 1 13 13 13 18 18 18 18 18 13 13 [p52]94030 1 0 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 3 4 4 4 3 4 4 4 4 8 3 8 8 8 3 8 3 9 9 9 9 9 9 9 9 5 6 6 6 6 6 6 6 6 6 6 7 7 4 8 8 5 5 3 4 6 7 5 3 3 3 4 6 5 5 5 3 3 5 6 4 7 6 6 4 3 3 5 3 4 7 1 6 3 3 5 5 3 3 7 5 3 5 5 1 1 5 1 3 4 3 7 [p53]103750 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 5 5 5 5 5 5 5 5 19 19 19 7 7 7 7 7 7 12 13 12 12 13 13 12 12 9 9 9 15 9 15 9 15 9 18 18 18 18 18 18 18 18 18 18 5 5 7 12 12 15 15 3 7 18 5 15 3 3 1 6 18 2 15 13 3 13 2 18 6 5 18 18 6 3 3 15 3 6 6 2 18 19 13 15 15 3 1 6 15 3 15 2 9 2 15 18 1 6 1 5 [p54]92071 0 1 1 1 1 1 1 0 1 7 7 7 7 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 3 3 2 3 3 3 3 3 3 3 3 3 3 3 6 6 3 6 6 6 3 6 6 3 3 3 3 6 6 6 6 6 6 6 6 6 5 5 6 5 5 5 6 5 0 0 0 0 5 7 0 0 0 0 0 0 4 0 4 4 4 4 4 4 4 4 9 4 9 9 9 2 9 9 9 [p55]91951 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 17 18 17 18 18 18 17 2 8 8 8 8 2 8 8 2 2 2 8 6 12 12 2 6 12 12 12 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 0 7 0 0 0 0 0 0 0 0 7 7 7 7 7 7 7 7 11 11 11 11 11 11 11 7 11 9 9 11 9 11 17 13 9 13 9 9 13 15 15 15 15 15 15 15 15 15 15 18 18 18 18 17 18 18 18 18 [p56]233711 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 18 19 21 27 2 12 15 27 22 28 4 28 13 13 28 18 3 20 22 0 18 16 5 24 10 18 27 19 29 2 19 19 4 16 27 6 20 8 24 16 18 8 6 4 8 19 13 21 19 14 24 16 24 16 8 6 11 8 18 25 29 0 7 8 13 11 5 14 28 25 18 12 19 8 23 23 20 23 8 16 10 0 26 25 29 13 6 5 27 7 28 6 25 25 2 3 11 6 0 28 28 15 25 18 4 0 4 24 22 3 19 4 27 12 12 8 28 7 17 8 26 11 17 19 26 16 2 11 26 17 28 24 25 20 23 8 3 3 28 10 12 22 11 11 25 5 24 15 27 25 24 17 23 0 8 11 2 15 3 13 13 27 10 24 5 27 5 4 3 21 5 20 19 14 26 2 0 10 29 10 5 21 2 19 12 8 28 23 0 21 2 21 6 4 7 12 7 15 10 19 [p57]299420 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 18 19 21 27 21 28 21 27 22 27 4 28 13 13 28 18 13 20 22 27 18 16 10 24 10 18 22 28 29 21 19 19 4 16 27 19 20 8 24 16 18 8 12 4 8 4 13 16 19 20 24 16 24 16 8 19 18 8 18 7 29 27 7 8 13 12 23 19 28 12 18 12 4 8 23 23 20 23 8 16 23 23 8 7 29 13 19 21 27 7 27 19 7 7 23 8 28 12 10 28 19 21 7 18 4 27 4 16 22 13 19 29 27 28 12 8 27 7 10 8 20 18 10 19 4 16 16 18 4 28 28 24 12 20 23 8 13 13 28 10 12 22 28 12 7 23 16 16 22 7 24 20 23 28 8 18 21 16 13 13 13 27 10 24 23 24 23 4 13 21 13 20 19 10 4 24 24 10 29 10 23 21 21 28 12 8 28 23 27 21 21 21 19 4 7 12 7 21 10 19 [p58]424941 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 18 28 21 22 2 12 21 0 22 17 29 28 20 23 28 18 5 20 22 0 22 16 5 24 23 18 24 28 29 2 6 14 29 16 24 6 20 8 24 16 18 8 6 29 8 17 8 21 14 14 24 16 2 16 8 6 18 8 22 18 29 0 18 8 23 12 5 14 17 12 18 6 6 8 23 23 20 5 20 16 23 0 8 12 29 20 6 5 24 18 28 6 18 12 2 8 28 6 0 17 17 21 6 18 29 0 29 24 22 8 14 29 22 6 12 8 28 18 17 8 20 12 17 14 14 16 2 28 14 17 28 24 12 20 5 8 23 20 28 14 28 22 12 12 12 5 24 21 22 12 24 17 23 0 8 28 2 16 8 20 23 0 23 24 5 0 5 29 23 21 5 20 28 14 29 2 0 14 29 20 5 21 2 6 6 8 12 23 0 21 2 21 6 29 22 28 18 21 17 14 [p59]329291 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 18 19 21 27 2 12 2 27 18 28 4 28 13 13 28 18 13 10 27 0 18 21 23 24 10 18 27 19 4 2 19 19 4 21 27 6 8 8 24 21 18 9 6 4 8 19 13 21 19 14 24 24 24 21 8 6 11 9 18 7 4 0 7 8 13 11 23 14 28 25 18 12 19 9 23 23 10 23 8 24 10 0 9 25 4 13 6 2 27 7 28 6 25 25 2 13 11 6 0 28 28 21 25 18 4 0 4 24 27 13 19 4 27 12 12 8 28 7 17 8 26 11 17 19 26 21 2 11 26 17 28 24 25 10 23 9 13 13 28 10 12 27 11 11 25 2 24 21 27 25 24 17 23 0 8 11 2 21 13 13 13 27 10 24 23 27 23 4 13 21 23 8 19 14 26 2 0 10 4 10 2 21 2 19 12 8 28 23 0 21 2 21 6 4 7 12 7 21 10 19 [p60]228751 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 7 19 21 27 2 12 21 27 22 28 4 28 13 1 28 7 1 20 22 0 27 16 5 24 10 27 27 19 4 2 19 19 4 16 27 6 20 8 24 16 7 9 6 4 8 19 13 21 19 14 24 16 24 16 8 6 11 9 22 25 4 0 7 8 13 11 5 14 28 25 7 12 19 9 5 13 20 5 8 16 10 0 9 25 4 13 6 5 27 7 28 6 25 25 2 13 11 6 0 28 28 21 25 7 4 0 4 24 22 13 19 4 27 12 12 8 28 7 17 8 26 11 17 19 26 16 2 11 26 17 28 24 25 20 1 9 1 13 28 10 12 22 11 11 25 5 24 21 27 25 24 17 10 0 8 11 2 16 13 13 13 27 10 24 5 27 5 4 1 21 1 20 19 14 26 2 0 10 4 10 5 21 2 19 12 8 28 10 0 21 2 21 6 4 7 12 7 21 10 19 [p61]295711 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 18 6 2 22 0 6 2 0 22 14 4 14 8 13 6 18 3 8 22 0 18 22 2 0 13 18 22 14 4 2 6 4 4 22 0 6 8 8 22 2 18 8 6 4 8 4 13 2 14 14 2 22 22 2 8 6 11 8 18 18 4 0 18 8 13 11 13 14 6 11 18 11 6 8 13 13 8 13 8 22 13 0 8 18 4 13 4 3 22 18 11 6 11 11 0 3 6 6 0 11 14 0 11 18 4 0 4 22 22 3 14 4 18 6 11 8 11 18 14 8 14 11 0 6 4 22 2 18 4 0 11 2 11 8 13 8 3 3 6 14 11 22 6 11 11 2 22 2 22 11 0 14 13 0 8 6 2 2 3 13 13 18 13 0 13 22 13 4 3 2 13 8 14 14 4 22 0 14 4 14 2 2 2 6 6 8 11 13 0 2 2 2 6 4 18 11 18 2 14 14 [p62]412361 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 18 26 0 27 10 4 0 27 22 27 4 0 13 13 12 18 3 20 22 27 18 22 10 27 10 18 27 26 4 13 4 4 4 22 27 12 20 20 22 22 22 26 4 26 13 26 13 0 26 20 27 22 27 22 20 4 18 26 18 18 4 0 18 20 13 12 10 10 4 12 18 12 26 20 10 13 20 10 20 22 10 0 26 12 4 13 4 13 27 18 20 4 18 12 10 3 27 12 0 27 26 0 12 18 4 0 4 22 22 3 26 4 18 12 27 20 0 18 10 20 26 18 0 26 26 22 10 12 26 0 27 0 12 20 13 20 3 3 27 10 12 22 12 12 18 0 22 22 27 18 27 0 10 0 13 12 0 22 3 13 13 27 10 27 10 27 13 26 3 0 13 20 26 20 26 13 27 20 4 20 10 0 22 12 12 20 4 13 0 22 0 22 4 4 18 12 18 0 10 26 [p63]329341 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 18 19 2 27 2 12 2 27 18 28 29 28 13 13 28 18 13 20 27 0 18 16 5 24 10 18 27 19 29 2 19 19 26 16 27 6 20 8 24 16 18 9 6 26 8 19 13 2 19 20 24 16 24 16 8 6 11 9 18 25 29 0 25 8 13 11 5 17 28 25 18 12 19 9 23 23 20 23 8 16 10 0 9 25 29 13 6 5 27 25 28 6 25 25 2 13 11 6 0 28 28 16 25 18 29 0 29 24 27 13 19 29 27 12 12 8 28 25 17 8 26 11 17 19 26 16 2 11 26 17 28 24 25 20 23 9 13 13 28 10 12 27 11 11 25 5 24 16 27 25 24 17 23 0 8 11 2 16 13 13 13 27 10 24 5 27 5 29 13 2 5 20 19 10 26 2 0 10 29 10 5 16 2 19 12 8 28 23 0 2 2 2 6 29 25 12 25 2 10 19 [p64]229701 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 18 19 21 27 2 12 15 27 22 28 4 28 13 13 28 18 3 20 22 0 18 21 23 24 10 18 27 19 29 2 19 19 4 21 27 6 20 8 24 15 18 8 6 4 8 19 13 21 19 14 24 24 24 21 8 6 11 8 18 25 29 0 7 8 13 11 23 14 28 25 18 12 19 8 23 23 20 23 8 24 10 0 8 25 29 13 6 2 27 7 28 6 25 25 2 3 11 6 0 28 28 15 25 18 4 0 4 24 22 3 19 4 27 12 12 8 28 7 17 8 14 11 17 19 4 21 2 11 19 17 28 24 25 20 23 8 3 3 28 10 12 22 11 11 25 2 24 15 27 25 24 17 23 0 8 11 2 15 3 13 13 27 10 24 23 27 23 4 3 21 23 20 19 14 4 2 0 10 29 10 2 21 2 19 12 8 28 23 0 21 2 21 6 4 7 12 7 15 10 19 [p65]299301 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 18 19 21 27 2 12 15 27 22 28 4 28 13 13 28 18 13 20 22 0 18 16 5 24 10 18 27 19 4 2 19 19 4 16 27 6 20 8 24 16 18 8 6 4 8 19 13 21 19 14 24 16 24 16 8 6 11 8 18 7 4 0 7 8 13 11 5 14 28 25 18 12 19 8 5 13 20 5 8 16 10 0 8 25 4 13 6 5 27 7 28 6 25 25 2 13 11 6 0 28 28 15 25 18 4 0 4 24 22 13 19 4 27 12 12 8 28 7 17 8 14 11 17 19 4 16 2 11 19 17 28 24 25 20 5 8 13 13 28 10 12 22 11 11 25 5 24 15 27 25 24 17 10 0 8 11 2 15 13 13 13 27 10 24 5 27 5 4 13 21 5 20 19 14 4 2 0 10 4 10 5 21 2 19 12 8 28 10 0 21 2 21 6 4 7 12 7 15 10 19 [p66]369620 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 18 19 2 22 22 11 2 28 22 28 28 28 3 3 28 18 3 14 22 28 18 22 3 22 14 18 22 19 19 2 19 19 19 2 18 11 14 3 22 2 18 14 19 14 3 19 3 2 19 14 2 22 22 2 14 19 11 14 18 11 19 28 18 14 3 11 2 14 28 11 18 11 28 14 14 3 14 2 14 22 14 2 14 11 19 3 19 2 22 18 28 19 11 11 2 3 11 11 28 28 28 22 11 18 19 22 19 22 22 3 14 19 18 11 11 3 28 11 14 3 19 11 28 19 19 22 2 11 28 28 28 2 11 14 3 14 3 3 28 14 11 22 11 11 11 2 22 22 18 11 22 28 3 28 3 28 2 2 3 3 3 18 3 22 2 18 2 19 3 2 3 3 19 14 19 2 28 14 19 14 2 2 2 28 11 14 28 3 28 2 2 2 19 19 18 11 18 2 14 19 [p67]327201 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 18 19 2 22 2 12 15 27 22 28 4 28 10 3 28 18 3 20 22 0 18 16 23 24 10 18 27 19 4 2 19 19 4 16 27 6 20 8 24 15 18 8 6 26 8 19 3 16 19 10 24 16 24 16 8 6 11 8 18 25 4 0 18 8 8 11 23 17 28 25 18 12 19 20 23 23 20 23 8 16 10 0 26 25 4 10 19 2 27 25 28 6 25 25 2 3 27 6 0 28 28 15 25 18 4 0 4 24 22 3 19 4 27 12 12 8 28 25 17 8 26 11 17 19 26 16 2 11 26 17 28 24 25 20 23 8 3 3 28 10 12 22 11 11 25 2 24 15 27 25 24 17 23 0 8 11 2 15 3 3 23 27 10 24 23 27 23 4 3 16 23 20 19 10 26 2 0 10 4 10 2 15 2 19 12 8 28 23 0 2 2 16 6 4 25 12 25 15 10 19 [p68]231501 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 18 19 21 27 2 12 15 27 22 28 4 28 10 1 28 18 1 20 22 0 18 16 5 24 10 18 27 19 4 2 19 19 4 16 27 6 20 8 24 16 18 8 6 4 8 19 3 21 19 14 24 16 24 16 8 6 11 8 18 7 4 0 7 8 3 11 5 14 28 25 18 12 19 8 23 23 20 23 8 16 10 0 26 25 4 10 6 5 27 7 28 6 25 25 2 3 11 6 0 28 28 15 25 18 4 0 4 24 22 3 19 4 27 12 12 8 28 7 17 8 26 11 17 19 26 16 2 11 26 17 28 24 25 20 23 8 3 3 28 10 12 22 11 11 25 5 24 15 27 25 24 17 23 0 8 11 2 15 3 3 1 27 10 24 5 27 5 4 3 21 1 20 19 14 26 2 0 10 4 10 5 21 2 19 12 8 28 23 0 21 2 21 6 4 7 12 7 15 10 19 [p69]306261 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 7 19 21 27 2 12 15 27 22 28 4 28 13 13 28 7 3 20 22 0 27 16 5 24 10 27 27 19 29 2 19 19 4 16 27 6 20 8 24 16 7 9 6 4 8 19 13 21 19 20 24 16 24 16 8 6 11 9 22 7 29 0 7 8 13 11 5 17 28 25 7 12 19 9 23 23 20 23 8 16 10 0 9 25 29 13 6 5 27 7 28 6 25 25 2 3 11 6 0 28 28 15 25 7 4 0 4 24 22 3 19 4 27 12 12 8 28 7 17 8 9 11 17 19 9 16 2 11 19 17 28 24 25 20 23 9 3 3 28 10 12 22 11 11 25 5 24 15 27 25 24 17 23 0 8 11 2 15 3 13 13 27 10 24 5 27 5 4 3 21 5 20 19 10 4 2 0 10 29 10 5 21 2 19 12 8 28 23 0 21 2 21 6 4 7 12 7 15 10 19 [p70]393550 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 24 19 21 24 21 11 21 24 16 14 14 28 13 13 28 11 13 8 16 24 24 16 21 24 8 11 24 19 4 2 19 19 4 16 24 19 8 8 24 16 11 8 19 4 8 4 13 21 19 14 24 16 21 16 8 4 11 8 16 11 4 2 24 8 13 11 2 14 19 11 16 11 19 8 2 13 8 2 8 16 14 2 8 11 14 13 19 2 24 11 11 4 11 28 2 13 28 19 14 28 14 21 28 11 4 21 4 24 16 13 19 4 16 11 28 8 11 11 14 8 14 28 14 19 14 16 2 28 19 2 28 21 28 8 13 8 8 8 28 14 28 16 28 11 11 2 16 21 24 19 24 14 13 2 8 11 2 16 13 13 13 24 8 21 2 28 2 4 8 21 13 8 19 14 4 2 21 14 4 8 2 21 21 19 11 8 11 13 21 21 2 21 19 4 11 19 28 21 13 19 [p71]335900 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 18 19 21 24 2 12 21 28 18 28 4 28 13 1 28 18 1 20 24 17 18 21 5 24 10 18 24 19 29 2 19 19 4 21 28 6 20 8 24 21 18 9 6 4 8 19 13 21 19 14 24 24 2 21 8 6 11 9 18 7 29 2 7 8 13 11 5 14 28 25 18 12 19 9 23 23 20 23 8 24 10 17 9 25 29 13 6 5 24 7 28 6 25 25 2 13 11 6 17 28 28 21 25 18 4 24 4 24 18 13 19 4 18 12 12 8 28 7 17 8 9 11 17 19 9 21 2 11 19 17 28 24 25 20 23 9 1 13 28 10 12 18 11 11 25 5 24 21 18 25 24 17 23 17 8 11 2 21 13 13 13 28 10 24 5 18 5 4 1 21 1 20 19 14 4 2 24 10 29 10 5 21 2 19 12 8 28 23 17 21 2 21 6 4 7 12 7 21 10 19

 

结果分析

从总体来看,模拟退火算法运行的效果地比爬山法要好,但需要更长的执行时间。

代码链接: 

转载地址:http://pwwob.baihongyu.com/

你可能感兴趣的文章
Linux系统常用的命令
查看>>
linux常用命令 文件操作类
查看>>
Linux常用命令-VI与VIM编辑器介绍
查看>>
linux常用命令-重定向与管道操作
查看>>
linux下用户与组管理-用户管理
查看>>
linux下用户与组管理-组管理与帐户文件介绍
查看>>
linux下文件权限管理介绍
查看>>
linux下常用网络操作(重点)
查看>>
linux在下软件安装-jdk和tomcat安装
查看>>
java框架基础 静态代理和动态代理
查看>>
jQuery ajax开发基于json
查看>>
oracle数据库
查看>>
oracle中间的数据类型
查看>>
论文划分
查看>>
vscode利用cmake调试
查看>>
zcash挖矿
查看>>
zcash挖矿指南
查看>>
区块链术语解释
查看>>
./configure,make,make install的作用
查看>>
学术论文录用结果通知(Notification)
查看>>