├── Envs └── __init__.py ├── Models ├── __init__.py ├── __pycache__ │ ├── StateLSTM.cpython-39.pyc │ ├── __init__.cpython-39.pyc │ ├── RolloutBeam.cpython-39.pyc │ ├── RolloutPOMO.cpython-39.pyc │ ├── actorcritic.cpython-39.pyc │ ├── Set2Set_test.cpython-39.pyc │ ├── StateLSTM_test.cpython-39.pyc │ └── RolloutSampling.cpython-39.pyc └── Set2Set_test.py ├── JSP_IJCAI.pdf ├── tables └── tables.xlsx ├── data ├── JS_test_1000_6x6_t100.tar ├── JS_test_10_15x15_t100.tar ├── JS_test_10_20x15_t100.tar ├── JS_test_10_20x20_t100.tar ├── JS_test_10_30x15_t100.tar ├── JS_test_10_30x20_t100.tar ├── JS_test_10_50x15_t100.tar ├── JS_test_10_50x20_t100.tar ├── JS_test_1000_10x10_t100.tar ├── JS_test_10_100x20_t100.tar ├── ta │ ├── ta8 │ ├── ta1 │ ├── ta10 │ ├── ta4 │ ├── ta6 │ ├── ta2 │ ├── ta3 │ ├── ta5 │ ├── ta7 │ ├── ta9 │ ├── ta13 │ ├── ta15 │ ├── ta17 │ ├── ta18 │ ├── ta12 │ ├── ta16 │ ├── ta19 │ ├── ta20 │ ├── ta11 │ ├── ta14 │ ├── ta21 │ ├── ta25 │ ├── ta28 │ ├── ta24 │ ├── ta30 │ ├── ta22 │ ├── ta23 │ ├── ta27 │ ├── ta29 │ ├── ta26 │ ├── ta31 │ ├── ta34 │ ├── ta35 │ ├── ta38 │ ├── ta40 │ ├── ta32 │ ├── ta36 │ ├── ta39 │ ├── ta33 │ └── ta37 └── dmu │ ├── dmu1.txt │ ├── dmu2.txt │ ├── dmu3.txt │ ├── dmu4.txt │ ├── dmu41.txt │ ├── dmu42.txt │ ├── dmu43.txt │ ├── dmu44.txt │ ├── dmu45.txt │ ├── dmu5.txt │ ├── dmu10.txt │ ├── dmu46.txt │ ├── dmu47.txt │ ├── dmu48.txt │ ├── dmu49.txt │ └── dmu50.txt ├── output_logs ├── plots │ ├── cl_plot.pdf │ ├── icl_plot.pdf │ ├── base_plot.pdf │ └── select_plot.pdf └── csv │ └── test │ ├── adaptive_cl_beam.csv │ ├── adaptive_cl_pomo.csv │ ├── adversarial_beam.csv │ ├── adversarial_pomo.csv │ ├── base_15_15_beam.csv │ ├── base_15_15_greedy.csv │ ├── base_15_15_pomo.csv │ ├── base_20_15_beam.csv │ ├── base_20_15_greedy.csv │ ├── base_20_15_pomo.csv │ ├── base_20_20_beam.csv │ ├── base_20_20_greedy.csv │ ├── base_20_20_pomo.csv │ ├── base_30_15_beam.csv │ ├── base_30_15_greedy.csv │ ├── base_30_15_pomo.csv │ ├── base_30_20_beam.csv │ ├── base_30_20_greedy.csv │ ├── base_30_20_pomo.csv │ ├── uniform_cl_beam.csv │ ├── uniform_cl_greedy.csv │ ├── uniform_cl_pomo.csv │ ├── adaptive_cl_greedy.csv │ ├── adaptive_cl_sampling.csv │ ├── adversarial_greedy.csv │ ├── adversarial_sampling.csv │ ├── base_15_15_sampling.csv │ ├── base_20_15_sampling.csv │ ├── base_20_20_sampling.csv │ ├── base_30_15_sampling.csv │ ├── base_30_20_sampling.csv │ ├── classic_cl_15_15_beam.csv │ ├── classic_cl_15_15_pomo.csv │ ├── classic_cl_20_15_beam.csv │ ├── classic_cl_20_15_pomo.csv │ ├── classic_cl_20_20_beam.csv │ ├── classic_cl_20_20_pomo.csv │ ├── classic_cl_30_15_beam.csv │ ├── classic_cl_30_15_pomo.csv │ ├── classic_cl_30_20_beam.csv │ ├── classic_cl_30_20_pomo.csv │ ├── uniform_cl_sampling.csv │ ├── classic_cl_15_15_greedy.csv │ ├── classic_cl_15_15_sampling.csv │ ├── classic_cl_20_15_greedy.csv │ ├── classic_cl_20_15_sampling.csv │ ├── classic_cl_20_20_greedy.csv │ ├── classic_cl_20_20_sampling.csv │ ├── classic_cl_30_15_greedy.csv │ ├── classic_cl_30_15_sampling.csv │ ├── classic_cl_30_20_greedy.csv │ └── classic_cl_30_20_sampling.csv ├── requirements.txt ├── script ├── utils.py ├── main_test.py ├── README.md ├── create_instances.py ├── main_train.py └── cl_test.py /Envs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /JSP_IJCAI.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/JSP_IJCAI.pdf -------------------------------------------------------------------------------- /tables/tables.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/tables/tables.xlsx -------------------------------------------------------------------------------- /data/JS_test_1000_6x6_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_1000_6x6_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_15x15_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_15x15_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_20x15_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_20x15_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_20x20_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_20x20_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_30x15_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_30x15_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_30x20_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_30x20_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_50x15_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_50x15_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_50x20_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_50x20_t100.tar -------------------------------------------------------------------------------- /output_logs/plots/cl_plot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/output_logs/plots/cl_plot.pdf -------------------------------------------------------------------------------- /output_logs/plots/icl_plot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/output_logs/plots/icl_plot.pdf -------------------------------------------------------------------------------- /data/JS_test_1000_10x10_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_1000_10x10_t100.tar -------------------------------------------------------------------------------- /data/JS_test_10_100x20_t100.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/data/JS_test_10_100x20_t100.tar -------------------------------------------------------------------------------- /output_logs/plots/base_plot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/output_logs/plots/base_plot.pdf -------------------------------------------------------------------------------- /output_logs/plots/select_plot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/output_logs/plots/select_plot.pdf -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.20.3 2 | matplotlib==3.5.1 3 | seaborn==0.11.2 4 | torch==1.10.2 5 | torchvision==0.11.3 6 | gym==0.21.0 7 | numba==0.54.1 -------------------------------------------------------------------------------- /Models/__pycache__/StateLSTM.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/StateLSTM.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/RolloutBeam.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/RolloutBeam.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/RolloutPOMO.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/RolloutPOMO.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/actorcritic.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/actorcritic.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/Set2Set_test.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/Set2Set_test.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/StateLSTM_test.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/StateLSTM_test.cpython-39.pyc -------------------------------------------------------------------------------- /Models/__pycache__/RolloutSampling.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Optimization-and-Machine-Learning-Lab/Job-Shop/HEAD/Models/__pycache__/RolloutSampling.cpython-39.pyc -------------------------------------------------------------------------------- /script: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sbatch < 0: # increment sizes 25 | # input_filename = 'classic_cl_%d_%d'%(train_problem_sizes[i-1][0], train_problem_sizes[i-1][1]) # take previous pre-trained model 26 | # output_filename = 'classic_cl_%d_%d'%(train_problem_sizes[i][0], train_problem_sizes[i][1]) # 'classic_cl_6_6' 27 | # train_model(cl_problem_sizes, train_problem_sizes, maxTime, mode, input_filename, output_filename, classic=True) 28 | 29 | # # BASE training 30 | i = 6 31 | cl_problem_sizes = [i] # indices of problem sizes to choose from train_problem_sizes 32 | mode = 'uniform' # 'uniform' or 'adaptive' or 'adversarial' 33 | input_filename = None # give name to continue training from it 34 | output_filename = 'base_%d_%d'%(train_problem_sizes[i][0], train_problem_sizes[i][1]) # 'base_6_6' 35 | train_model(cl_problem_sizes, train_problem_sizes, maxTime, mode, input_filename, output_filename, classic=True) 36 | 37 | 38 | 39 | # # ADAPTIVE training 40 | # cl_problem_sizes = list(range(0,10)) # indices of problem sizes to choose from train_problem_sizes 41 | # mode = 'adaptive' # 'uniform' or 'adaptive' or 'general' 42 | # input_filename = None # give name to continue training from it 43 | # output_filename = 'adaptive_cl' 44 | # train_model(cl_problem_sizes, train_problem_sizes, maxTime, mode, input_filename, output_filename, adaptive_threshold) 45 | 46 | 47 | 48 | # # ADVERSARIAL training 49 | # cl_problem_sizes = list(range(0,10)) # indices of problem sizes to choose from train_problem_sizes 50 | # mode = 'adversarial' # 'uniform' or 'adaptive' or 'adversarial' 51 | # input_filename = None # give name to continue training from it 52 | # output_filename = 'adversarial' 53 | # adaptive_threshold = 0.15 54 | # train_model(cl_problem_sizes, train_problem_sizes, maxTime, mode, input_filename, output_filename, adaptive_threshold) 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /cl_test.py: -------------------------------------------------------------------------------- 1 | 2 | from Envs.JobShopMultiGymEnv import * 3 | from utils import * 4 | from Models.actorcritic import * 5 | from Models.RolloutBeam import * 6 | from Models.RolloutPOMO import * 7 | from Models.RolloutSampling import * 8 | from torch import optim 9 | 10 | import time 11 | 12 | def test_model(problem_sizes, maxTime, data_mode, search_mode, input_model, output_log): 13 | 14 | embeddim = 128 15 | masking = 1 16 | testsize = 1 17 | output_csv = './output_logs/csv/test/' + output_log + '.csv' 18 | filedir = './output_models/' 19 | input_model = filedir + input_model + '.tar' 20 | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") 21 | 22 | if data_mode == 'ta': 23 | max_data_size = 80 24 | 25 | for i in range(max_data_size): 26 | 27 | if data_mode == 'ta': 28 | problem_ind = i//10 + 2 29 | data = read_instances('./data/ta/ta{}'.format(i+1)) 30 | jobs = problem_sizes[problem_ind][0] 31 | macs = problem_sizes[problem_ind][1] 32 | ops = macs 33 | 34 | test_precedence,test_timepre_ = data 35 | test_timepre = test_timepre_ / maxTime 36 | 37 | test_venv = JobShopMultiGymEnv(testsize,jobs,ops,macs) 38 | test_venv.setGame(test_precedence,test_timepre) 39 | testSamples = [i for i in range(testsize)] 40 | test_venv.reset(testSamples) 41 | 42 | # Instanitate actor-critic 43 | actor = Actor(embeddim,jobs,ops,macs,device).to(device) 44 | critic = Critic(embeddim,jobs,ops,macs,device).to(device) 45 | 46 | # Environment training 47 | 48 | actor_opt = optim.Adam(actor.parameters()) 49 | critic_opt = optim.Adam(critic.parameters()) 50 | 51 | checkpoint = torch.load(input_model, map_location=torch.device('cpu')) 52 | actor.load_state_dict(checkpoint['actor_state_dict']) 53 | critic.load_state_dict(checkpoint['critic_state_dict']) 54 | actor_opt.load_state_dict(checkpoint['actor_opt_state_dict']) 55 | critic_opt.load_state_dict(checkpoint['critic_opt_state_dict']) 56 | 57 | if search_mode == 'beam': 58 | test_rollout = RolloutBeam(test_venv,actor,critic,device,masking) 59 | size_search = 2 60 | elif search_mode == 'pomo': 61 | test_rollout = RolloutPOMO(test_venv,actor,critic,device,masking) 62 | size_search = 128 63 | elif search_mode == 'sampling': 64 | test_rollout = RolloutSampling(test_venv,actor,critic,device,masking) 65 | size_search = 128 66 | elif search_mode == 'greedy': 67 | test_rollout = RolloutBeam(test_venv,actor,critic,device,masking) 68 | size_search = 1 69 | 70 | te_ite,te_total_reward,te_States,te_Log_Prob,te_Prob,te_Action,te_Value,te_reward, te_entropy = test_rollout.play(testsize,testSamples,False,size_search) 71 | test_reward = np.max(te_total_reward) 72 | 73 | with open(output_csv, 'a') as f: 74 | print('%d, %.4f'%(te_ite,test_reward), file=f) 75 | 76 | -------------------------------------------------------------------------------- /data/dmu/dmu10.txt: -------------------------------------------------------------------------------- 1 | 20 20 2 | 19 37 3 192 4 48 17 156 11 4 9 47 8 123 13 183 16 127 10 172 7 90 2 91 5 68 15 27 14 18 18 52 12 43 1 199 6 177 0 63 3 | 2 188 8 55 10 52 15 146 9 151 3 2 1 17 18 34 4 27 12 108 0 60 13 105 14 2 19 59 6 81 16 166 7 142 5 183 11 48 17 125 4 | 9 6 15 182 4 172 5 80 16 175 18 101 14 185 7 175 8 62 10 187 2 24 12 20 6 46 1 174 0 120 13 164 11 196 17 160 3 59 19 106 5 | 9 198 13 42 3 144 2 136 1 55 15 74 4 43 8 127 6 57 7 187 18 105 16 146 17 95 10 6 12 112 19 141 5 177 0 34 11 110 14 107 6 | 5 88 0 148 16 140 14 165 15 194 13 21 19 37 10 179 1 122 2 179 3 200 11 186 4 157 17 127 7 13 9 51 6 10 18 96 12 89 8 86 7 | 16 55 6 35 13 68 19 118 0 173 18 23 9 100 4 169 12 86 11 32 15 32 8 150 3 99 2 199 1 84 5 157 14 199 7 187 10 86 17 74 8 | 7 145 17 12 13 14 9 156 8 64 10 46 0 28 11 16 2 111 5 194 1 83 3 76 6 35 14 94 12 187 15 84 16 181 18 182 4 124 19 182 9 | 11 15 9 173 1 57 5 195 2 9 3 91 7 142 4 116 17 199 13 29 16 123 12 22 0 112 8 4 14 155 10 118 18 170 15 154 19 179 6 195 10 | 13 57 4 169 16 43 8 172 12 62 2 39 5 76 7 177 9 34 11 187 3 141 6 89 0 36 17 59 10 7 14 144 19 169 15 41 1 68 18 95 11 | 10 63 0 123 16 6 6 140 18 18 19 35 7 1 11 166 12 192 13 168 9 178 4 200 14 92 3 193 1 75 17 96 8 169 15 62 2 96 5 29 12 | 2 143 8 136 1 182 19 13 15 179 17 189 5 26 11 9 7 43 14 67 6 117 16 179 4 14 12 171 9 118 13 50 18 6 10 97 0 40 3 11 13 | 14 186 1 105 5 53 7 124 9 82 11 138 0 51 19 9 18 132 15 112 8 105 4 127 6 138 17 65 3 20 10 95 12 56 16 60 13 128 2 134 14 | 18 94 2 123 0 24 5 22 6 71 11 81 10 80 19 99 17 44 15 191 14 84 9 67 3 82 7 22 13 24 12 162 16 200 4 9 8 20 1 182 15 | 18 79 11 138 2 9 9 32 5 104 19 199 1 70 7 34 6 73 17 188 0 83 16 171 10 44 13 114 14 55 12 178 4 36 3 16 8 41 15 100 16 | 1 137 18 196 10 117 15 17 17 69 3 103 16 86 12 112 4 12 0 127 19 183 13 32 14 122 8 98 7 25 2 86 9 32 11 89 5 15 6 80 17 | 11 96 7 124 18 9 16 37 15 54 17 160 3 83 1 65 5 52 6 176 0 101 19 165 14 87 9 173 10 191 4 12 8 92 13 61 2 159 12 23 18 | 6 147 5 140 14 88 18 115 17 161 11 199 4 76 0 170 16 35 3 34 15 5 19 52 7 92 2 105 1 171 13 174 10 130 12 92 8 20 9 63 19 | 17 25 16 194 6 190 3 60 12 78 7 111 9 11 13 10 14 171 10 31 0 174 8 148 19 96 4 198 1 13 5 15 11 122 18 125 15 34 2 18 20 | 5 42 12 119 10 78 13 69 11 19 19 148 3 130 16 196 14 157 7 131 0 20 18 57 2 155 8 169 9 47 17 144 1 175 6 32 15 45 4 78 21 | 1 47 18 128 4 189 14 158 6 112 8 197 10 15 17 196 7 91 0 28 13 197 16 168 9 106 12 151 5 80 19 58 2 136 11 117 3 125 15 66 22 | -------------------------------------------------------------------------------- /data/dmu/dmu46.txt: -------------------------------------------------------------------------------- 1 | 20 20 2 | 8 167 2 65 9 96 7 72 0 53 6 147 3 18 5 2 1 78 4 153 15 190 13 178 18 22 16 168 11 74 14 93 19 10 10 68 12 180 17 7 3 | 8 50 0 38 6 118 1 25 4 199 5 22 9 88 3 92 7 174 2 80 14 129 19 74 13 136 12 173 11 41 15 110 10 42 17 148 16 193 18 9 4 | 0 170 5 185 9 34 2 125 8 194 3 44 4 134 1 154 6 112 7 118 16 64 12 94 19 9 13 52 17 144 18 15 15 124 11 15 10 84 14 157 5 | 8 29 3 25 7 30 9 79 2 150 4 179 5 187 1 157 6 105 0 172 19 108 10 99 12 17 16 79 14 60 13 76 17 76 18 192 11 176 15 102 6 | 4 177 7 164 9 153 0 57 5 102 2 50 6 140 1 176 3 154 8 126 14 54 19 183 12 67 15 43 18 107 11 149 16 146 13 188 10 21 17 61 7 | 7 172 5 174 2 138 3 119 6 27 9 147 1 84 4 140 8 154 0 178 16 175 18 157 11 168 10 106 17 130 13 4 14 114 12 153 19 181 15 10 8 | 9 65 1 6 4 163 2 61 8 138 5 185 7 193 3 100 0 199 6 109 17 183 12 157 15 122 16 178 18 12 10 69 14 139 19 177 13 95 11 107 9 | 9 184 7 103 4 184 5 132 6 158 2 32 3 31 0 38 1 181 8 127 17 124 12 193 18 197 15 47 14 200 11 135 19 12 10 70 13 160 16 158 10 | 3 86 7 183 2 179 1 28 0 147 4 58 9 102 5 77 6 4 8 10 16 182 15 143 17 182 18 159 14 107 13 193 11 6 12 153 19 53 10 82 11 | 7 193 6 146 4 30 0 131 9 197 1 190 3 133 8 87 2 50 5 12 16 5 13 187 14 109 18 126 10 182 15 177 12 13 19 122 11 42 17 88 12 | 9 51 4 65 7 99 1 157 0 27 3 44 6 200 2 45 8 105 5 117 13 63 10 156 16 32 18 148 14 138 11 32 12 136 19 166 17 33 15 97 13 | 8 131 7 25 4 158 0 73 5 142 3 3 9 137 1 132 6 189 2 100 10 175 16 140 14 54 11 45 15 148 12 46 13 24 17 163 19 120 18 92 14 | 4 19 3 138 2 23 8 155 1 23 6 81 0 179 9 26 7 160 5 10 15 63 16 14 18 177 10 107 19 154 14 27 17 178 11 94 13 186 12 179 15 | 6 187 5 25 8 115 1 192 2 31 9 22 7 91 4 95 0 87 3 147 13 168 19 23 14 1 18 200 10 89 12 14 11 1 16 73 17 110 15 16 16 | 6 141 8 142 2 190 0 106 7 46 5 35 1 194 4 61 3 191 9 199 17 174 12 91 13 133 14 38 15 6 11 131 10 7 19 99 18 16 16 162 17 | 8 110 5 115 0 107 1 124 6 12 2 174 3 1 4 83 9 193 7 70 10 160 15 156 14 116 17 50 13 52 16 16 19 16 12 78 18 39 11 44 18 | 7 122 3 66 4 127 6 126 1 115 5 83 9 118 0 161 8 109 2 169 19 34 11 174 12 18 10 42 15 5 14 100 13 139 18 122 17 110 16 81 19 | 6 98 0 6 5 94 3 118 9 51 2 190 7 113 1 58 4 116 8 2 18 13 13 30 10 37 14 56 11 90 16 148 17 55 15 141 12 48 19 30 20 | 0 41 7 171 5 105 8 158 1 115 3 81 4 154 6 89 2 103 9 155 15 144 10 176 16 179 13 45 12 101 14 185 18 163 11 172 19 186 17 141 21 | 6 43 3 186 1 105 2 155 0 29 4 71 8 143 7 196 9 186 5 157 10 15 16 57 17 67 15 76 14 153 13 156 19 17 18 130 12 34 11 130 22 | -------------------------------------------------------------------------------- /data/dmu/dmu47.txt: -------------------------------------------------------------------------------- 1 | 20 20 2 | 7 167 3 89 6 173 1 195 5 156 4 61 9 187 8 62 2 101 0 64 10 108 18 48 19 134 11 99 16 16 17 2 13 82 14 2 15 175 12 41 3 | 9 77 6 23 0 108 1 41 5 165 2 152 8 3 3 179 4 115 7 174 13 109 14 119 17 95 16 62 12 116 11 7 18 56 10 167 15 85 19 91 4 | 7 89 4 18 5 199 0 82 6 86 9 166 2 172 3 155 1 172 8 144 12 24 10 74 15 129 17 196 11 118 16 3 18 140 19 152 13 98 14 169 5 | 5 194 3 6 8 131 9 3 0 80 7 134 6 44 2 75 1 107 4 9 10 55 19 114 15 107 18 68 17 98 16 77 12 45 14 30 11 120 13 91 6 | 8 136 6 52 5 57 0 194 7 155 9 64 2 84 4 117 1 140 3 96 17 86 11 7 18 182 15 120 14 130 10 198 16 167 19 62 13 99 12 140 7 | 6 107 8 48 5 131 3 73 7 42 4 41 0 142 9 158 1 19 2 16 18 138 17 49 12 117 13 33 14 170 19 145 10 175 16 57 11 199 15 82 8 | 7 32 9 82 2 83 0 42 3 183 8 193 5 17 1 122 6 32 4 99 16 117 15 46 11 110 10 160 14 57 17 20 12 157 13 41 18 173 19 124 9 | 9 136 6 173 4 174 3 86 7 128 0 181 8 192 2 27 1 154 5 106 16 152 12 17 11 127 13 172 10 194 17 38 18 194 14 112 19 163 15 163 10 | 1 17 0 113 3 133 2 59 7 132 8 96 5 44 9 21 4 133 6 98 18 98 10 65 15 164 19 188 17 162 12 131 14 48 11 83 13 141 16 39 11 | 8 96 6 57 0 179 4 49 1 63 3 88 2 193 5 158 9 123 7 96 17 156 16 178 13 56 19 6 10 79 14 10 15 151 11 129 18 6 12 64 12 | 6 177 3 181 5 132 9 193 8 4 1 138 0 107 7 196 4 73 2 54 15 192 11 188 18 60 16 92 19 121 13 75 12 8 14 27 17 63 10 96 13 | 8 124 2 26 3 46 9 24 4 64 1 46 5 80 6 149 7 81 0 71 14 104 18 97 15 95 16 160 12 172 11 46 10 189 13 66 17 149 19 85 14 | 0 154 5 182 8 40 9 111 7 187 1 112 4 140 6 5 3 158 2 196 10 147 19 192 17 17 18 188 14 129 16 129 12 29 15 142 13 102 11 102 15 | 8 175 6 154 2 104 0 18 9 88 5 81 1 78 7 17 4 184 3 121 16 95 12 165 19 126 15 29 18 33 17 61 13 51 10 130 11 100 14 40 16 | 6 199 1 50 2 42 3 184 0 56 9 159 7 80 4 14 5 108 8 123 10 32 17 132 19 82 12 8 18 136 13 30 15 150 11 163 14 120 16 124 17 | 7 55 3 12 1 167 2 95 6 15 4 90 0 24 9 134 8 134 5 88 15 63 14 90 19 171 10 141 17 152 11 86 16 148 12 138 18 95 13 135 18 | 9 59 2 103 4 7 0 190 5 106 6 76 7 121 8 69 3 159 1 182 11 149 16 185 14 67 13 199 17 70 18 41 12 110 15 190 19 97 10 95 19 | 2 3 5 17 3 121 1 2 7 26 0 31 6 99 9 38 4 187 8 140 15 60 12 94 14 113 10 95 18 60 16 140 19 59 11 191 13 3 17 14 20 | 2 127 3 30 9 53 8 158 1 194 5 25 6 145 4 168 7 104 0 55 13 130 19 189 10 134 18 198 12 138 11 103 14 70 17 173 16 32 15 196 21 | 0 149 4 103 2 184 9 10 5 59 8 173 1 82 7 110 3 182 6 56 11 54 12 93 16 75 14 52 19 129 10 128 13 188 18 66 17 178 15 83 22 | -------------------------------------------------------------------------------- /data/dmu/dmu48.txt: -------------------------------------------------------------------------------- 1 | 20 20 2 | 7 188 8 143 0 108 9 73 6 158 3 35 4 113 1 124 5 107 2 135 13 172 19 175 14 87 12 112 18 58 15 7 11 93 17 52 16 175 10 108 3 | 6 110 5 60 0 111 9 40 4 146 1 185 2 72 7 39 8 47 3 113 13 91 17 23 14 30 10 12 19 139 11 189 16 66 12 20 18 149 15 93 4 | 3 177 4 106 6 45 5 162 8 90 9 25 1 73 0 199 2 88 7 76 16 152 17 15 19 88 13 37 15 181 10 99 18 125 14 187 12 76 11 181 5 | 0 125 2 51 6 135 8 80 5 165 4 126 3 38 1 124 7 8 9 155 12 53 18 111 13 49 17 160 19 190 10 196 15 148 11 18 14 118 16 15 6 | 7 89 8 159 0 47 4 24 9 188 3 180 5 16 1 174 6 18 2 28 17 100 16 175 15 42 13 111 18 2 10 158 12 55 19 66 11 84 14 131 7 | 8 70 9 60 0 145 6 50 5 17 3 132 1 55 2 155 7 100 4 151 16 99 10 9 13 128 19 92 18 123 12 194 17 66 11 94 14 171 15 151 8 | 2 197 5 76 4 74 6 200 1 33 0 40 3 129 8 179 9 84 7 192 14 150 17 71 11 137 12 81 18 66 19 158 10 110 16 58 15 105 13 62 9 | 8 100 6 109 1 71 9 46 3 181 2 113 5 189 7 20 0 25 4 28 10 74 11 199 15 52 16 33 12 19 13 81 19 136 14 21 17 28 18 76 10 | 8 24 4 111 1 151 0 140 9 175 6 23 2 192 3 114 5 175 7 153 17 188 12 79 15 151 11 90 19 81 16 67 10 42 18 24 14 19 13 131 11 | 2 189 7 178 6 88 1 143 0 26 8 140 3 190 5 2 4 7 9 127 14 83 16 9 12 6 10 112 18 19 17 183 11 16 15 39 19 179 13 167 12 | 5 78 3 129 1 34 6 115 8 21 2 194 7 152 0 162 9 37 4 85 14 195 11 70 19 103 10 6 15 101 17 157 13 112 12 138 18 32 16 199 13 | 1 144 2 138 7 116 4 133 0 166 8 50 5 26 6 16 3 133 9 174 15 13 18 176 12 3 16 40 13 166 19 31 11 131 17 80 14 81 10 122 14 | 9 39 1 123 7 148 8 43 3 58 5 66 4 150 2 26 6 42 0 172 10 189 11 80 16 7 17 81 19 6 18 35 12 194 15 44 14 74 13 102 15 | 2 72 3 57 4 191 5 33 9 91 1 93 0 83 7 15 6 120 8 155 13 186 14 178 11 57 19 78 18 95 15 83 16 57 10 136 17 109 12 43 16 | 9 64 3 55 2 135 5 83 1 114 7 72 4 98 8 49 0 109 6 30 10 142 13 15 16 34 12 54 11 108 17 63 14 179 15 89 18 181 19 30 17 | 4 168 2 139 6 178 8 68 5 103 1 145 7 190 3 97 0 125 9 150 11 81 15 122 18 136 17 197 10 164 13 62 16 178 14 14 12 46 19 153 18 | 7 124 9 193 6 47 3 48 1 75 0 67 8 80 4 195 2 87 5 145 12 62 10 18 16 18 19 195 15 178 18 145 11 72 17 137 14 45 13 150 19 | 1 40 0 54 3 173 6 161 2 61 4 173 5 68 9 175 7 30 8 122 16 149 17 130 18 88 11 21 14 161 12 73 13 54 15 40 10 79 19 33 20 | 9 147 2 16 6 53 0 36 8 116 3 129 5 57 7 197 1 132 4 142 18 165 13 26 14 165 15 38 17 146 12 161 11 92 16 29 10 25 19 118 21 | 5 63 9 144 3 159 0 33 7 136 1 153 4 166 6 165 2 122 8 8 18 1 13 187 11 83 12 102 16 89 17 198 15 56 10 65 14 172 19 18 22 | -------------------------------------------------------------------------------- /data/dmu/dmu49.txt: -------------------------------------------------------------------------------- 1 | 20 20 2 | 2 89 4 185 6 197 8 48 0 37 5 130 9 109 1 3 7 186 3 50 10 28 12 30 11 24 17 186 14 69 18 34 19 25 15 162 13 18 16 114 3 | 8 24 0 146 7 140 3 134 6 92 2 5 1 37 5 21 9 199 4 15 19 143 18 48 13 45 15 25 11 198 10 101 17 155 14 139 12 195 16 192 4 | 9 75 3 18 1 41 6 28 4 162 2 125 0 48 8 129 5 192 7 194 14 51 17 30 11 112 18 27 16 10 12 109 13 115 19 65 10 53 15 81 5 | 6 9 3 64 2 128 9 164 0 15 5 114 8 144 4 41 1 136 7 153 17 61 10 43 12 57 18 150 19 193 11 91 14 138 15 160 13 15 16 43 6 | 5 197 4 69 7 184 9 12 2 189 8 57 0 186 6 61 3 18 1 90 13 162 14 140 17 173 11 152 19 121 12 17 15 199 16 86 18 160 10 130 7 | 9 125 3 86 7 43 2 171 4 28 0 18 6 195 8 164 5 73 1 35 18 100 10 38 17 107 12 136 11 63 16 186 19 199 14 96 13 139 15 42 8 | 8 62 3 107 7 150 2 196 5 8 6 57 9 32 4 133 1 171 0 198 10 127 17 153 15 30 14 167 11 139 18 121 12 175 16 36 13 159 19 13 9 | 2 17 5 37 9 39 3 61 1 73 6 91 4 189 7 76 0 47 8 123 15 53 16 11 18 187 11 115 19 102 13 171 17 109 14 124 12 9 10 122 10 | 9 32 1 136 8 152 6 133 5 47 2 131 3 190 0 87 4 71 7 53 18 49 13 50 17 150 15 47 12 168 14 47 11 9 19 39 10 106 16 93 11 | 9 174 7 47 0 87 3 118 1 192 5 72 8 195 4 146 6 182 2 31 19 30 15 51 18 169 14 62 12 63 16 34 10 60 13 77 17 11 11 121 12 | 8 61 0 10 5 70 3 175 4 60 6 72 9 31 2 60 1 186 7 118 14 45 13 53 19 132 16 2 15 73 12 78 18 24 11 162 10 40 17 38 13 | 4 66 0 13 6 145 9 56 8 188 3 185 2 190 7 68 1 11 5 175 11 55 19 16 12 57 18 172 10 179 14 139 13 91 16 67 17 158 15 162 14 | 5 185 9 138 3 172 0 22 2 45 6 16 8 154 1 49 7 1 4 103 13 97 18 41 19 198 16 143 14 155 15 80 12 94 17 111 11 140 10 89 15 | 6 16 5 112 0 186 1 146 8 180 2 109 3 143 9 18 4 82 7 188 19 184 13 122 11 123 12 140 17 97 16 78 14 46 18 157 10 38 15 175 16 | 0 16 3 19 6 71 7 27 8 121 4 37 9 106 2 89 1 54 5 179 12 80 10 97 17 148 19 146 11 56 16 144 13 162 15 189 18 29 14 139 17 | 8 113 7 132 0 99 6 20 2 84 4 161 1 133 9 35 5 47 3 142 10 1 11 8 17 160 16 103 12 181 18 78 15 116 19 79 13 15 14 22 18 | 7 127 3 6 5 98 9 3 0 91 1 36 4 59 6 4 8 139 2 143 10 134 17 47 14 91 13 195 16 8 11 170 19 144 18 105 15 145 12 141 19 | 5 38 0 58 4 18 7 118 1 90 9 18 6 51 8 126 2 190 3 2 15 164 18 34 16 33 17 49 11 68 13 169 12 33 14 198 19 138 10 99 20 | 0 27 6 138 8 135 2 12 9 28 5 74 7 128 3 183 1 190 4 58 15 16 18 152 13 99 11 52 14 190 12 164 10 163 19 84 17 36 16 58 21 | 0 111 8 51 7 41 2 174 3 73 4 62 1 26 5 164 9 150 6 10 15 83 16 193 14 39 13 18 19 158 10 123 18 37 12 30 11 197 17 160 22 | -------------------------------------------------------------------------------- /data/dmu/dmu50.txt: -------------------------------------------------------------------------------- 1 | 20 20 2 | 3 120 7 53 5 20 1 2 0 26 2 140 6 25 9 137 4 96 8 56 15 188 12 25 11 8 17 48 10 150 16 17 18 133 13 37 14 61 19 105 3 | 5 46 2 95 3 6 6 42 1 15 9 130 4 62 8 66 7 172 0 57 14 119 18 162 17 55 19 98 13 199 15 24 10 11 16 89 12 50 11 29 4 | 0 142 1 137 3 12 8 31 2 134 6 25 7 141 5 140 9 5 4 20 16 4 13 173 14 64 10 8 11 46 17 76 12 90 19 8 15 34 18 6 5 | 4 127 5 178 9 93 8 187 0 58 1 170 7 69 2 63 6 140 3 8 17 57 16 63 12 104 15 12 19 187 14 55 10 29 18 27 11 70 13 139 6 | 7 172 6 198 8 58 3 185 0 189 2 121 4 162 9 32 5 200 1 82 10 175 17 16 12 79 16 194 19 69 18 101 15 78 14 163 11 49 13 171 7 | 0 125 6 200 1 130 3 69 7 51 4 67 2 166 5 57 8 145 9 164 11 54 10 16 18 176 16 86 17 21 13 128 12 110 14 97 15 40 19 116 8 | 7 157 2 114 5 23 3 89 8 122 9 145 0 61 1 132 4 22 6 55 19 180 14 162 15 144 17 14 11 4 13 103 18 91 16 75 10 171 12 9 9 | 9 164 0 14 5 150 3 56 7 152 8 118 2 160 6 52 1 36 4 86 11 125 15 160 16 176 13 73 18 25 12 45 17 165 10 182 19 108 14 1 10 | 5 119 8 25 7 122 1 110 2 198 4 91 6 131 0 26 9 141 3 17 13 109 14 29 10 185 18 6 19 38 17 56 15 101 12 110 16 45 11 17 11 | 1 32 6 184 5 93 2 113 4 34 3 18 8 161 7 60 9 177 0 193 19 134 12 163 15 132 14 146 10 52 13 90 17 164 18 102 16 153 11 112 12 | 7 146 8 107 6 164 5 166 9 177 1 46 2 138 3 24 0 68 4 147 10 137 16 36 14 15 12 48 19 81 18 137 17 48 11 116 15 41 13 54 13 | 3 45 4 183 5 82 8 95 2 107 0 42 1 152 9 32 7 110 6 117 13 18 17 122 12 49 18 41 16 105 10 68 11 53 19 8 14 5 15 142 14 | 4 30 1 131 8 36 7 154 2 74 5 13 6 108 0 9 3 38 9 75 14 153 17 200 16 188 10 186 15 40 13 155 12 11 18 188 11 64 19 149 15 | 5 148 6 9 7 141 9 72 8 92 0 149 3 15 4 83 2 115 1 189 18 119 13 121 12 134 14 103 15 123 11 76 10 11 17 53 19 10 16 99 16 | 0 90 1 154 9 56 5 29 6 180 2 10 3 7 4 25 8 150 7 165 17 183 19 73 11 195 15 178 14 64 13 60 12 158 18 139 10 71 16 120 17 | 3 23 5 76 2 64 4 86 7 21 6 86 8 194 9 13 1 46 0 161 10 11 19 200 11 150 14 188 16 169 17 180 18 44 13 148 12 171 15 164 18 | 0 138 7 116 2 193 4 1 1 17 6 97 3 51 5 184 8 59 9 18 11 143 15 165 10 151 13 57 14 116 16 192 19 111 18 143 12 89 17 13 19 | 6 116 1 197 9 139 2 185 7 39 3 118 8 83 4 111 5 96 0 188 12 123 11 78 14 43 13 99 19 195 17 19 15 18 18 114 16 170 10 122 20 | 5 153 4 71 8 29 3 28 6 130 7 87 0 42 2 164 1 69 9 63 17 7 10 159 13 199 16 198 11 89 14 1 15 189 18 126 19 121 12 37 21 | 6 115 7 123 0 136 3 64 8 58 2 72 4 113 1 126 9 199 5 193 14 82 19 189 11 6 18 161 15 52 12 82 16 183 17 38 10 101 13 35 22 | --------------------------------------------------------------------------------