From 693b7598fbfded27caf96ec46e9b2e68f56a8c90 Mon Sep 17 00:00:00 2001 From: Lucas Cavalcanti Date: Thu, 3 Dec 2020 19:12:22 -0300 Subject: [PATCH] Update with codes --- Q-learning | 1 - q-learning/README.md | 44 + q-learning/env.png | Bin 0 -> 54134 bytes q-learning/main.py | 109 + salesman-problem/.gitignore | 1 + salesman-problem/README.md | 3 + salesman-problem/ar9152.tsp | 9160 +++++++++++++++++ salesman-problem/dj38.tsp | 48 + salesman-problem/hill-climbing.py | 139 + .../ar9152_rand_shuffle_100_x_10.txt | 75 + .../ar9152_rand_shuffle_100_x_10_nodes.txt | 2 + .../ar9152_rand_shuffle_10_x_10.txt | 83 + .../ar9152_rand_shuffle_10_x_10_nodes.txt | 3 + .../ar9152_rand_shuffle_50_x_10.txt | 86 + .../ar9152_rand_shuffle_50_x_10_nodes.txt | 3 + .../results-ar/ar9152_rand_swap_0_10_x_10.txt | 422 + .../ar9152_rand_swap_0_10_x_10_nodes.txt | 3 + .../results-ar/ar9152_rand_swap_0_50_x_10.txt | 1740 ++++ .../ar9152_rand_swap_0_50_x_10_nodes.txt | 3 + .../ar9152_rand_swap_10_10_x_10.txt | 922 ++ .../ar9152_rand_swap_10_10_x_10_nodes.txt | 3 + .../results-ar/ar9152_rand_swap_1_10_x_10.txt | 2162 ++++ .../ar9152_rand_swap_1_10_x_10_nodes.txt | 3 + .../results-ar/ar9152_rand_swap_2_10_x_10.txt | 2381 +++++ .../ar9152_rand_swap_2_10_x_10_nodes.txt | 3 + .../results-ar/ar9152_rand_swap_5_10_x_10.txt | 1529 +++ .../ar9152_rand_swap_5_10_x_10_nodes.txt | 2 + .../results-dj/dj38_rand_shuffle_38_x_10.txt | 85 + .../dj38_rand_shuffle_38_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_0_19_x_10.txt | 168 + .../dj38_rand_swap_0_19_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_0_38_x_10.txt | 242 + .../dj38_rand_swap_0_38_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_10_38_x_10.txt | 93 + .../dj38_rand_swap_10_38_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_1_100_x_10.txt | 355 + .../dj38_rand_swap_1_100_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_1_38_x_10.txt | 244 + .../dj38_rand_swap_1_38_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_1_50_x_10.txt | 269 + .../dj38_rand_swap_1_50_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_3_38_x_10.txt | 145 + .../dj38_rand_swap_3_38_x_10_nodes.txt | 3 + .../results-dj/dj38_rand_swap_5_38_x_10.txt | 109 + .../dj38_rand_swap_5_38_x_10_nodes.txt | 3 + salesman-problem/solution.py | 14 + traveling-salesman | 1 - 47 files changed, 20680 insertions(+), 2 deletions(-) delete mode 160000 Q-learning create mode 100644 q-learning/README.md create mode 100644 q-learning/env.png create mode 100644 q-learning/main.py create mode 100644 salesman-problem/.gitignore create mode 100644 salesman-problem/README.md create mode 100644 salesman-problem/ar9152.tsp create mode 100644 salesman-problem/dj38.tsp create mode 100644 salesman-problem/hill-climbing.py create mode 100644 salesman-problem/results-ar/ar9152_rand_shuffle_100_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_shuffle_100_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_shuffle_10_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_shuffle_10_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_shuffle_50_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_shuffle_50_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_0_10_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_0_10_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_0_50_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_0_50_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_10_10_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_10_10_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_1_10_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_1_10_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_2_10_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_2_10_x_10_nodes.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_5_10_x_10.txt create mode 100644 salesman-problem/results-ar/ar9152_rand_swap_5_10_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_shuffle_38_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_shuffle_38_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_0_19_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_0_19_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_0_38_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_0_38_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_10_38_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_10_38_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_1_100_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_1_100_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_1_38_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_1_38_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_1_50_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_1_50_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_3_38_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_3_38_x_10_nodes.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_5_38_x_10.txt create mode 100644 salesman-problem/results-dj/dj38_rand_swap_5_38_x_10_nodes.txt create mode 100644 salesman-problem/solution.py delete mode 160000 traveling-salesman diff --git a/Q-learning b/Q-learning deleted file mode 160000 index 254835f..0000000 --- a/Q-learning +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 254835f6ee27a47c3ce2290bccc8f6e9b29583d0 diff --git a/q-learning/README.md b/q-learning/README.md new file mode 100644 index 0000000..e49735d --- /dev/null +++ b/q-learning/README.md @@ -0,0 +1,44 @@ +# Q-learning +Adaptive Cognitive Agents Exercise - Q-learning + +![alt text](./env.png) + +- Parameters: +``` +Alpha = 0.5 +Gamma = 0.8 +Actions Order = [UP, DW, LF, RG] +``` +- Rewards: +``` +Rewards of -1. +- Except for terminal state, which is +10. +- If colide with walls reward is -10. +``` +- Episodes: +``` +Episode 1 +Initial State: 0 +Actions: Up, Up, Up, Right +``` +``` +Episode 2 +Initial State: 4 +Actions: Right, Right, Left, Up +``` +#### Final Values: +``` + [[-5. 0. 0. 5. ] | [ 0. 0. 0. 0. ]] + + [[-0.5 0. -5. -0.5] | [ 5. 0. -0.5 0. ]] + + [[-0.5 0. 0. 0. ] | [ 0. 0. 0. 0. ]] +``` + + +#### Final Policy: +``` + ['RG', '+10'] + ['DW', 'UP'] + ['DW', 'UP'] +``` diff --git a/q-learning/env.png b/q-learning/env.png new file mode 100644 index 0000000000000000000000000000000000000000..062b1afd94cbd47c16838b38bcb3e09c70e0b075 GIT binary patch literal 54134 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