From 3b4b600f17358903182db7bd5a308d043170dc00 Mon Sep 17 00:00:00 2001 From: TiagoDvl Date: Tue, 19 May 2015 07:11:28 -0400 Subject: [PATCH] Final Final? --- NotUsed_panama8079.tsp | 1079 ++++++++++++++++++++++++++++++++++++++++ Testberlin52.tsp | 20 - src/ACO.java | 48 +- src/Ant.java | 3 +- src/Main.java | 2 +- src/ScheduledTask.java | 33 ++ 6 files changed, 1152 insertions(+), 33 deletions(-) delete mode 100644 Testberlin52.tsp create mode 100644 src/ScheduledTask.java diff --git a/NotUsed_panama8079.tsp b/NotUsed_panama8079.tsp index 42f5c07..6509359 100644 --- a/NotUsed_panama8079.tsp +++ b/NotUsed_panama8079.tsp @@ -7005,4 +7005,1083 @@ NODE_COORD_SECTION 6998 7883.3333 80483.3333 6999 9066.6667 80066.6667 7000 8283.3333 80816.6667 +7001 8150.0000 81116.6667 +7002 7722.5000 81123.3333 +7003 8733.3333 82716.6667 +7004 8583.3333 80666.6667 +7005 8434.4444 78030.5556 +7006 7483.3333 80783.3333 +7007 8150.0000 81650.0000 +7008 9200.0000 79233.3333 +7009 8600.0000 82483.3333 +7010 8434.4444 78030.5556 +7011 8400.0000 81366.6667 +7012 8150.0000 82900.0000 +7013 8150.0000 81650.0000 +7014 8083.3333 81700.0000 +7015 8083.3333 81366.6667 +7016 7820.0000 81430.2778 +7017 7333.3333 80500.0000 +7018 9330.2778 79807.5000 +7019 8983.3333 79516.6667 +7020 7766.6667 80250.0000 +7021 9330.2778 79807.5000 +7022 8365.2778 78036.6667 +7023 8416.6667 80750.0000 +7024 9233.3333 79616.6667 +7025 9216.6667 79600.0000 +7026 8716.6667 79900.0000 +7027 8433.3333 81283.3333 +7028 7663.8889 81019.4444 +7029 9250.0000 79650.0000 +7030 9250.0000 79650.0000 +7031 8133.3333 77883.3333 +7032 8966.6667 79766.6667 +7033 9333.3333 82250.0000 +7034 8550.0000 82433.3333 +7035 9150.0000 82350.0000 +7036 8883.3333 79633.3333 +7037 7266.6667 80483.3333 +7038 9216.6667 80116.6667 +7039 8633.3333 82666.6667 +7040 8583.3333 82700.0000 +7041 8650.0000 82666.6667 +7042 8383.3333 82000.0000 +7043 8883.3333 79633.3333 +7044 8066.6667 81650.0000 +7045 8016.6667 81483.3333 +7046 7816.6667 80600.0000 +7047 8133.3333 77883.3333 +7048 9166.6667 79566.6667 +7049 8550.0000 82616.6667 +7050 8800.0000 81216.6667 +7051 8800.0000 82416.6667 +7052 9150.0000 78950.0000 +7053 8316.6667 80850.0000 +7054 8533.3333 80216.6667 +7055 9183.3333 78816.6667 +7056 9150.0000 82316.6667 +7057 8466.6667 80266.6667 +7058 8466.6667 80000.0000 +7059 8366.6667 82400.0000 +7060 7633.3333 80166.6667 +7061 8800.0000 82466.6667 +7062 8066.6667 80800.0000 +7063 8283.3333 80683.3333 +7064 9533.3333 82600.0000 +7065 7976.6667 81291.1111 +7066 7550.0000 80166.6667 +7067 8966.6667 79550.0000 +7068 7959.1667 81389.7222 +7069 7816.6667 80950.0000 +7070 7913.6111 81078.0556 +7071 8966.6667 79550.0000 +7072 8900.0000 77700.0000 +7073 8650.0000 82383.3333 +7074 8650.0000 82383.3333 +7075 8316.6667 81366.6667 +7076 8133.3333 81600.0000 +7077 7666.6667 80150.0000 +7078 7483.3333 80233.3333 +7079 8333.3333 82500.0000 +7080 8316.6667 81816.6667 +7081 7983.3333 80716.6667 +7082 7866.6667 81016.6667 +7083 8416.6667 81650.0000 +7084 9030.2778 79824.1667 +7085 8566.6667 80066.6667 +7086 8550.0000 80100.0000 +7087 8250.0000 81083.3333 +7088 7766.6667 81056.3889 +7089 7550.0000 81216.6667 +7090 7416.6667 80150.0000 +7091 9300.0000 82150.0000 +7092 8783.3333 82733.3333 +7093 8766.6667 82750.0000 +7094 8550.0000 82433.3333 +7095 8816.6667 79950.0000 +7096 8616.6667 80233.3333 +7097 8550.0000 82433.3333 +7098 8516.6667 80100.0000 +7099 8250.0000 81416.6667 +7100 8889.7222 79930.0000 +7101 9150.0000 79533.3333 +7102 8766.6667 79933.3333 +7103 8583.3333 80616.6667 +7104 8550.0000 80066.6667 +7105 8450.0000 80750.0000 +7106 8583.3333 80366.6667 +7107 8166.6667 81233.3333 +7108 8582.2222 78152.2222 +7109 9566.6667 78883.3333 +7110 9616.6667 79616.6667 +7111 8300.0000 78900.0000 +7112 8433.3333 81883.3333 +7113 9116.6667 79233.3333 +7114 8950.0000 79666.6667 +7115 9116.6667 79450.0000 +7116 8316.6667 82566.6667 +7117 7683.3333 80483.3333 +7118 7500.0000 80550.0000 +7119 7450.0000 80400.0000 +7120 7333.3333 80866.6667 +7121 7733.3333 80283.3333 +7122 7550.0000 80350.0000 +7123 8550.0000 80166.6667 +7124 8550.0000 80166.6667 +7125 8033.3333 80633.3333 +7126 9100.0000 79366.6667 +7127 8583.3333 79916.6667 +7128 8550.0000 82550.0000 +7129 8550.0000 80166.6667 +7130 8416.6667 81900.0000 +7131 8333.3333 81800.0000 +7132 8083.3333 81316.6667 +7133 8033.3333 80633.3333 +7134 7783.3333 80733.3333 +7135 8416.6667 80683.3333 +7136 9150.0000 80233.3333 +7137 8166.6667 81833.3333 +7138 9116.6667 79316.6667 +7139 8383.3333 81933.3333 +7140 7896.6667 81491.6667 +7141 8050.0000 81600.0000 +7142 8016.6667 81533.3333 +7143 8050.0000 81600.0000 +7144 7896.6667 81491.6667 +7145 7896.6667 81491.6667 +7146 8333.3333 82500.0000 +7147 8000.0000 81400.0000 +7148 7925.2778 81462.5000 +7149 8416.6667 81966.6667 +7150 8383.3333 81950.0000 +7151 8383.3333 82033.3333 +7152 7883.3333 81466.6667 +7153 7883.3333 81466.6667 +7154 7873.8889 81490.8333 +7155 8800.0000 80183.3333 +7156 8533.3333 80216.6667 +7157 8000.0000 81400.0000 +7158 8600.0000 80166.6667 +7159 8483.3333 81950.0000 +7160 8883.3333 80250.0000 +7161 8000.0000 81416.6667 +7162 8400.0000 81983.3333 +7163 8383.3333 81600.0000 +7164 8366.6667 81916.6667 +7165 8416.6667 81966.6667 +7166 7916.6667 81300.0000 +7167 8116.6667 81550.0000 +7168 8750.0000 79966.6667 +7169 8483.3333 81283.3333 +7170 8483.3333 81283.3333 +7171 8866.6667 80283.3333 +7172 8366.6667 81900.0000 +7173 8483.3333 81283.3333 +7174 8483.3333 81283.3333 +7175 7926.9444 81304.7222 +7176 8366.6667 81900.0000 +7177 8716.6667 82500.0000 +7178 8766.6667 82750.0000 +7179 8416.6667 81600.0000 +7180 7950.8333 81473.3333 +7181 7944.7222 81316.6667 +7182 8466.6667 82100.0000 +7183 7900.0000 81483.3333 +7184 8550.0000 80200.0000 +7185 8533.3333 80216.6667 +7186 7933.3333 81466.6667 +7187 8416.6667 81650.0000 +7188 7933.3333 81316.6667 +7189 9066.6667 81800.0000 +7190 7533.3333 80216.6667 +7191 8950.0000 79683.3333 +7192 9050.0000 81766.6667 +7193 8033.3333 82866.6667 +7194 9050.0000 81766.6667 +7195 7950.0000 80550.0000 +7196 7866.6667 80550.0000 +7197 7950.0000 80550.0000 +7198 9116.6667 81900.0000 +7199 8516.6667 82633.3333 +7200 8500.0000 82633.3333 +7201 8516.6667 82633.3333 +7202 8500.0000 82633.3333 +7203 8516.6667 82633.3333 +7204 8483.3333 82616.6667 +7205 8416.6667 80233.3333 +7206 9300.0000 78866.6667 +7207 9166.6667 79616.6667 +7208 9066.6667 79433.3333 +7209 8916.6667 82166.6667 +7210 8783.3333 82400.0000 +7211 8633.3333 79950.0000 +7212 8516.6667 80150.0000 +7213 8416.6667 81600.0000 +7214 8400.0000 81850.0000 +7215 8400.0000 81483.3333 +7216 8266.6667 81666.6667 +7217 7583.3333 80116.6667 +7218 7400.0000 80483.3333 +7219 7400.0000 80483.3333 +7220 8000.0000 81083.3333 +7221 7960.0000 81092.7778 +7222 9274.7222 79695.2778 +7223 9200.0000 82133.3333 +7224 9200.0000 82100.0000 +7225 9100.0000 79266.6667 +7226 9083.3333 81883.3333 +7227 8983.3333 79033.3333 +7228 8833.3333 82200.0000 +7229 8750.0000 80366.6667 +7230 8666.6667 79966.6667 +7231 8650.0000 82633.3333 +7232 8616.6667 82733.3333 +7233 8416.6667 81350.0000 +7234 8416.6667 80666.6667 +7235 8383.3333 81616.6667 +7236 8388.0556 78230.2778 +7237 8133.3333 81433.3333 +7238 8116.6667 80983.3333 +7239 7783.3333 80833.3333 +7240 7666.6667 80400.0000 +7241 7633.3333 80500.0000 +7242 9533.3333 79666.6667 +7243 7350.0000 80366.6667 +7244 7950.8333 81473.3333 +7245 7929.1667 81478.6111 +7246 7945.0000 81492.7778 +7247 8000.0000 80533.3333 +7248 9033.3333 81733.3333 +7249 8350.0000 82000.0000 +7250 8586.1111 78531.3889 +7251 9350.0000 82233.3333 +7252 9200.0000 80200.0000 +7253 8633.3333 82816.6667 +7254 9316.6667 79883.3333 +7255 8783.3333 80200.0000 +7256 8700.0000 82666.6667 +7257 8700.0000 82666.6667 +7258 8716.6667 82500.0000 +7259 8783.3333 80216.6667 +7260 9133.3333 80016.6667 +7261 8283.3333 81616.6667 +7262 7899.1667 81553.3333 +7263 9133.3333 80016.6667 +7264 8283.3333 80800.0000 +7265 9166.6667 79083.3333 +7266 7733.3333 80516.6667 +7267 9283.3333 82266.6667 +7268 7816.6667 80633.3333 +7269 7866.6667 80900.0000 +7270 7850.0000 80866.6667 +7271 7768.0556 81327.7778 +7272 7767.7778 81312.7778 +7273 7768.0556 81327.7778 +7274 8166.6667 81300.0000 +7275 8283.3333 82333.3333 +7276 8283.3333 82333.3333 +7277 9333.3333 82516.6667 +7278 8566.6667 80483.3333 +7279 8566.6667 80483.3333 +7280 9166.6667 82266.6667 +7281 8783.3333 82433.3333 +7282 8400.0000 81300.0000 +7283 7871.6667 81451.3889 +7284 8516.6667 82583.3333 +7285 8083.3333 80850.0000 +7286 9366.6667 79566.6667 +7287 9359.4444 79567.2222 +7288 8616.6667 80233.3333 +7289 8500.0000 82566.6667 +7290 8483.3333 80583.3333 +7291 8250.0000 80850.0000 +7292 7883.3333 80916.6667 +7293 9350.0000 82600.0000 +7294 7466.6667 80433.3333 +7295 8843.3333 80022.2222 +7296 8865.0000 80038.0556 +7297 9200.0000 79083.3333 +7298 7616.6667 80600.0000 +7299 7600.0000 80483.3333 +7300 7633.3333 80566.6667 +7301 7950.0000 80550.0000 +7302 7950.0000 80550.0000 +7303 8116.6667 81150.0000 +7304 8683.3333 79800.0000 +7305 8300.0000 80700.0000 +7306 8033.3333 81233.3333 +7307 9016.6667 81800.0000 +7308 9116.6667 81900.0000 +7309 8116.6667 81300.0000 +7310 9207.2222 79649.7222 +7311 8400.0000 81300.0000 +7312 8233.3333 81400.0000 +7313 8133.3333 81783.3333 +7314 9233.3333 82266.6667 +7315 9333.3333 82250.0000 +7316 8100.0000 81433.3333 +7317 8100.0000 81433.3333 +7318 8433.3333 81616.6667 +7319 8908.3333 80061.1111 +7320 8850.0000 80050.0000 +7321 8466.6667 82083.3333 +7322 8300.0000 80266.6667 +7323 8416.6667 81766.6667 +7324 8783.3333 80333.3333 +7325 8583.3333 82583.3333 +7326 8416.6667 80050.0000 +7327 8083.3333 81533.3333 +7328 8983.3333 79500.0000 +7329 8483.3333 82083.3333 +7330 9000.0000 82183.3333 +7331 8683.3333 80216.6667 +7332 8968.8889 80177.2222 +7333 8968.8889 80177.2222 +7334 8416.6667 81983.3333 +7335 8750.0000 80316.6667 +7336 7500.0000 80616.6667 +7337 9000.0000 79033.3333 +7338 8933.3333 80533.3333 +7339 8316.6667 81933.3333 +7340 8500.0000 79933.3333 +7341 8926.6667 80134.1667 +7342 8500.0000 82066.6667 +7343 8800.0000 80333.3333 +7344 8022.2222 78205.5556 +7345 8033.3333 81283.3333 +7346 9192.2222 80190.2778 +7347 8333.3333 80166.6667 +7348 8750.0000 80466.6667 +7349 7516.6667 80583.3333 +7350 8316.6667 81933.3333 +7351 8850.0000 80100.0000 +7352 8400.0000 81966.6667 +7353 8416.6667 81983.3333 +7354 8400.0000 81916.6667 +7355 8283.3333 80683.3333 +7356 7825.0000 78044.7222 +7357 8016.6667 80450.0000 +7358 9016.6667 79283.3333 +7359 7433.3333 80133.3333 +7360 9183.3333 80083.3333 +7361 8850.0000 77983.3333 +7362 8533.3333 82566.6667 +7363 8350.0000 82116.6667 +7364 8116.6667 81300.0000 +7365 8100.0000 81383.3333 +7366 8083.3333 81533.3333 +7367 8533.3333 80433.3333 +7368 7500.0000 80616.6667 +7369 9192.2222 80190.2778 +7370 8983.3333 81916.6667 +7371 8850.0000 81566.6667 +7372 8633.3333 80450.0000 +7373 8550.0000 80566.6667 +7374 8183.3333 81583.3333 +7375 8533.3333 82566.6667 +7376 8416.6667 81850.0000 +7377 8350.0000 82116.6667 +7378 8100.0000 81383.3333 +7379 7976.3889 81249.1667 +7380 9116.6667 79066.6667 +7381 9050.0000 80200.0000 +7382 9050.0000 80200.0000 +7383 7977.7778 78160.5556 +7384 9416.6667 82333.3333 +7385 8983.3333 81916.6667 +7386 9500.0000 82833.3333 +7387 8233.3333 82266.6667 +7388 8733.3333 80150.0000 +7389 8416.6667 80050.0000 +7390 9583.3333 79650.0000 +7391 7450.0000 80850.0000 +7392 8883.3333 80350.0000 +7393 7842.2222 81450.5556 +7394 8483.3333 82083.3333 +7395 8883.3333 81900.0000 +7396 8466.6667 82083.3333 +7397 9207.2222 79649.7222 +7398 8950.0000 82016.6667 +7399 8833.3333 80483.3333 +7400 8050.0000 77583.3333 +7401 8816.6667 80383.3333 +7402 8983.3333 81916.6667 +7403 8266.6667 81100.0000 +7404 8766.6667 78550.0000 +7405 8850.0000 81566.6667 +7406 8716.6667 80283.3333 +7407 8600.0000 79766.6667 +7408 9200.0000 78916.6667 +7409 8400.0000 81916.6667 +7410 8350.0000 81833.3333 +7411 8583.3333 80700.0000 +7412 8816.6667 80333.3333 +7413 8450.0000 80016.6667 +7414 8216.6667 82216.6667 +7415 8500.0000 82116.6667 +7416 8383.3333 82866.6667 +7417 8783.3333 80266.6667 +7418 8183.3333 81216.6667 +7419 8183.3333 81216.6667 +7420 8900.0000 81866.6667 +7421 8900.0000 81866.6667 +7422 8900.0000 79683.3333 +7423 8900.0000 79666.6667 +7424 8716.6667 82616.6667 +7425 8466.6667 81916.6667 +7426 7900.0000 80500.0000 +7427 7716.6667 80283.3333 +7428 7433.3333 80533.3333 +7429 8533.3333 82716.6667 +7430 8516.6667 82350.0000 +7431 8500.0000 82316.6667 +7432 8420.8333 78016.6667 +7433 8366.6667 80250.0000 +7434 8466.6667 81916.6667 +7435 8933.3333 79600.0000 +7436 9366.6667 82250.0000 +7437 9366.6667 82266.6667 +7438 9250.0000 82300.0000 +7439 9233.3333 82283.3333 +7440 7616.6667 80050.0000 +7441 9050.0000 80316.6667 +7442 8984.7222 79758.8889 +7443 8966.6667 79733.3333 +7444 8933.3333 79733.3333 +7445 8666.6667 80550.0000 +7446 9100.0000 79333.3333 +7447 8533.3333 80483.3333 +7448 8683.3333 79783.3333 +7449 8511.9444 78143.8889 +7450 8066.6667 81300.0000 +7451 9268.6111 79571.6667 +7452 9189.4444 80132.2222 +7453 8966.6667 79533.3333 +7454 9366.6667 82550.0000 +7455 9216.6667 82283.3333 +7456 9166.6667 80200.0000 +7457 8916.6667 82066.6667 +7458 8650.0000 77966.6667 +7459 8566.6667 80183.3333 +7460 8333.3333 81350.0000 +7461 8066.6667 81216.6667 +7462 7816.6667 80266.6667 +7463 7750.0000 80233.3333 +7464 8883.3333 80866.6667 +7465 8683.3333 80250.0000 +7466 8600.0000 79883.3333 +7467 8583.3333 82483.3333 +7468 9216.6667 79666.6667 +7469 8250.0000 80883.3333 +7470 7903.3333 81155.2778 +7471 7833.3333 80800.0000 +7472 8883.3333 81833.3333 +7473 8366.6667 81550.0000 +7474 7616.6667 80233.3333 +7475 7416.6667 80466.6667 +7476 9116.6667 79016.6667 +7477 9116.6667 79016.6667 +7478 7950.0000 80333.3333 +7479 7916.6667 80583.3333 +7480 7633.3333 80383.3333 +7481 8363.0556 78146.1111 +7482 8200.0000 81350.0000 +7483 8550.0000 82316.6667 +7484 8316.6667 82250.0000 +7485 8416.6667 80533.3333 +7486 8500.0000 81433.3333 +7487 8416.6667 80533.3333 +7488 9350.0000 82200.0000 +7489 8250.0000 80816.6667 +7490 7633.3333 80616.6667 +7491 7774.1667 81033.8889 +7492 7774.1667 81033.8889 +7493 7816.6667 80633.3333 +7494 9163.6111 79837.7778 +7495 8243.3333 78222.7778 +7496 8233.3333 81616.6667 +7497 7800.0000 80683.3333 +7498 8383.3333 82416.6667 +7499 9363.8889 79895.5556 +7500 8800.0000 82700.0000 +7501 8633.3333 80616.6667 +7502 8600.0000 82300.0000 +7503 7900.0000 80866.6667 +7504 9233.3333 79633.3333 +7505 8250.0000 80883.3333 +7506 8000.0000 81400.0000 +7507 7666.6667 80816.6667 +7508 8566.6667 80466.6667 +7509 8483.3333 82566.6667 +7510 8316.6667 80716.6667 +7511 8116.6667 81350.0000 +7512 8100.0000 81516.6667 +7513 8250.0000 81133.3333 +7514 7815.0000 81023.0556 +7515 8916.6667 82200.0000 +7516 8633.3333 79966.6667 +7517 8550.0000 80166.6667 +7518 8916.6667 82200.0000 +7519 7887.2222 81163.3333 +7520 7466.6667 80566.6667 +7521 8383.3333 80633.3333 +7522 9516.6667 82700.0000 +7523 8383.3333 81933.3333 +7524 8250.0000 82400.0000 +7525 8416.6667 80683.3333 +7526 8416.6667 80766.6667 +7527 8416.6667 80766.6667 +7528 8333.3333 80983.3333 +7529 8250.0000 80933.3333 +7530 8266.6667 81683.3333 +7531 9050.0000 80016.6667 +7532 8083.3333 80966.6667 +7533 8816.6667 80316.6667 +7534 8833.3333 80300.0000 +7535 8833.3333 82616.6667 +7536 8083.3333 82866.6667 +7537 8466.6667 78000.0000 +7538 8683.3333 79800.0000 +7539 8533.3333 82450.0000 +7540 8400.0000 82083.3333 +7541 7883.3333 80883.3333 +7542 8200.0000 81350.0000 +7543 8000.0000 80900.0000 +7544 8950.0000 79550.0000 +7545 8950.0000 79566.6667 +7546 8300.0000 80900.0000 +7547 8766.6667 82450.0000 +7548 8233.3333 81033.3333 +7549 8233.3333 81033.3333 +7550 8633.3333 80000.0000 +7551 8566.6667 80016.6667 +7552 8300.0000 80966.6667 +7553 8550.0000 82666.6667 +7554 8400.0000 81133.3333 +7555 7450.0000 80133.3333 +7556 8800.0000 79816.6667 +7557 7916.6667 81500.0000 +7558 7700.0000 80700.0000 +7559 8150.0000 81516.6667 +7560 8133.3333 81516.6667 +7561 8300.0000 80966.6667 +7562 8533.3333 78066.6667 +7563 7550.0000 80616.6667 +7564 8800.0000 82450.0000 +7565 8366.6667 81600.0000 +7566 8550.0000 82283.3333 +7567 8800.0000 82466.6667 +7568 8416.6667 81633.3333 +7569 8633.3333 82350.0000 +7570 8800.0000 82433.3333 +7571 7450.0000 80533.3333 +7572 8350.0000 81583.3333 +7573 8700.0000 82283.3333 +7574 8233.3333 81883.3333 +7575 8683.3333 82383.3333 +7576 8600.0000 82666.6667 +7577 8550.0000 82300.0000 +7578 8450.0000 82750.0000 +7579 8366.6667 81633.3333 +7580 8283.3333 81616.6667 +7581 8200.0000 81583.3333 +7582 8483.3333 82250.0000 +7583 8880.2778 79896.6667 +7584 8866.6667 82550.0000 +7585 8683.3333 79933.3333 +7586 8583.3333 80683.3333 +7587 8371.9444 78151.1111 +7588 7466.6667 80650.0000 +7589 8766.6667 82633.3333 +7590 8633.3333 82650.0000 +7591 8483.3333 81066.6667 +7592 8450.0000 82600.0000 +7593 8800.0000 79816.6667 +7594 8566.6667 80033.3333 +7595 8633.3333 79950.0000 +7596 7700.0000 80383.3333 +7597 8433.3333 80033.3333 +7598 9166.6667 79283.3333 +7599 8150.0000 81516.6667 +7600 8550.0000 80883.3333 +7601 8433.3333 80033.3333 +7602 8633.3333 80016.6667 +7603 8583.3333 80050.0000 +7604 8533.3333 82633.3333 +7605 7700.0000 80633.3333 +7606 8583.3333 79966.6667 +7607 8583.3333 79966.6667 +7608 8166.6667 81533.3333 +7609 9233.3333 79250.0000 +7610 8133.3333 81516.6667 +7611 8666.6667 79950.0000 +7612 8550.0000 80100.0000 +7613 8450.0000 82600.0000 +7614 8483.3333 82583.3333 +7615 7895.5556 81451.9444 +7616 7550.0000 80616.6667 +7617 7895.5556 81451.9444 +7618 8483.3333 80016.6667 +7619 9116.6667 79600.0000 +7620 8450.0000 82133.3333 +7621 8450.0000 82133.3333 +7622 7600.0000 80266.6667 +7623 8483.3333 80016.6667 +7624 8833.3333 79933.3333 +7625 8433.3333 82533.3333 +7626 8383.3333 78150.0000 +7627 8783.3333 82433.3333 +7628 8766.6667 82433.3333 +7629 7500.0000 80566.6667 +7630 7633.3333 80250.0000 +7631 8450.0000 81533.3333 +7632 8166.6667 81500.0000 +7633 8650.0000 82783.3333 +7634 9050.0000 79750.0000 +7635 9050.0000 79750.0000 +7636 9050.0000 79750.0000 +7637 9383.3333 79833.3333 +7638 7850.0000 80700.0000 +7639 7850.0000 80683.3333 +7640 7752.5000 81517.2222 +7641 7683.3333 80450.0000 +7642 9166.6667 81900.0000 +7643 8466.6667 82533.3333 +7644 8083.3333 82866.6667 +7645 9116.6667 79483.3333 +7646 9233.3333 82266.6667 +7647 9166.6667 78833.3333 +7648 9430.5556 78631.1111 +7649 9430.5556 78631.1111 +7650 7883.3333 80850.0000 +7651 7316.6667 80466.6667 +7652 7316.6667 80450.0000 +7653 9116.6667 79600.0000 +7654 9166.6667 79616.6667 +7655 8650.0000 80233.3333 +7656 8700.0000 80283.3333 +7657 8683.3333 80266.6667 +7658 7866.6667 80533.3333 +7659 7833.3333 80566.6667 +7660 7866.6667 80533.3333 +7661 8050.0000 80933.3333 +7662 9359.1667 79901.3889 +7663 7566.6667 80333.3333 +7664 8216.6667 81166.6667 +7665 8016.6667 81250.0000 +7666 8216.6667 81166.6667 +7667 8483.3333 82800.0000 +7668 9116.6667 79366.6667 +7669 8483.3333 82800.0000 +7670 8483.3333 82800.0000 +7671 8050.0000 77616.6667 +7672 8050.0000 77616.6667 +7673 8900.0000 81866.6667 +7674 8309.1667 78124.1667 +7675 9500.0000 79016.6667 +7676 9483.3333 78900.0000 +7677 9500.0000 79016.6667 +7678 9483.3333 78900.0000 +7679 7661.1111 81311.1111 +7680 7766.6667 80866.6667 +7681 9150.0000 80000.0000 +7682 9166.6667 80200.0000 +7683 8543.8889 78080.5556 +7684 9033.3333 81733.3333 +7685 8950.0000 79650.0000 +7686 7766.6667 80866.6667 +7687 8943.6111 78034.1667 +7688 8972.7778 79964.7222 +7689 7883.3333 80316.6667 +7690 8600.0000 80050.0000 +7691 8283.3333 82866.6667 +7692 8666.6667 77466.6667 +7693 8666.6667 77466.6667 +7694 8483.3333 81983.3333 +7695 8309.1667 78124.1667 +7696 8500.0000 82366.6667 +7697 9042.2222 79950.0000 +7698 8033.3333 80916.6667 +7699 8316.6667 80383.3333 +7700 7366.6667 80850.0000 +7701 8516.6667 80900.0000 +7702 8166.6667 81383.3333 +7703 7700.0000 80400.0000 +7704 9566.6667 78883.3333 +7705 7583.3333 80066.6667 +7706 9383.3333 82466.6667 +7707 8991.6667 80070.5556 +7708 7650.0000 80083.3333 +7709 8991.6667 80070.5556 +7710 7466.6667 80633.3333 +7711 7966.6667 81300.0000 +7712 8400.0000 80266.6667 +7713 7883.3333 80316.6667 +7714 9116.6667 80450.0000 +7715 7683.3333 80966.6667 +7716 7666.6667 80966.6667 +7717 8566.6667 80183.3333 +7718 8550.0000 82383.3333 +7719 8450.0000 80666.6667 +7720 8966.6667 79550.0000 +7721 8783.3333 79550.0000 +7722 8616.6667 80616.6667 +7723 8716.6667 77550.0000 +7724 8716.6667 77550.0000 +7725 9079.4444 79913.8889 +7726 8933.3333 79550.0000 +7727 8350.0000 81583.3333 +7728 8766.6667 80300.0000 +7729 7533.3333 80633.3333 +7730 8716.6667 79866.6667 +7731 8400.0000 81600.0000 +7732 8400.0000 81900.0000 +7733 8333.3333 81966.6667 +7734 8800.0000 82466.6667 +7735 8366.6667 81850.0000 +7736 7566.6667 80600.0000 +7737 8083.3333 80966.6667 +7738 7783.3333 80900.0000 +7739 8300.0000 80616.6667 +7740 8550.0000 82466.6667 +7741 8166.6667 81616.6667 +7742 8166.6667 81616.6667 +7743 8333.3333 81066.6667 +7744 8450.0000 81866.6667 +7745 8800.0000 82433.3333 +7746 8183.3333 81350.0000 +7747 8350.0000 81200.0000 +7748 8316.6667 81533.3333 +7749 8300.0000 81516.6667 +7750 8483.3333 82216.6667 +7751 8066.6667 81466.6667 +7752 7900.0000 81416.6667 +7753 7916.6667 80933.3333 +7754 8450.0000 82700.0000 +7755 8516.6667 80000.0000 +7756 7733.3333 80933.3333 +7757 8766.6667 80300.0000 +7758 7847.2222 81346.3889 +7759 8883.3333 80266.6667 +7760 8666.6667 82333.3333 +7761 7750.0000 80950.0000 +7762 8133.3333 81650.0000 +7763 8416.6667 81416.6667 +7764 8800.0000 82783.3333 +7765 7899.7222 81442.5000 +7766 8083.3333 80966.6667 +7767 8633.3333 80066.6667 +7768 7900.0000 81416.6667 +7769 8583.3333 82283.3333 +7770 7683.3333 80683.3333 +7771 8666.6667 82333.3333 +7772 7920.0000 81477.2222 +7773 8216.6667 81466.6667 +7774 8366.6667 81516.6667 +7775 7966.6667 81433.3333 +7776 8166.6667 81616.6667 +7777 8116.6667 81433.3333 +7778 8200.0000 81416.6667 +7779 8300.0000 81700.0000 +7780 7616.6667 80416.6667 +7781 8893.6111 80106.9444 +7782 8533.3333 80900.0000 +7783 7616.6667 80350.0000 +7784 7916.6667 80933.3333 +7785 8898.0556 80214.7222 +7786 8300.0000 80616.6667 +7787 8633.3333 80066.6667 +7788 8216.6667 81250.0000 +7789 8633.3333 80566.6667 +7790 8988.0556 79811.9444 +7791 8583.3333 80000.0000 +7792 7783.3333 80983.3333 +7793 8633.3333 80500.0000 +7794 8500.0000 82216.6667 +7795 7750.0000 80850.0000 +7796 8550.0000 80100.0000 +7797 7450.0000 80183.3333 +7798 8833.3333 79850.0000 +7799 8433.3333 80683.3333 +7800 7500.0000 80200.0000 +7801 8566.6667 82316.6667 +7802 8516.6667 80900.0000 +7803 7850.0000 80850.0000 +7804 7750.0000 80666.6667 +7805 7916.6667 81450.0000 +7806 8116.6667 81433.3333 +7807 8166.6667 81516.6667 +7808 8433.3333 80100.0000 +7809 7450.0000 80150.0000 +7810 7466.6667 80200.0000 +7811 8350.0000 82616.6667 +7812 8233.3333 81366.6667 +7813 8150.0000 81233.3333 +7814 8700.0000 82816.6667 +7815 8150.0000 81516.6667 +7816 7733.3333 80883.3333 +7817 8483.3333 80033.3333 +7818 7616.6667 80700.0000 +7819 8600.0000 80166.6667 +7820 8183.3333 81500.0000 +7821 7750.0000 80883.3333 +7822 7862.5000 81441.6667 +7823 8250.0000 81633.3333 +7824 8100.0000 81600.0000 +7825 7683.3333 80766.6667 +7826 8600.0000 82750.0000 +7827 7533.3333 80633.3333 +7828 8533.3333 82750.0000 +7829 8450.0000 82700.0000 +7830 8383.3333 81866.6667 +7831 7750.0000 80916.6667 +7832 8100.0000 81566.6667 +7833 8850.0000 82700.0000 +7834 7900.2778 81402.7778 +7835 8800.0000 80250.0000 +7836 8016.6667 80883.3333 +7837 7733.3333 80900.0000 +7838 8400.0000 82183.3333 +7839 8566.6667 82316.6667 +7840 8450.0000 81616.6667 +7841 8450.0000 81650.0000 +7842 8383.3333 81700.0000 +7843 8433.3333 81783.3333 +7844 8283.3333 81683.3333 +7845 8183.3333 81333.3333 +7846 8750.0000 82433.3333 +7847 9000.0000 79716.6667 +7848 8450.0000 80650.0000 +7849 8383.3333 82066.6667 +7850 8366.6667 81533.3333 +7851 8333.3333 81566.6667 +7852 9066.6667 79466.6667 +7853 8100.0000 81483.3333 +7854 9550.0000 79600.0000 +7855 9300.0000 82400.0000 +7856 8833.3333 81566.6667 +7857 9223.6111 80101.9444 +7858 8600.0000 79900.0000 +7859 8500.0000 82433.3333 +7860 8450.0000 81783.3333 +7861 8416.6667 81533.3333 +7862 8333.3333 81566.6667 +7863 8666.6667 80483.3333 +7864 8550.0000 82250.0000 +7865 8500.0000 82433.3333 +7866 9250.0000 79783.3333 +7867 9250.0000 79783.3333 +7868 9100.0000 80200.0000 +7869 9116.6667 79550.0000 +7870 8966.6667 79566.6667 +7871 8600.0000 80483.3333 +7872 9283.3333 82116.6667 +7873 8400.0000 82550.0000 +7874 8366.6667 82083.3333 +7875 9233.3333 78016.6667 +7876 9233.3333 78016.6667 +7877 9366.6667 78366.6667 +7878 8950.0000 79733.3333 +7879 8952.5000 80191.3889 +7880 8316.6667 81183.3333 +7881 8216.6667 81283.3333 +7882 9266.6667 79750.0000 +7883 8416.6667 80333.3333 +7884 9350.0000 79733.3333 +7885 9300.0000 79783.3333 +7886 9214.4444 78683.3333 +7887 9183.3333 79683.3333 +7888 8666.6667 80400.0000 +7889 7450.0000 80616.6667 +7890 9116.6667 79600.0000 +7891 7450.0000 80350.0000 +7892 8500.0000 80300.0000 +7893 8483.3333 80650.0000 +7894 7883.3333 80933.3333 +7895 7416.6667 80516.6667 +7896 8466.6667 81483.3333 +7897 8800.0000 79833.3333 +7898 8550.0000 79916.6667 +7899 8683.3333 80483.3333 +7900 8416.6667 80333.3333 +7901 7890.0000 81332.7778 +7902 7416.6667 80816.6667 +7903 9283.3333 82466.6667 +7904 8400.0000 80050.0000 +7905 8250.0000 80550.0000 +7906 8464.1667 78120.8333 +7907 8500.0000 81466.6667 +7908 9300.0000 79783.3333 +7909 9183.3333 79683.3333 +7910 8483.3333 80083.3333 +7911 8366.6667 81466.6667 +7912 9166.6667 82216.6667 +7913 8993.0556 80215.2778 +7914 8950.0000 82116.6667 +7915 8938.3333 79985.2778 +7916 8800.0000 82583.3333 +7917 8700.0000 82550.0000 +7918 8533.3333 80100.0000 +7919 8466.6667 81666.6667 +7920 8283.3333 81483.3333 +7921 7800.0000 80666.6667 +7922 7816.6667 81000.0000 +7923 8466.6667 82466.6667 +7924 8333.3333 80966.6667 +7925 8300.0000 81116.6667 +7926 8516.6667 80883.3333 +7927 7450.0000 80616.6667 +7928 9116.6667 79600.0000 +7929 8833.3333 79900.0000 +7930 8783.3333 79833.3333 +7931 7816.6667 80400.0000 +7932 7683.3333 80316.6667 +7933 7583.3333 80283.3333 +7934 7533.3333 80183.3333 +7935 7450.0000 80350.0000 +7936 9066.6667 79250.0000 +7937 8483.3333 80650.0000 +7938 8316.6667 80733.3333 +7939 7980.5556 81425.2778 +7940 9166.6667 79616.6667 +7941 7883.3333 80916.6667 +7942 7416.6667 80516.6667 +7943 9150.0000 82316.6667 +7944 9455.0000 79000.0000 +7945 9455.0000 79000.0000 +7946 8050.0000 81133.3333 +7947 9200.0000 77983.3333 +7948 9200.0000 77983.3333 +7949 9200.0000 77983.3333 +7950 9200.0000 77983.3333 +7951 9566.6667 78900.0000 +7952 9200.0000 77983.3333 +7953 9566.6667 78900.0000 +7954 9200.0000 77983.3333 +7955 8500.0000 82250.0000 +7956 9500.0000 78950.0000 +7957 8550.0000 80933.3333 +7958 9222.7778 80019.1667 +7959 8616.6667 82466.6667 +7960 8600.0000 82450.0000 +7961 8583.3333 82416.6667 +7962 7500.0000 80566.6667 +7963 9249.1667 82292.7778 +7964 8390.2778 78388.6111 +7965 8246.6667 78156.6667 +7966 8326.6667 78127.7778 +7967 8337.2222 78131.3889 +7968 8393.8889 78023.8889 +7969 8731.6667 78555.5556 +7970 8731.6667 78555.5556 +7971 8935.5556 78924.4444 +7972 8929.1667 78900.5556 +7973 8893.3333 78838.0556 +7974 8837.5000 78639.4444 +7975 8968.6111 78505.0000 +7976 8966.6667 78905.5556 +7977 9481.6667 78981.9444 +7978 9455.0000 79000.0000 +7979 9228.0556 78608.0556 +7980 9220.5556 78786.9444 +7981 9209.7222 78881.1111 +7982 9115.2778 78965.8333 +7983 9096.9444 78987.2222 +7984 9162.5000 78888.6111 +7985 9118.0556 78886.1111 +7986 9082.5000 78895.0000 +7987 9085.5556 78976.9444 +7988 9036.9444 78612.7778 +7989 9550.2778 78969.7222 +7990 9589.1667 78885.0000 +7991 9454.7222 78840.0000 +7992 7993.6111 78277.7778 +7993 7958.8889 78246.1111 +7994 7925.5556 78133.8889 +7995 7958.8889 78246.1111 +7996 7871.6667 78143.6111 +7997 7987.5000 78207.5000 +7998 7998.3333 78174.7222 +7999 7938.8889 78402.7778 +8000 7895.5556 78373.3333 +8001 7895.5556 78373.3333 +8002 7917.2222 78120.0000 +8003 7733.3333 78279.1667 +8004 7898.0556 78109.4444 +8005 7876.9444 78098.3333 +8006 7876.1111 78081.6667 +8007 7861.6667 78078.8889 +8008 7851.1111 78069.4444 +8009 7842.2222 78068.6111 +8010 7806.6667 78048.0556 +8011 7634.4444 78181.9444 +8012 7780.2778 78012.7778 +8013 7588.3333 78207.2222 +8014 7612.5000 78069.1667 +8015 7524.1667 78131.3889 +8016 7531.3889 78105.8333 +8017 7518.3333 78077.2222 +8018 7518.3333 78077.2222 +8019 8970.0000 80110.0000 +8020 9337.7778 79780.0000 +8021 9365.0000 79958.6111 +8022 9402.2222 79772.5000 +8023 8846.9444 79949.1667 +8024 8840.2778 79963.6111 +8025 8836.3889 79813.8889 +8026 8848.0556 79995.2778 +8027 8855.2778 79910.8333 +8028 8850.2778 79770.5556 +8029 8861.6667 79790.0000 +8030 8904.1667 79754.7222 +8031 8926.1111 79940.8333 +8032 8945.0000 79873.8889 +8033 8938.3333 79985.2778 +8034 8967.7778 79920.8333 +8035 8995.0000 79905.5556 +8036 8971.9444 79776.6667 +8037 8964.1667 79780.0000 +8038 8952.2222 79773.0556 +8039 8891.3889 79759.4444 +8040 8867.2222 79795.2778 +8041 8885.0000 79801.9444 +8042 8897.2222 79799.7222 +8043 8905.2778 79806.3889 +8044 8907.2222 79813.6111 +8045 8910.8333 79794.4444 +8046 8964.4444 79844.7222 +8047 8951.6667 79828.6111 +8048 8846.3889 79841.3889 +8049 8859.1667 79859.4444 +8050 8904.1667 79895.0000 +8051 8972.5000 79948.8889 +8052 8951.3889 79953.0556 +8053 8860.8333 79974.7222 +8054 8875.8333 79971.3889 +8055 8925.5556 79964.1667 +8056 9359.4444 79567.2222 +8057 9404.7222 79557.5000 +8058 9343.0556 79591.1111 +8059 9385.5556 79611.3889 +8060 9474.7222 79719.7222 +8061 9483.3333 79711.1111 +8062 9461.9444 79730.5556 +8063 9177.2222 80130.2778 +8064 9184.7222 80087.5000 +8065 9223.6111 80101.9444 +8066 9211.6667 80092.2222 +8067 9227.2222 80091.9444 +8068 9271.1111 80023.6111 +8069 9217.2222 80114.1667 +8070 9171.1111 80072.7778 +8071 9190.5556 80172.5000 +8072 9120.2778 79996.6667 +8073 9057.5000 79876.9444 +8074 9330.2778 79807.5000 +8075 9310.5556 79800.2778 +8076 9296.6667 79783.3333 +8077 9250.0000 79520.5556 +8078 9239.4444 79659.1667 +8079 8859.1667 79859.4444 EOF \ No newline at end of file diff --git a/Testberlin52.tsp b/Testberlin52.tsp deleted file mode 100644 index 7abb307..0000000 --- a/Testberlin52.tsp +++ /dev/null @@ -1,20 +0,0 @@ -NAME: berlin52 -TYPE: TSP -COMMENT: 52 locations in Berlin (Groetschel) -DIMENSION: 52 -EDGE_WEIGHT_TYPE: EUC_2D -NODE_COORD_SECTION -1 565.0 575.0 -2 25.0 185.0 -3 345.0 750.0 -4 945.0 685.0 -5 845.0 655.0 -6 880.0 660.0 -7 25.0 230.0 -8 525.0 1000.0 -9 580.0 1175.0 -10 650.0 1130.0 -11 1605.0 620.0 -12 1220.0 580.0 -EOF - diff --git a/src/ACO.java b/src/ACO.java index be58cb4..588812b 100644 --- a/src/ACO.java +++ b/src/ACO.java @@ -3,6 +3,7 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -10,12 +11,14 @@ public class ACO { - private static final int MAX_ANTS = 2048 * 20; + // private static final int MAX_ANTS = 2048 * 20; + private static final int MAX_ANTS = 2; private final String TSP_FILE; private double[][] problem; private double[][] pheromones; private Random random; private ExecutorService service = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); + private ScheduledTask task; private LinkedBlockingQueue results; @@ -151,10 +154,11 @@ private void printBest(ArrayList list) { System.out.printf("%s\n", best); } - private void findBestWay() { + private ArrayList findBestWay() { ArrayList partialResult = new ArrayList(ACO.MAX_ANTS); for (int i = 0; i < ACO.MAX_ANTS; i++) + // this.service.execute(new Ant(this, this.random.nextInt(this.problem.length))); this.service.execute(new Ant(this, this.random.nextInt(this.problem.length))); for (int i = 0, j = 0; i < ACO.MAX_ANTS; i++, j++) { @@ -163,8 +167,8 @@ private void findBestWay() { partialResult.add(ar); // Pretty cool - if (j % 10000 == 0){ - this.printBest(partialResult); + if (j % 10000 == 0) { + // this.printBest(partialResult); } } catch (InterruptedException e) { @@ -174,7 +178,8 @@ private void findBestWay() { System.out.printf("----Final Result----\n"); this.printBest(partialResult); - this.service.shutdown(); + + return partialResult; } private final double calculatePheromones(double current, double newPheromone) { @@ -196,18 +201,39 @@ public synchronized double readPheromone(int x, int y) { } public void start() throws IOException { + ArrayList partialResult; this.problem = this.readMatrixFromFile(); this.pheromones = this.initializePheromones(); - this.findBestWay(); + partialResult = this.findBestWay(); + + try { + while (partialResult.get(0).getWay().length != 0) { + + task = new ScheduledTask(this.problem); + this.problem = task.runThis(); + + System.out.println("Problem Size -> " + this.problem.length); + this.problem = Arrays.copyOfRange(this.problem, partialResult.get(0).getWay()[1], this.problem.length - 1); + partialResult = this.findBestWay(); - // Print the matrix with all the distance values. - for (int i = 0; i < problem.length; i++) { - for (int j = 0; j < problem[i].length; j++) { - System.out.printf("%g\t", problem[i][j]); } - System.out.printf("\n"); + + } catch (ArrayIndexOutOfBoundsException e) { + this.service.shutdown(); + } catch (IllegalArgumentException e) { + this.service.shutdown(); + } finally { + this.service.shutdown(); } + // Print the matrix with all the distance values. + // for (int i = 0; i < problem.length; i++) { + // for (int j = 0; j < problem[i].length; j++) { + // System.out.printf("%g\t", problem[i][j]); + // } + // System.out.printf("\n"); + // } + } public double[][] getProblem() { diff --git a/src/Ant.java b/src/Ant.java index c368d6f..5ab6079 100644 --- a/src/Ant.java +++ b/src/Ant.java @@ -88,7 +88,8 @@ public void run() { int i, next, lastNode; i = 0; - next = lastNode = start; + next = start; + lastNode = this.instance.getProblem().length-1; while((next = this.getNextNode(lastNode)) != -1) { this.way[i++] = lastNode; diff --git a/src/Main.java b/src/Main.java index b283a73..7f59c00 100644 --- a/src/Main.java +++ b/src/Main.java @@ -8,7 +8,7 @@ public class Main { */ public static void main(String[] args) { // TODO Auto-generated method stub - ACO aco = new ACO("04_luxembourg980.tsp"); + ACO aco = new ACO("NotUsed_panama8079.tsp"); try { aco.start(); } catch (IOException e) { diff --git a/src/ScheduledTask.java b/src/ScheduledTask.java new file mode 100644 index 0000000..1b98f85 --- /dev/null +++ b/src/ScheduledTask.java @@ -0,0 +1,33 @@ +import java.util.Random; + +/** + * + * @author Dhinakaran P. + */ +// Create a class extends with TimerTask +public class ScheduledTask { + + private double[][] vertices; + private Random generator; + + public ScheduledTask(double[][] vertices) { + this.vertices = vertices; + this.generator = new Random(); + } + + // Modify edges values inside. + public double[][] runThis() { + for (int i = 0; i < vertices.length; i++) { + for (int j = 0; j < vertices.length; j++) { + int seed = (int) vertices[i][j]; + if (seed > 0.0) { + int randomNumber = generator.nextInt(seed) + 1; + vertices[i][j] = randomNumber; + } + } + } + + return vertices; + + } +} \ No newline at end of file