ai4r 1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +48 -0
- data/examples/decision_trees/data_set.csv +121 -0
- data/examples/decision_trees/id3_example.rb +31 -0
- data/examples/decision_trees/results.txt +29 -0
- data/examples/genetic_algorithm/genetic_algorithm_example.rb +39 -0
- data/examples/genetic_algorithm/travel_cost.csv +16 -0
- data/examples/neural_network/backpropagation_example.rb +65 -0
- data/examples/neural_network/patterns_with_base_noise.rb +68 -0
- data/examples/neural_network/patterns_with_noise.rb +66 -0
- data/examples/neural_network/training_patterns.rb +68 -0
- data/lib/decision_tree/id3.rb +354 -0
- data/lib/genetic_algorithm/genetic_algorithm.rb +268 -0
- data/lib/neural_network/backpropagation.rb +259 -0
- data/site/build/site/en/broken-links.xml +2 -0
- data/site/build/site/en/downloads.html +187 -0
- data/site/build/site/en/downloads.pdf +151 -0
- data/site/build/site/en/geneticAlgorithms.html +564 -0
- data/site/build/site/en/geneticAlgorithms.pdf +911 -0
- data/site/build/site/en/images/ai4r-logo.png +0 -0
- data/site/build/site/en/images/built-with-forrest-button.png +0 -0
- data/site/build/site/en/images/c.png +0 -0
- data/site/build/site/en/images/c_wbn.png +0 -0
- data/site/build/site/en/images/c_wn.png +0 -0
- data/site/build/site/en/images/ero.gif +0 -0
- data/site/build/site/en/images/europe2.png +0 -0
- data/site/build/site/en/images/europe3.png +0 -0
- data/site/build/site/en/images/fitness.png +0 -0
- data/site/build/site/en/images/instruction_arrow.png +0 -0
- data/site/build/site/en/images/my_email.png +0 -0
- data/site/build/site/en/images/rubyforge.png +0 -0
- data/site/build/site/en/images/s.png +0 -0
- data/site/build/site/en/images/s_wbn.png +0 -0
- data/site/build/site/en/images/s_wn.png +0 -0
- data/site/build/site/en/images/sigmoid.png +0 -0
- data/site/build/site/en/images/t.png +0 -0
- data/site/build/site/en/images/t_wbn.png +0 -0
- data/site/build/site/en/images/t_wn.png +0 -0
- data/site/build/site/en/index.html +258 -0
- data/site/build/site/en/index.pdf +306 -0
- data/site/build/site/en/linkmap.html +231 -0
- data/site/build/site/en/linkmap.pdf +94 -0
- data/site/build/site/en/locationmap.xml +72 -0
- data/site/build/site/en/machineLearning.html +325 -0
- data/site/build/site/en/machineLearning.pdf +337 -0
- data/site/build/site/en/neuralNetworks.html +446 -0
- data/site/build/site/en/neuralNetworks.pdf +604 -0
- data/site/build/site/en/skin/CommonMessages_de.xml +23 -0
- data/site/build/site/en/skin/CommonMessages_en_US.xml +23 -0
- data/site/build/site/en/skin/CommonMessages_es.xml +23 -0
- data/site/build/site/en/skin/CommonMessages_fr.xml +23 -0
- data/site/build/site/en/skin/basic.css +166 -0
- data/site/build/site/en/skin/breadcrumbs-optimized.js +90 -0
- data/site/build/site/en/skin/breadcrumbs.js +237 -0
- data/site/build/site/en/skin/fontsize.js +166 -0
- data/site/build/site/en/skin/getBlank.js +40 -0
- data/site/build/site/en/skin/getMenu.js +45 -0
- data/site/build/site/en/skin/images/README.txt +1 -0
- data/site/build/site/en/skin/images/add.jpg +0 -0
- data/site/build/site/en/skin/images/built-with-forrest-button.png +0 -0
- data/site/build/site/en/skin/images/chapter.gif +0 -0
- data/site/build/site/en/skin/images/chapter_open.gif +0 -0
- data/site/build/site/en/skin/images/current.gif +0 -0
- data/site/build/site/en/skin/images/error.png +0 -0
- data/site/build/site/en/skin/images/external-link.gif +0 -0
- data/site/build/site/en/skin/images/fix.jpg +0 -0
- data/site/build/site/en/skin/images/forrest-credit-logo.png +0 -0
- data/site/build/site/en/skin/images/hack.jpg +0 -0
- data/site/build/site/en/skin/images/header_white_line.gif +0 -0
- data/site/build/site/en/skin/images/info.png +0 -0
- data/site/build/site/en/skin/images/instruction_arrow.png +0 -0
- data/site/build/site/en/skin/images/label.gif +0 -0
- data/site/build/site/en/skin/images/page.gif +0 -0
- data/site/build/site/en/skin/images/pdfdoc.gif +0 -0
- data/site/build/site/en/skin/images/poddoc.png +0 -0
- data/site/build/site/en/skin/images/printer.gif +0 -0
- data/site/build/site/en/skin/images/rc-b-l-15-1body-2menu-3menu.png +0 -0
- data/site/build/site/en/skin/images/rc-b-r-15-1body-2menu-3menu.png +0 -0
- data/site/build/site/en/skin/images/rc-b-r-5-1header-2tab-selected-3tab-selected.png +0 -0
- data/site/build/site/en/skin/images/rc-t-l-5-1header-2searchbox-3searchbox.png +0 -0
- data/site/build/site/en/skin/images/rc-t-l-5-1header-2tab-selected-3tab-selected.png +0 -0
- data/site/build/site/en/skin/images/rc-t-l-5-1header-2tab-unselected-3tab-unselected.png +0 -0
- data/site/build/site/en/skin/images/rc-t-r-15-1body-2menu-3menu.png +0 -0
- data/site/build/site/en/skin/images/rc-t-r-5-1header-2searchbox-3searchbox.png +0 -0
- data/site/build/site/en/skin/images/rc-t-r-5-1header-2tab-selected-3tab-selected.png +0 -0
- data/site/build/site/en/skin/images/rc-t-r-5-1header-2tab-unselected-3tab-unselected.png +0 -0
- data/site/build/site/en/skin/images/remove.jpg +0 -0
- data/site/build/site/en/skin/images/rss.png +0 -0
- data/site/build/site/en/skin/images/spacer.gif +0 -0
- data/site/build/site/en/skin/images/success.png +0 -0
- data/site/build/site/en/skin/images/txtdoc.png +0 -0
- data/site/build/site/en/skin/images/update.jpg +0 -0
- data/site/build/site/en/skin/images/valid-html401.png +0 -0
- data/site/build/site/en/skin/images/vcss.png +0 -0
- data/site/build/site/en/skin/images/warning.png +0 -0
- data/site/build/site/en/skin/images/xmldoc.gif +0 -0
- data/site/build/site/en/skin/menu.js +48 -0
- data/site/build/site/en/skin/note.txt +50 -0
- data/site/build/site/en/skin/print.css +54 -0
- data/site/build/site/en/skin/profile.css +163 -0
- data/site/build/site/en/skin/prototype.js +1257 -0
- data/site/build/site/en/skin/screen.css +587 -0
- data/site/build/site/en/svn.html +223 -0
- data/site/build/site/en/svn.pdf +239 -0
- data/site/build/site/en/wholesite.pdf +1686 -0
- data/site/build/tmp/brokenlinks.xml +2 -0
- data/site/build/tmp/build-info.xml +5 -0
- data/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.data +0 -0
- data/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.index +0 -0
- data/site/build/tmp/input.xmap +32 -0
- data/site/build/tmp/internal.xmap +32 -0
- data/site/build/tmp/locationmap.xml +29 -0
- data/site/build/tmp/output.xmap +38 -0
- data/site/build/tmp/pluginlist2fetchbuild.xml +144 -0
- data/site/build/tmp/plugins-1.xml +212 -0
- data/site/build/tmp/plugins-2.xml +347 -0
- data/site/build/tmp/projfilters.properties +41 -0
- data/site/build/tmp/resources.xmap +32 -0
- data/site/build/webapp/WEB-INF/logs/access.log +0 -0
- data/site/build/webapp/WEB-INF/logs/core.log +788 -0
- data/site/build/webapp/WEB-INF/logs/debug.log +0 -0
- data/site/build/webapp/WEB-INF/logs/error.log +248 -0
- data/site/build/webapp/WEB-INF/logs/flow.log +0 -0
- data/site/build/webapp/WEB-INF/logs/idgen.log +0 -0
- data/site/build/webapp/WEB-INF/logs/linkrewriter.log +0 -0
- data/site/build/webapp/WEB-INF/logs/locationmap.log +0 -0
- data/site/build/webapp/WEB-INF/logs/sitemap.log +0 -0
- data/site/build/webapp/WEB-INF/logs/xmlform.log +0 -0
- data/site/forrest.properties +152 -0
- data/site/forrest.properties.dispatcher.properties +25 -0
- data/site/forrest.properties.xml +29 -0
- data/site/src/documentation/README.txt +7 -0
- data/site/src/documentation/classes/CatalogManager.properties +62 -0
- data/site/src/documentation/content/locationmap.xml +72 -0
- data/site/src/documentation/content/xdocs/downloads.html +9 -0
- data/site/src/documentation/content/xdocs/geneticAlgorithms.xml +280 -0
- data/site/src/documentation/content/xdocs/index.xml +73 -0
- data/site/src/documentation/content/xdocs/machineLearning.xml +129 -0
- data/site/src/documentation/content/xdocs/neuralNetworks.xml +218 -0
- data/site/src/documentation/content/xdocs/site.xml +51 -0
- data/site/src/documentation/content/xdocs/svn.xml +31 -0
- data/site/src/documentation/content/xdocs/tabs.xml +35 -0
- data/site/src/documentation/resources/images/ai4r-logo.png +0 -0
- data/site/src/documentation/resources/images/c.png +0 -0
- data/site/src/documentation/resources/images/c_wbn.png +0 -0
- data/site/src/documentation/resources/images/c_wn.png +0 -0
- data/site/src/documentation/resources/images/ellipse-2.svg +30 -0
- data/site/src/documentation/resources/images/ero.gif +0 -0
- data/site/src/documentation/resources/images/europe2.png +0 -0
- data/site/src/documentation/resources/images/europe3.png +0 -0
- data/site/src/documentation/resources/images/fitness.png +0 -0
- data/site/src/documentation/resources/images/icon-a.png +0 -0
- data/site/src/documentation/resources/images/icon-b.png +0 -0
- data/site/src/documentation/resources/images/icon.png +0 -0
- data/site/src/documentation/resources/images/my_email.png +0 -0
- data/site/src/documentation/resources/images/project-logo.png +0 -0
- data/site/src/documentation/resources/images/rubyforge.png +0 -0
- data/site/src/documentation/resources/images/s.png +0 -0
- data/site/src/documentation/resources/images/s_wbn.png +0 -0
- data/site/src/documentation/resources/images/s_wn.png +0 -0
- data/site/src/documentation/resources/images/sigmoid.png +0 -0
- data/site/src/documentation/resources/images/sub-dir/icon-c.png +0 -0
- data/site/src/documentation/resources/images/t.png +0 -0
- data/site/src/documentation/resources/images/t_wbn.png +0 -0
- data/site/src/documentation/resources/images/t_wn.png +0 -0
- data/site/src/documentation/resources/schema/catalog.xcat +29 -0
- data/site/src/documentation/resources/schema/hello-v10.dtd +51 -0
- data/site/src/documentation/resources/schema/symbols-project-v10.ent +26 -0
- data/site/src/documentation/resources/stylesheets/hello2document.xsl +33 -0
- data/site/src/documentation/sitemap.xmap +66 -0
- data/site/src/documentation/skinconf.xml +418 -0
- data/site/src/documentation/translations/langcode.xml +29 -0
- data/site/src/documentation/translations/languages_de.xml +24 -0
- data/site/src/documentation/translations/languages_en.xml +24 -0
- data/site/src/documentation/translations/languages_es.xml +22 -0
- data/site/src/documentation/translations/languages_fr.xml +24 -0
- data/site/src/documentation/translations/languages_nl.xml +24 -0
- data/site/src/documentation/translations/menu.xml +33 -0
- data/site/src/documentation/translations/menu_af.xml +33 -0
- data/site/src/documentation/translations/menu_de.xml +33 -0
- data/site/src/documentation/translations/menu_es.xml +33 -0
- data/site/src/documentation/translations/menu_fr.xml +33 -0
- data/site/src/documentation/translations/menu_it.xml +33 -0
- data/site/src/documentation/translations/menu_nl.xml +33 -0
- data/site/src/documentation/translations/menu_no.xml +33 -0
- data/site/src/documentation/translations/menu_ru.xml +33 -0
- data/site/src/documentation/translations/menu_sk.xml +33 -0
- data/site/src/documentation/translations/tabs.xml +22 -0
- data/site/src/documentation/translations/tabs_de.xml +22 -0
- data/site/src/documentation/translations/tabs_es.xml +22 -0
- data/site/src/documentation/translations/tabs_fr.xml +22 -0
- data/site/src/documentation/translations/tabs_nl.xml +22 -0
- data/test/decision_tree/id3_test.rb +209 -0
- data/test/genetic_algorithm/chromosome_test.rb +55 -0
- data/test/genetic_algorithm/genetic_algorithm_test.rb +78 -0
- data/test/neural_network/backpropagation_test.rb +44 -0
- metadata +274 -0
data/README.rdoc
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
= Introduction
|
2
|
+
|
3
|
+
This project aims to produce ruby implementations of
|
4
|
+
algorithms covering several Artificial intelligence fields, including:
|
5
|
+
|
6
|
+
* Machine Learning (DecisionTree::ID3)
|
7
|
+
|
8
|
+
Decision Trees using an implementation of ID3 algorithm.
|
9
|
+
|
10
|
+
* Genetic algorithms (GeneticAlgorithm::GeneticSearch)
|
11
|
+
|
12
|
+
Implementation of GeneticSearch and Chromosome classes. The GeneticSearch is a generic class, and can be used to solved any kind of problems. The GeneticSearch class performs a stochastic search of the solution of a given problem.
|
13
|
+
|
14
|
+
* Neural network (NeuralNetwork::Backpropagation)
|
15
|
+
|
16
|
+
Implementation of neural networks using the Backpropagation supervised learning technique.
|
17
|
+
|
18
|
+
* Bayesian networks
|
19
|
+
|
20
|
+
TODO
|
21
|
+
|
22
|
+
= Where can I find the lastest code and info on this project?
|
23
|
+
|
24
|
+
http://ai4r.rubyforge.org
|
25
|
+
|
26
|
+
= How to install
|
27
|
+
|
28
|
+
1. Install the gem:
|
29
|
+
|
30
|
+
gem install http://rubyforge.org/frs/download.php/32923/ai4r-1.0.gem
|
31
|
+
|
32
|
+
2. Include require statements in your code:
|
33
|
+
|
34
|
+
require "rubygems"
|
35
|
+
require "decision_tree/id3"
|
36
|
+
require "neural_network/backpropagation"
|
37
|
+
require "genetic_algorithm/genetic_algorithm"
|
38
|
+
|
39
|
+
= Feedback
|
40
|
+
|
41
|
+
If you have some constructive comments about this project, please do send those
|
42
|
+
to me: Sergio Fierens (sergio(dot)fierens(at)gmail(dot)com)
|
43
|
+
|
44
|
+
= Warranty
|
45
|
+
|
46
|
+
This software is provided "as is" and without any express or implied warranties,
|
47
|
+
including, without limitation, the implied warranties of merchantibility and
|
48
|
+
fitness for a particular purpose.
|
@@ -0,0 +1,121 @@
|
|
1
|
+
zone,rooms,size,price
|
2
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
3
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
4
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
5
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
6
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
7
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
8
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
9
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[36K-45K]
|
10
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[36K-45K]
|
11
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[36K-45K]
|
12
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[29K-35K]
|
13
|
+
Moron Sur (GBA),2,[28 m2 - 39 m2],[36K-45K]
|
14
|
+
Moron Sur (GBA),2,[40 m2 - 50 m2],[36K-45K]
|
15
|
+
Moron Sur (GBA),2,[40 m2 - 50 m2],[29K-35K]
|
16
|
+
Moron Sur (GBA),2,[40 m2 - 50 m2],[29K-35K]
|
17
|
+
Moron Sur (GBA),2,[40 m2 - 50 m2],[56K-75K]
|
18
|
+
Moron Sur (GBA),3,[40 m2 - 50 m2],[36K-45K]
|
19
|
+
Moron Sur (GBA),2,[40 m2 - 50 m2],[29K-35K]
|
20
|
+
Moron Sur (GBA),2,[51 m2 - 59 m2],[36K-45K]
|
21
|
+
Moron Sur (GBA),3,[51 m2 - 59 m2],[46K-55K]
|
22
|
+
Moron Sur (GBA),3,[51 m2 - 59 m2],[36K-45K]
|
23
|
+
Moron Sur (GBA),3,[51 m2 - 59 m2],[36K-45K]
|
24
|
+
Moron Sur (GBA),3,[51 m2 - 59 m2],[36K-45K]
|
25
|
+
Moron Sur (GBA),3,[51 m2 - 59 m2],[36K-45K]
|
26
|
+
Moron Sur (GBA),3,[51 m2 - 59 m2],[46K-55K]
|
27
|
+
Moron Sur (GBA),2,[51 m2 - 59 m2],[46K-55K]
|
28
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[46K-55K]
|
29
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[46K-55K]
|
30
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[56K-75K]
|
31
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[56K-75K]
|
32
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[36K-45K]
|
33
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[36K-45K]
|
34
|
+
Moron Sur (GBA),3,[60 m2 - 70 m2],[56K-75K]
|
35
|
+
Moron Sur (GBA),3,[71 m2 - 85 m2],[46K-55K]
|
36
|
+
Moron Sur (GBA),3,[86 m2 - 100 m2],[46K-55K]
|
37
|
+
Moron Sur (GBA),4,[101 m2 - 125 m2],[101K-125K]
|
38
|
+
Moron Sur (GBA),3,[101 m2 - 125 m2],[76K-100K]
|
39
|
+
Moron Sur (GBA),4,[101 m2 - 125 m2],[170K-200K]
|
40
|
+
Moron Sur (GBA),4,[101 m2 - 125 m2],[76K-100K]
|
41
|
+
Moron Sur (GBA),4,[126 m2 - 160 m2],[56K-75K]
|
42
|
+
Moron Sur (GBA),4,[126 m2 - 160 m2],[126K-150K]
|
43
|
+
Recoleta (CABA),2,[28 m2 - 39 m2],[46K-55K]
|
44
|
+
Recoleta (CABA),2,[28 m2 - 39 m2],[56K-75K]
|
45
|
+
Recoleta (CABA),2,[28 m2 - 39 m2],[56K-75K]
|
46
|
+
Recoleta (CABA),2,[28 m2 - 39 m2],[46K-55K]
|
47
|
+
Recoleta (CABA),2,[40 m2 - 50 m2],[56K-75K]
|
48
|
+
Recoleta (CABA),2,[40 m2 - 50 m2],[76K-100K]
|
49
|
+
Recoleta (CABA),2,[40 m2 - 50 m2],[76K-100K]
|
50
|
+
Recoleta (CABA),2,[40 m2 - 50 m2],[56K-75K]
|
51
|
+
Recoleta (CABA),2,[40 m2 - 50 m2],[101K-125K]
|
52
|
+
Recoleta (CABA),2,[51 m2 - 59 m2],[101K-125K]
|
53
|
+
Recoleta (CABA),2,[51 m2 - 59 m2],[56K-75K]
|
54
|
+
Recoleta (CABA),2,[51 m2 - 59 m2],[76K-100K]
|
55
|
+
Recoleta (CABA),2,[51 m2 - 59 m2],[76K-100K]
|
56
|
+
Recoleta (CABA),2,[60 m2 - 70 m2],[56K-75K]
|
57
|
+
Recoleta (CABA),2,[60 m2 - 70 m2],[76K-100K]
|
58
|
+
Recoleta (CABA),3,[60 m2 - 70 m2],[101K-125K]
|
59
|
+
Recoleta (CABA),2,[60 m2 - 70 m2],[76K-100K]
|
60
|
+
Recoleta (CABA),2,[60 m2 - 70 m2],[76K-100K]
|
61
|
+
Recoleta (CABA),2,[60 m2 - 70 m2],[126K-150K]
|
62
|
+
Recoleta (CABA),3,[60 m2 - 70 m2],[76K-100K]
|
63
|
+
Recoleta (CABA),3,[60 m2 - 70 m2],[76K-100K]
|
64
|
+
Recoleta (CABA),2,[71 m2 - 85 m2],[152K-169K]
|
65
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[126K-150K]
|
66
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[152K-169K]
|
67
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[170K-200K]
|
68
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[101K-125K]
|
69
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[170K-200K]
|
70
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[76K-100K]
|
71
|
+
Recoleta (CABA),2,[71 m2 - 85 m2],[126K-150K]
|
72
|
+
Recoleta (CABA),3,[71 m2 - 85 m2],[126K-150K]
|
73
|
+
Recoleta (CABA),2,[71 m2 - 85 m2],[200K-275K]
|
74
|
+
Recoleta (CABA),3,[86 m2 - 100 m2],[152K-169K]
|
75
|
+
Recoleta (CABA),3,[86 m2 - 100 m2],[170K-200K]
|
76
|
+
Recoleta (CABA),4,[86 m2 - 100 m2],[126K-150K]
|
77
|
+
Recoleta (CABA),4,[86 m2 - 100 m2],[126K-150K]
|
78
|
+
Recoleta (CABA),3,[86 m2 - 100 m2],[200K-275K]
|
79
|
+
Recoleta (CABA),3,[86 m2 - 100 m2],[126K-150K]
|
80
|
+
Recoleta (CABA),3,[86 m2 - 100 m2],[152K-169K]
|
81
|
+
Recoleta (CABA),3,[86 m2 - 100 m2],[200K-275K]
|
82
|
+
Recoleta (CABA),3,[101 m2 - 125 m2],[200K-275K]
|
83
|
+
Recoleta (CABA),3,[101 m2 - 125 m2],[170K-200K]
|
84
|
+
Recoleta (CABA),4,[101 m2 - 125 m2],[170K-200K]
|
85
|
+
Recoleta (CABA),4,[101 m2 - 125 m2],[200K-275K]
|
86
|
+
Recoleta (CABA),3,[101 m2 - 125 m2],[56K-75K]
|
87
|
+
Recoleta (CABA),4,[101 m2 - 125 m2],[200K-275K]
|
88
|
+
Recoleta (CABA),4,[101 m2 - 125 m2],[170K-200K]
|
89
|
+
Recoleta (CABA),3,[126 m2 - 160 m2],[200K-275K]
|
90
|
+
Recoleta (CABA),4,[126 m2 - 160 m2],[200K-275K]
|
91
|
+
Recoleta (CABA),3,[126 m2 - 160 m2],[152K-169K]
|
92
|
+
Recoleta (CABA),3,[126 m2 - 160 m2],[200K-275K]
|
93
|
+
Recoleta (CABA),4,[126 m2 - 160 m2],>275K
|
94
|
+
Recoleta (CABA),3,[126 m2 - 160 m2],[200K-275K]
|
95
|
+
Recoleta (CABA),4,[126 m2 - 160 m2],>275K
|
96
|
+
Recoleta (CABA),3,[126 m2 - 160 m2],[170K-200K]
|
97
|
+
Tigre (GBA),2,[28 m2 - 39 m2],[56K-75K]
|
98
|
+
Tigre (GBA),2,[40 m2 - 50 m2],[56K-75K]
|
99
|
+
Tigre (GBA),2,[40 m2 - 50 m2],[76K-100K]
|
100
|
+
Tigre (GBA),2,[51 m2 - 59 m2],[101K-125K]
|
101
|
+
Tigre (GBA),2,[51 m2 - 59 m2],[101K-125K]
|
102
|
+
Tigre (GBA),3,[51 m2 - 59 m2],[101K-125K]
|
103
|
+
Tigre (GBA),3,[51 m2 - 59 m2],[101K-125K]
|
104
|
+
Tigre (GBA),3,[51 m2 - 59 m2],[126K-150K]
|
105
|
+
Tigre (GBA),2,[71 m2 - 85 m2],[126K-150K]
|
106
|
+
Tigre (GBA),2,[71 m2 - 85 m2],[126K-150K]
|
107
|
+
Tigre (GBA),2,[71 m2 - 85 m2],[126K-150K]
|
108
|
+
Tigre (GBA),3,[86 m2 - 100 m2],[170K-200K]
|
109
|
+
Tigre (GBA),4,[86 m2 - 100 m2],[152K-169K]
|
110
|
+
Tigre (GBA),4,[86 m2 - 100 m2],[152K-169K]
|
111
|
+
Tigre (GBA),3,[86 m2 - 100 m2],[152K-169K]
|
112
|
+
Tigre (GBA),3,[86 m2 - 100 m2],[152K-169K]
|
113
|
+
Tigre (GBA),3,[101 m2 - 125 m2],[152K-169K]
|
114
|
+
Tigre (GBA),4,[101 m2 - 125 m2],[170K-200K]
|
115
|
+
Tigre (GBA),4,[101 m2 - 125 m2],[170K-200K]
|
116
|
+
Tigre (GBA),4,[101 m2 - 125 m2],[200K-275K]
|
117
|
+
Tigre (GBA),4,[101 m2 - 125 m2],[200K-275K]
|
118
|
+
Tigre (GBA),4,[101 m2 - 125 m2],[170K-200K]
|
119
|
+
Tigre (GBA),4,[101 m2 - 125 m2],>275K
|
120
|
+
Tigre (GBA),4,[101 m2 - 125 m2],>275K
|
121
|
+
Tigre (GBA),4,[126 m2 - 160 m2],>275K
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# Author:: Sergio Fierens
|
2
|
+
# License:: MPL 1.1
|
3
|
+
# Project:: ai4r
|
4
|
+
# Url:: http://ai4r.rubyforge.org/
|
5
|
+
#
|
6
|
+
# You can redistribute it and/or modify it under the terms of
|
7
|
+
# the Mozilla Public License version 1.1 as published by the
|
8
|
+
# Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
|
9
|
+
|
10
|
+
require File.dirname(__FILE__) + '/../../lib/decision_tree/id3'
|
11
|
+
require 'csv'
|
12
|
+
|
13
|
+
# Load data from data_set.csv
|
14
|
+
data_set = []
|
15
|
+
CSV::Reader.parse(File.open("#{File.dirname(__FILE__)}/data_set.csv", 'r')) do |row|
|
16
|
+
data_set << row
|
17
|
+
end
|
18
|
+
data_labels = data_set.shift
|
19
|
+
|
20
|
+
# Build ID3 tree
|
21
|
+
id3 = DecisionTree::ID3.new(data_set, data_labels)
|
22
|
+
|
23
|
+
# Show rules
|
24
|
+
puts "Discovered rules are:"
|
25
|
+
puts id3.to_s
|
26
|
+
|
27
|
+
# Try to predict some values
|
28
|
+
puts "['Moron Sur (GBA)','4','[86 m2 - 100 m2]'] => " + id3.eval(['Moron Sur (GBA)','4','[86 m2 - 100 m2]'])
|
29
|
+
puts "['Moron Sur (GBA)','3','[101 m2 - 125 m2]'] => " + id3.eval(['Moron Sur (GBA)','3','[101 m2 - 125 m2]'])
|
30
|
+
puts "['Recoleta (CABA)','3','[86 m2 - 100 m2]'] => " + id3.eval(['Recoleta (CABA)','3','[86 m2 - 100 m2]',])
|
31
|
+
puts "['Tigre (GBA)','3','[71 m2 - 85 m2]'] => " + id3.eval(['Tigre (GBA)','3','[71 m2 - 85 m2]',])
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Discovered rules are:
|
2
|
+
if size=='[28 m2 - 39 m2]' and zone=='Moron Sur (GBA)' then price='[29K-35K]'
|
3
|
+
elsif size=='[28 m2 - 39 m2]' and zone=='Recoleta (CABA)' then price='[46K-55K]'
|
4
|
+
elsif size=='[28 m2 - 39 m2]' and zone=='Tigre (GBA)' then price='[56K-75K]'
|
5
|
+
elsif size=='[40 m2 - 50 m2]' and zone=='Moron Sur (GBA)' then price='[29K-35K]'
|
6
|
+
elsif size=='[40 m2 - 50 m2]' and zone=='Recoleta (CABA)' then price='[56K-75K]'
|
7
|
+
elsif size=='[40 m2 - 50 m2]' and zone=='Tigre (GBA)' then price='[56K-75K]'
|
8
|
+
elsif size=='[51 m2 - 59 m2]' and zone=='Moron Sur (GBA)' then price='[36K-45K]'
|
9
|
+
elsif size=='[51 m2 - 59 m2]' and zone=='Recoleta (CABA)' then price='[76K-100K]'
|
10
|
+
elsif size=='[51 m2 - 59 m2]' and zone=='Tigre (GBA)' then price='[101K-125K]'
|
11
|
+
elsif size=='[60 m2 - 70 m2]' and zone=='Moron Sur (GBA)' then price='[56K-75K]'
|
12
|
+
elsif size=='[60 m2 - 70 m2]' and zone=='Recoleta (CABA)' then price='[76K-100K]'
|
13
|
+
elsif size=='[71 m2 - 85 m2]' and zone=='Moron Sur (GBA)' then price='[46K-55K]'
|
14
|
+
elsif size=='[71 m2 - 85 m2]' and zone=='Recoleta (CABA)' then price='[126K-150K]'
|
15
|
+
elsif size=='[71 m2 - 85 m2]' and zone=='Tigre (GBA)' then price='[126K-150K]'
|
16
|
+
elsif size=='[86 m2 - 100 m2]' and zone=='Moron Sur (GBA)' then price='[46K-55K]'
|
17
|
+
elsif size=='[86 m2 - 100 m2]' and zone=='Recoleta (CABA)' then price='[126K-150K]'
|
18
|
+
elsif size=='[86 m2 - 100 m2]' and zone=='Tigre (GBA)' then price='[152K-169K]'
|
19
|
+
elsif size=='[101 m2 - 125 m2]' and zone=='Moron Sur (GBA)' then price='[76K-100K]'
|
20
|
+
elsif size=='[101 m2 - 125 m2]' and zone=='Recoleta (CABA)' then price='[200K-275K]'
|
21
|
+
elsif size=='[101 m2 - 125 m2]' and zone=='Tigre (GBA)' then price='[170K-200K]'
|
22
|
+
elsif size=='[126 m2 - 160 m2]' and zone=='Moron Sur (GBA)' then price='[56K-75K]'
|
23
|
+
elsif size=='[126 m2 - 160 m2]' and zone=='Recoleta (CABA)' then price='[200K-275K]'
|
24
|
+
elsif size=='[126 m2 - 160 m2]' and zone=='Tigre (GBA)' then price='>275K'
|
25
|
+
else raise 'There was not enough information during training to do a proper induction for this data element' end
|
26
|
+
['Moron Sur (GBA)','4','[86 m2 - 100 m2]'] => [46K-55K]
|
27
|
+
['Moron Sur (GBA)','3','[101 m2 - 125 m2]'] => [76K-100K]
|
28
|
+
['Recoleta (CABA)','3','[86 m2 - 100 m2]'] => [126K-150K]
|
29
|
+
['Tigre (GBA)','3','[71 m2 - 85 m2]'] => [126K-150K]
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Author:: Sergio Fierens
|
2
|
+
# License:: MPL 1.1
|
3
|
+
# Project:: ai4r
|
4
|
+
# Url:: http://ai4r.rubyforge.org/
|
5
|
+
#
|
6
|
+
# You can redistribute it and/or modify it under the terms of
|
7
|
+
# the Mozilla Public License version 1.1 as published by the
|
8
|
+
# Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
|
9
|
+
|
10
|
+
require File.dirname(__FILE__) + '/../../lib/genetic_algorithm/genetic_algorithm'
|
11
|
+
require 'csv'
|
12
|
+
|
13
|
+
# Load data from data_set.csv
|
14
|
+
data_set = []
|
15
|
+
CSV::Reader.parse(File.open("#{File.dirname(__FILE__)}/travel_cost.csv", 'r')) do |row|
|
16
|
+
data_set << row
|
17
|
+
end
|
18
|
+
data_labels = data_set.shift
|
19
|
+
data_set.collect! do |column|
|
20
|
+
column.collect { |element| element.to_f}
|
21
|
+
end
|
22
|
+
|
23
|
+
GeneticAlgorithm::Chromosome.set_cost_matrix(data_set)
|
24
|
+
|
25
|
+
puts "Some random selected tours costs: "
|
26
|
+
3.times do
|
27
|
+
c = GeneticAlgorithm::Chromosome.seed
|
28
|
+
puts "COST #{c.fitness} TOUR: #{c.data.collect{ |c| data_labels[c]} * ', '}"
|
29
|
+
end
|
30
|
+
|
31
|
+
puts "Beginning genetic search, please wait... "
|
32
|
+
search = GeneticAlgorithm::GeneticSearch.new(800, 100)
|
33
|
+
result = search.run
|
34
|
+
puts "BEST COST FOUND #{result.fitness} TOUR: #{result.data.collect{ |c| data_labels[c]} * ', '}"
|
35
|
+
|
36
|
+
# $7611.99 TOUR: Moscow, Kiev, Warsaw, Hamburg, Berlin, Vienna, Munich, Milan, Rome, Barcelona, Madrid, Paris, Brussels, London, Dublin
|
37
|
+
# $7659.81 TOUR: Moscow, Kiev, Warsaw, Vienna, Munich, Berlin, Hamburg, Brussels, Dublin, London, Paris, Milan, Rome, Barcelona, Madrid
|
38
|
+
# $7596.74 TOUR: Moscow, Kiev, Warsaw, Berlin, Hamburg, Vienna, Munich, Milan, Rome, Barcelona, Madrid, Paris, Brussels, London Dublin
|
39
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"Barcelona","Berlin","Brussels","Dublin","Hamburg","Kiev","London","Madrid","Milan","Moscow","Munich","Paris","Rome","Vienna","Warsaw"
|
2
|
+
0,"1497.61","1062.89","1469.29","1471.78","2391.06","1137.67","504.64","725.12","3006.93","1054.55","831.59","856.69","1347.43","1862.33"
|
3
|
+
"1497.61",0,"651.62","1315.16","254.51","1204.00","929.97","1867.69","840.72","1607.99","501.97","876.96","1181.67","523.61","516.06"
|
4
|
+
"1062.89","651.62",0,"773.20","489.76","1836.20","318.72","1314.30","696.61","2253.26","601.87","261.29","1171.34","914.81","1159.85"
|
5
|
+
"1469.29","1315.16","773.20",0,"1073.36","2513.69","462.60","1449.96","1413.37","2792.41","1374.91","776.83","1882.22","1680.00","1823.72"
|
6
|
+
"1471.78","254.51","489.76","1073.36",0,"1440.34","720.12","1785.33","900.01","1779.93","610.17","744.63","1307.51","742.79","750.49"
|
7
|
+
"2391.06","1204.00","1836.20","2513.69","1440.34",0,"2131.20","2859.32","1672.69","756.61","1391.36","2022.76","1673.74","1052.76","690.12"
|
8
|
+
"1137.67","929.97","318.72","462.60","720.12","2131.20",0,"1263.37","957.91","2498.32","916.23","340.55","1431.21","1233.48","1445.85"
|
9
|
+
"504.64","1867.69","1314.30","1449.96","1785.33","2859.32","1263.37",0,"1187.73","3437.70","1484.53","1053.40","1360.80","1807.09","2288.42"
|
10
|
+
"725.12","840.72","696.61","1413.37","900.01","1672.69","957.91","1187.73",0,"2283.19","348.89","641.31","476.00","623.36","1143.01"
|
11
|
+
"3006.93","1607.99","2253.26","2792.41","1779.93","756.61","2498.32","3437.70","2283.19",0,"1957.15","2484.92","2374.26","1669.22","1149.41"
|
12
|
+
"1054.55","501.97","601.87","1374.91","610.17","1391.36","916.23","1484.53","348.89","1957.15",0,"685.14","698.04","354.42","809.02"
|
13
|
+
"831.59","876.96","261.29","776.83","744.63","2022.76","340.55","1053.40","641.31","2484.92","685.14",0,"1105.76","1033.73","1365.91"
|
14
|
+
"856.69","1181.67","1171.34","1882.22","1307.51","1673.74","1431.21","1360.80","476.00","2374.26","698.04","1105.76",0,"763.26","1316.24"
|
15
|
+
"1347.43","523.61","914.81","1680.00","742.79","1052.76","1233.48","1807.09","623.36","1669.22","354.42","1033.73","763.26",0,"557.43"
|
16
|
+
"1862.33","516.06","1159.85","1823.72","750.49","690.12","1445.85","2288.42","1143.01","1149.41","809.02","1365.91","1316.24","557.43",0
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# Author:: Sergio Fierens
|
2
|
+
# License:: MPL 1.1
|
3
|
+
# Project:: ai4r
|
4
|
+
# Url:: http://ai4r.rubyforge.org/
|
5
|
+
#
|
6
|
+
# You can redistribute it and/or modify it under the terms of
|
7
|
+
# the Mozilla Public License version 1.1 as published by the
|
8
|
+
# Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
|
9
|
+
|
10
|
+
require File.dirname(__FILE__) + '/training_patterns'
|
11
|
+
require File.dirname(__FILE__) + '/patterns_with_noise'
|
12
|
+
require File.dirname(__FILE__) + '/patterns_with_base_noise'
|
13
|
+
require File.dirname(__FILE__) + '/../../lib/neural_network/backpropagation'
|
14
|
+
require 'benchmark'
|
15
|
+
|
16
|
+
times = Benchmark.measure do
|
17
|
+
|
18
|
+
net = NeuralNetwork::Backpropagation.new([256, 3])
|
19
|
+
|
20
|
+
tr_input = TRIANGLE.flatten.collect { |input| input.to_f / 10}
|
21
|
+
sq_input = SQUARE.flatten.collect { |input| input.to_f / 10}
|
22
|
+
cr_input = CROSS.flatten.collect { |input| input.to_f / 10}
|
23
|
+
|
24
|
+
tr_with_noise = TRIANGLE_WITH_NOISE.flatten.collect { |input| input.to_f / 10}
|
25
|
+
sq_with_noise = SQUARE_WITH_NOISE.flatten.collect { |input| input.to_f / 10}
|
26
|
+
cr_with_noise = CROSS_WITH_NOISE.flatten.collect { |input| input.to_f / 10}
|
27
|
+
|
28
|
+
tr_with_base_noise = TRIANGLE_WITH_BASE_NOISE.flatten.collect { |input| input.to_f / 10}
|
29
|
+
sq_with_base_noise = SQUARE_WITH_BASE_NOISE.flatten.collect { |input| input.to_f / 10}
|
30
|
+
cr_with_base_noise = CROSS_WITH_BASE_NOISE.flatten.collect { |input| input.to_f / 10}
|
31
|
+
|
32
|
+
puts "Training the network, please wait."
|
33
|
+
200.times do
|
34
|
+
net.train(tr_input, [1,0,0])
|
35
|
+
net.train(sq_input, [0,1,0])
|
36
|
+
net.train(cr_input, [0,0,1])
|
37
|
+
end
|
38
|
+
|
39
|
+
def result_label(result)
|
40
|
+
if result[0] > result[1] && result[0] > result[2]
|
41
|
+
"TRIANGLE"
|
42
|
+
elsif result[1] > result[2]
|
43
|
+
"SQUARE"
|
44
|
+
else
|
45
|
+
"CROSS"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
puts "Training Examples"
|
50
|
+
puts "#{net.eval(tr_input).inspect} => #{result_label(net.eval(tr_input))}"
|
51
|
+
puts "#{net.eval(sq_input).inspect} => #{result_label(net.eval(sq_input))}"
|
52
|
+
puts "#{net.eval(cr_input).inspect} => #{result_label(net.eval(cr_input))}"
|
53
|
+
puts "Examples with noise"
|
54
|
+
puts "#{net.eval(tr_with_noise).inspect} => #{result_label(net.eval(tr_with_noise))}"
|
55
|
+
puts "#{net.eval(sq_with_noise).inspect} => #{result_label(net.eval(sq_with_noise))}"
|
56
|
+
puts "#{net.eval(cr_with_noise).inspect} => #{result_label(net.eval(cr_with_noise))}"
|
57
|
+
puts "Examples with base noise"
|
58
|
+
puts "#{net.eval(tr_with_base_noise).inspect} => #{result_label(net.eval(tr_with_base_noise))}"
|
59
|
+
puts "#{net.eval(sq_with_base_noise).inspect} => #{result_label(net.eval(sq_with_base_noise))}"
|
60
|
+
puts "#{net.eval(cr_with_base_noise).inspect} => #{result_label(net.eval(cr_with_base_noise))}"
|
61
|
+
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
puts "Elapsed time: #{times}"
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Author:: Sergio Fierens
|
2
|
+
# License:: MPL 1.1
|
3
|
+
# Project:: ai4r
|
4
|
+
# Url:: http://ai4r.rubyforge.org/
|
5
|
+
#
|
6
|
+
# You can redistribute it and/or modify it under the terms of
|
7
|
+
# the Mozilla Public License version 1.1 as published by the
|
8
|
+
# Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
|
9
|
+
|
10
|
+
|
11
|
+
TRIANGLE_WITH_BASE_NOISE = [
|
12
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
13
|
+
[ 3, 3, 3, 3, 3, 3, 4, 10, 10, 4, 3, 3, 3, 3, 3, 3],
|
14
|
+
[ 3, 3, 3, 3, 3, 3, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3],
|
15
|
+
[ 3, 3, 3, 3, 3, 4, 10, 4, 4, 10, 4, 3, 3, 3, 3, 3],
|
16
|
+
[ 3, 3, 3, 3, 3, 8, 8, 3, 3, 8, 8, 3, 3, 3, 3, 3],
|
17
|
+
[ 3, 3, 3, 3, 4, 10, 4, 3, 3, 4, 10, 4, 3, 3, 3, 3],
|
18
|
+
[ 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3],
|
19
|
+
[ 3, 3, 3, 4, 10, 4, 3, 3, 3, 3, 4, 10, 4, 3, 3, 3],
|
20
|
+
[ 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3],
|
21
|
+
[ 3, 3, 4, 10, 4, 3, 3, 3, 3, 3, 3, 4, 10, 4, 3, 3],
|
22
|
+
[ 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3],
|
23
|
+
[ 3, 4, 10, 4, 3, 3, 3, 3, 3, 3, 3, 3, 4, 10, 4, 3],
|
24
|
+
[ 3, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8, 8, 3],
|
25
|
+
[ 4, 10, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 10, 4],
|
26
|
+
[ 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8, 8],
|
27
|
+
[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
|
28
|
+
]
|
29
|
+
|
30
|
+
SQUARE_WITH_BASE_NOISE = [
|
31
|
+
[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
32
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
33
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
34
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
35
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
36
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
37
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
38
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
39
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
40
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
41
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
42
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
43
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
44
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
45
|
+
[10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10],
|
46
|
+
[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
|
47
|
+
|
48
|
+
]
|
49
|
+
|
50
|
+
CROSS_WITH_BASE_NOISE = [
|
51
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
52
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
53
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
54
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
55
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
56
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
57
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
58
|
+
[ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],
|
59
|
+
[ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],
|
60
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
61
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
62
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
63
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
64
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
65
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3],
|
66
|
+
[ 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 3, 3, 3]
|
67
|
+
]
|
68
|
+
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# Author:: Sergio Fierens
|
2
|
+
# License:: MPL 1.1
|
3
|
+
# Project:: ai4r
|
4
|
+
# Url:: http://ai4r.rubyforge.org/
|
5
|
+
#
|
6
|
+
# You can redistribute it and/or modify it under the terms of
|
7
|
+
# the Mozilla Public License version 1.1 as published by the
|
8
|
+
# Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
|
9
|
+
|
10
|
+
TRIANGLE_WITH_NOISE = [
|
11
|
+
[ 1, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0],
|
12
|
+
[ 0, 0, 0, 0, 3, 0, 1, 9, 9, 1, 0, 0, 0, 0, 3, 0],
|
13
|
+
[ 0, 3, 0, 0, 0, 0, 5, 1, 5, 3, 0, 0, 0, 0, 0, 7],
|
14
|
+
[ 0, 0, 0, 7, 0, 1, 9, 1, 1, 9, 1, 0, 0, 0, 3, 0],
|
15
|
+
[ 0, 0, 0, 0, 0, 3, 5, 0, 3, 5, 5, 0, 0, 0, 0, 0],
|
16
|
+
[ 0, 1, 0, 0, 1, 9, 1, 0, 1, 1, 9, 1, 0, 0, 0, 0],
|
17
|
+
[ 1, 0, 0, 0, 5, 5, 0, 0, 0, 0, 5, 5, 7, 0, 0, 3],
|
18
|
+
[ 0, 0, 3, 3, 9, 1, 0, 0, 1, 0, 1, 9, 1, 0, 0, 0],
|
19
|
+
[ 0, 0, 0, 5, 5, 0, 3, 7, 0, 0, 0, 5, 5, 0, 0, 0],
|
20
|
+
[ 0, 0, 1, 9, 1, 0, 0, 0, 0, 0, 0, 1, 9, 1, 0, 0],
|
21
|
+
[ 0, 0, 5, 5, 0, 0, 0, 0, 3, 0, 0, 0, 5, 5, 0, 0],
|
22
|
+
[ 0, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 1, 0],
|
23
|
+
[ 0, 5, 5, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 5, 5, 0],
|
24
|
+
[ 1, 9, 1, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 9, 1],
|
25
|
+
[ 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5],
|
26
|
+
[10, 10, 10, 10, 1, 10, 10, 10, 10, 10, 1, 10, 10, 10, 10, 10]
|
27
|
+
]
|
28
|
+
|
29
|
+
SQUARE_WITH_NOISE = [
|
30
|
+
[10, 3, 10, 10, 10, 6, 10, 10, 10, 10, 10, 4, 10, 10, 10, 10],
|
31
|
+
[10, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10],
|
32
|
+
[10, 0, 3, 0, 0, 0, 0, 7, 0, 6, 1, 0, 0, 0, 0, 0],
|
33
|
+
[10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10],
|
34
|
+
[10, 0, 4, 0, 4, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 10],
|
35
|
+
[10, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
|
36
|
+
[10, 0, 0, 0, 3, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10],
|
37
|
+
[10, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 7, 0, 0, 10],
|
38
|
+
[10, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10],
|
39
|
+
[10, 0, 7, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10],
|
40
|
+
[10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 7, 10],
|
41
|
+
[10, 0, 3, 0, 4, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 10],
|
42
|
+
[10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10],
|
43
|
+
[10, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 10],
|
44
|
+
[10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10],
|
45
|
+
[10, 10, 10, 10, 3, 10, 10, 10, 10, 0, 10, 10, 1, 10, 1, 10]
|
46
|
+
|
47
|
+
]
|
48
|
+
|
49
|
+
CROSS_WITH_NOISE = [
|
50
|
+
[ 0, 0, 0, 0, 0, 0, 3, 3, 5, 0, 3, 0, 0, 0, 1, 0],
|
51
|
+
[ 0, 1, 0, 0, 0, 1, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0],
|
52
|
+
[ 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 3, 0, 0, 0],
|
53
|
+
[ 0, 0, 1, 8, 0, 0, 0, 5, 5, 0, 4, 0, 0, 0, 1, 0],
|
54
|
+
[ 0, 0, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, 1, 0, 0, 0],
|
55
|
+
[ 0, 0, 0, 8, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 1],
|
56
|
+
[ 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 3, 0, 0, 0, 0, 0],
|
57
|
+
[ 5, 5, 5, 8, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5],
|
58
|
+
[ 5, 5, 5, 5, 5, 5, 5, 5, 1, 5, 5, 5, 5, 1, 0, 0],
|
59
|
+
[ 0, 0, 0, 8, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0],
|
60
|
+
[ 0, 0, 0, 0, 0, 0, 0, 5, 5, 4, 0, 0, 0, 0, 0, 0],
|
61
|
+
[ 0, 0, 0, 0, 0, 4, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0],
|
62
|
+
[ 4, 0, 0, 4, 0, 0, 0, 5, 5, 0, 0, 0, 1, 0, 0, 0],
|
63
|
+
[ 0, 0, 0, 0, 0, 1, 0, 5, 4, 4, 3, 0, 0, 0, 0, 0],
|
64
|
+
[ 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 10, 0, 0, 0],
|
65
|
+
[ 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0]
|
66
|
+
]
|