Compare commits

..

18 Commits

Author SHA1 Message Date
3a6d0b9465 Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 03:33:34 +00:00
f9505a932a Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 03:26:11 +00:00
cf7bb6590d Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 03:23:10 +00:00
77f8acbdd8 Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 03:22:42 +00:00
81977d051f Prześlij pliki do 'images/Tree' 2020-05-13 03:09:27 +00:00
e5ad6c7ab2 Usuń 'Main.cpp' 2020-05-13 03:06:42 +00:00
bf2253580d Working decision tree in main 2020-05-13 03:06:13 +00:00
4917bd457d Zaktualizuj 'notatki/11_05B' 2020-05-13 01:52:55 +00:00
95df84c69e Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 01:19:31 +00:00
2388576cc1 Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 01:19:02 +00:00
85eefa0954 Prześlij pliki do 'Sklearn' 2020-05-13 01:16:47 +00:00
fd5f23258b Prześlij pliki do 'Sklearn/.idea' 2020-05-13 01:16:18 +00:00
d99f57ce41 Prześlij pliki do 'Sklearn/.idea/inspectionProfiles' 2020-05-13 01:16:05 +00:00
92b10ab523 Prześlij pliki do 'Sklearn' 2020-05-13 01:15:10 +00:00
e1336ab5c9 Prześlij pliki do 'Sklearn' 2020-05-13 01:14:09 +00:00
70908a51ba Usuń 'initial.txt' 2020-05-13 01:09:56 +00:00
1dbb64001f Zaktualizuj 'Raport- drzewa decyzyjne.md' 2020-05-13 01:09:33 +00:00
115670987d Raport- drzewa decyzyjne 2020-05-13 01:06:51 +00:00
78 changed files with 1685 additions and 7765 deletions

1587
Main.cpp

File diff suppressed because it is too large Load Diff

View File

@ -111,8 +111,6 @@ void stanPola(int x, int y) {
//[x][x][0] = 3 - środek i nawóz
//[x][x][1] - wartość wzrostu rośliny
polecenie = "python pliki/injectCode.py 1 ";
if (stan[x][y][0] == 0)
polecenie.append("0 0 ");
if (stan[x][y][0] == 1)
@ -124,8 +122,6 @@ void stanPola(int x, int y) {
int w = (stan[x][y][1]);
std::string s = std::to_string(w);
polecenie.append(s);
decisionTree(polecenie);
}
```
@ -138,21 +134,6 @@ void decisionTree(string polecenie) {
std::string str = polecenie;
const char* c = str.c_str();
system(c);
int line = 0;
ifstream inFile;
inFile.open("pliki/dec.txt");
if (!inFile) {
cout << "Unable to open file";
exit(1); // terminate with error
}
while (inFile >> line) {
decyzja = line;
}
inFile.close();
akcja();
}
```
#### injectCode(): [python]
@ -163,34 +144,28 @@ import sys
def prediction(warzywo, nawoz ,srodek, stan_wzrostu):
filename = 'pliki/decisionTree.sav'
tree = pickle.load(open(filename, 'rb'))
val = (tree.predict([[warzywo, nawoz, srodek, stan_wzrostu]]))
save(val)
def save(prediction):
pred = str(prediction)
plik = open('pliki/dec.txt', 'w')
plik.write(pred[1])
plik.close()
filename = 'decisionTree.sav'
tree = pickle.load(open(filename, 'rb'))
val = (tree.predict([[warzywo, nawoz, srodek, stan_wzrostu]]))
print(decision(val))
def decision(prediction):
if prediction == 0:
return "Nie_podejmuj_dzialania"
elif prediction == 1:
return "Zastosuj_nawoz"
elif prediction == 2:
return "Zastosuj_srodek"
elif prediction == 4:
return "Zbierz"
elif prediction == 5:
return "Roslina_juz_zgnila__zbierz_i_wyrzuc"
if prediction == 0:
return "Nie_podejmuj_dzialania"
elif prediction == 1:
return "Zastosuj_nawoz"
elif prediction == 2:
return "Zastosuj_srodek"
elif prediction == 4:
return "Zbierz"
elif prediction == 5:
return "Roslina_juz_zgnila__zbierz_i_wyrzuc"
if __name__ == '__main__':
# Map command line arguments to function arguments.
prediction(*sys.argv[1:])
# Map command line arguments to function arguments.
prediction(*sys.argv[1:])
```
Generowane polecenie wygląda w ten sposób:
```
@ -198,6 +173,7 @@ python injectCode.py a b c d
```
Gdzie:
* a -> rodzaj warzywa
* 1: "burak"
* b -> czy roślina była nawożona
* 0: "nie"
* 1: "tak"

View File

@ -1,209 +0,0 @@
##Jarosław Zbąski raport z podprojektu
---
#Wybrana metoda:
---
Do realizacji podprojektu wykorzystano drzewa decyzyjne wskazujące którą roślinę (jeśli w ogóle) należy posadzić na danym polu. Drzewo decyzję podejmuje na podstawie poszczególnych parametrów gleby:
-żyzność (z-żyzna, j-jałowa)
-nawodnienie (n - nawodniona, s - sucha)
-nasłonecznienie (s - w słońcu, c w cieniu)
-kwasowość gleby (k kwasowa, n neutralna, z - zasadowa)
#Uczenie modelu:
---
Dane treningowe:
```
training_data = [
#zyznosc, nawodnienie, cien, kwasowość, grupa
['z', 'n', 's', 'z', 1],
['z', 'n', 's', 'n', 1],
['j', 'n', 's', 'z', 1],
['z', 's', 's', 'n', 1],
['j', 'n', 'c', 'n', 1],
['z', 'n', 's', 'k', 1],
['z', 'n', 'c', 'k', 2],
['z', 's', 's', 'k', 2],
['z', 's', 'c', 'k', 2],
['j', 'n', 's', 'k', 2],
['z', 's', 'c', 'z', 3],
['j', 'n', 's', 'n', 3]
]
```
Budowanie drzewa decyzyjnego opiera się na podziale gałęzi względem algorytmu CART. Ma ono postać ciągu pytań, na które odpowiedzi determinują kolejne pytania, bądź kończą etap. W wyniku otrzymujemy strukturę drzewa, która w węzłach końcowych nie zawiera już pytań, lecz same odpowiedzi. Dodatkowo wypisuje zestaw danych pasujących do liścia, z zestawu treningowego.
```
def build_tree(rows):
gain, question = find_best_split(rows)
if gain == 0:
return Leaf(rows)
true_rows, false_rows = partition(rows, question)
true_branch = build_tree(true_rows)
false_branch = build_tree(false_rows)
return Decision_Node(question, true_branch, false_branch)
```
Znajdowanie najlepszego podziału opiera się głównie na Współczynniku Giniego, który mierzy stopień niejednorodności i dzieli ją przez ilość pozostałych zestawów testowych (entropia), co daje nam przyrost informacji.
```
def find_best_split(rows):
best_gain = 0
best_question = None
current_uncertainty = gini(rows)
n_features = len(rows[0]) - 1
for col in range(n_features):
values = set([row[col] for row in rows])
for val in values:
question = Question(col, val)
true_rows, false_rows = partition(rows, question)
if len(true_rows) == 0 or len(false_rows) == 0:
continue
gain = info_gain(true_rows, false_rows, current_uncertainty)
if gain >= best_gain:
best_gain, best_question = gain, question
return best_gain, best_question
```
Drzewo powstałe poprzez wykonanie metody print_tree(node,spacing) na zestawie testowym:
```
Czy kwasowosc == k?
--> True:
Czy cien == s?
--> True:
Czy nawodnienie == n?
--> True:
Czy zyznosc == j?
--> True:
Predict {2: 1}
--> False:
Predict {1: 1}
--> False:
Predict {2: 1}
--> False:
Predict {2: 2}
--> False:
Czy cien == s?
--> True:
Czy zyznosc == j?
--> True:
Czy kwasowosc == n?
--> True:
Predict {3: 1}
--> False:
Predict {1: 1}
--> False:
Predict {1: 3}
--> False:
Czy kwasowosc == n?
--> True:
Predict {1: 1}
--> False:
Predict {3: 1}
```
#Implementacja w C++:
---
Komunikacja między pythonem a cpp zachodzi przez pliki dane.txt i decyzje.txt. W pliku dane.txt cpp wypisuje stan całego pola w oddzielonych spacją kolumnach począwszy od indeksu x=1,y=1 aż po x=25,y=25. Decyzje podjęte przez drzewo decyzyjne wypisane w pliku decyzje.txt zawierają symbol rośliny lub pola jakie mają się znajdować na polu (również w całej przestrzeni pola).
Zestaw testowych danych:
```
void testSI1()
{
for (int i = 1; i < 26; i++)
{
for (int j = 1; j < 26; j++)
{
if (j % 3 == 0)
{
pole[i][j][2] = 'z'; //zyzne
pole[i][j][3] = 'n'; //nawodnione
pole[i][j][4] = 'c'; //w cieniu
pole[i][j][5] = 'k'; //kwasne
}
else
{
if (j % 3 == 1)
{
pole[i][j][2] = 'j'; //jalowe
pole[i][j][3] = 'n'; //nawodnione
pole[i][j][4] = 's'; //w sloncu
pole[i][j][5] = 'n'; //neutralne
}
else
{
pole[i][j][2] = 'z'; //zyzne
pole[i][j][3] = 's'; //suche
pole[i][j][4] = 's'; //sloneczne
pole[i][j][5] = 'z'; //zasadowe
}
}
}
}
}
```
Funkcja wysyłająca stan pola:
```
void sendState()
{
ofstream write("dane.txt");
for (int i = 1; i < 26; i++)
{
for (int j = 1; j < 26; j++)
{
string a;
a += pole[i][j][2];
a += ' ';
a += pole[i][j][3];
a += ' ';
a += pole[i][j][4];
a += ' ';
a += pole[i][j][5];
write << a << endl;
}
}
write.close();
}
```
Funkcja kierująca traktorem (decyzja co zasiać):
```
void reciveState()
{
ifstream read("decyzje.txt");
if (read.is_open())
{
char plant;
int i = 1;
int j = 1;
while (read >> plant)
{
if (j == 25)
{
gogo(1, i+1);
}
else
{
gogo(j+1 , i );
}
pole[i][j][0] = plant;
if (plant == '.')
{
pole[i][j][1] = '1';
}
else
{
pole[i][j][1] = '9';
}
if (j == 25)
{
j = 1;
i += 1;
}
else
{
j += 1;
}
}
}
}
```

View File

@ -1,47 +0,0 @@
# Opis dokumentu
Ten dokument to raport z wykonanego podprojektu na przedmiot Sztuczna Inteligencja. Celem
zadania jest implementacja algorytmu genetycznego w projekcie o tematyce inteligentny traktor.
# Zastosowanie algorytmu
Algorytm został wykorzystany do wygenerowania zbioru roślin do zasadzenia na bazie zebranych wcześniej roślin
# Skrócony opis implementacji w projekcie wspólnym
* Na początku dla każdego pola zawierającego buraki, zostanie wygenerowany kod genetyczny roślin z tego pola.
![](images/test2_generowanie_burakow.png)
* Funkcja Move teraz zajmuje się również zbieraniem i wywoływaniem sadzenia roślin
![](images/move_zbieranie.png)
* Funkcja przypiszKod decyduje czy należy zasadzić jedną z modyfikowanych genetycznie roślin, czy należy zasadzić nową (losową).
![](images/przypiszKod.png)
* Gdy liczba zebranych buraków osiągnie określoną wartość, zostanie przeprowadzony algorytm genetyczny i powstanie tablica roślin do zasadzenia
![](images/wykonanie_algorytmu_gen.png)
# Opis algorytmu genetycznego
* Algorytm wykonuje 5 iteracji, w których dokonuje selekcji osobników populacji, które zostaną poddane rozrodowi i wytwarza kolejne pokolenie populacji. Po wyjściu z pętli metodą rankingu selekcjonuje najlepszą część ostatniego pokolenia.
![](images/genetic_algorithm.png)
* Selekcja odbywa się metodą ruletki. Obliczana jest wartość funkcji dostosowania dla każdego osobnika. Im lepsza wartość, tym większa szansa na wylosowanie.
![](images/selection.png)
* Funkcja dostosowania polega na wyliczeniu średniej arytmetycznej trzech wartości: smaku, rozmiaru i koloru rośliny, które są zakodowane w łańcuchu znaków.
![](images/fitness.png)
* Funkcja crossover zajmuje się wywołaniem krzyżowania odpowiedniej liczby osobników
![](images/crossover.png)
* Zastosowana została metoda krzyżowania równomiernego (uniform crossover) z małą modyfikacją, zmniejszającą szansę na to, że dziecko będzie "klonem" rodzica. Istnieje również mała szansa, że dojdzie do równomiernej mutacji (uniform mutation), w której losowa cecha dziecka zostaje wygenerowana na nowo.
![](images/cross.png)

View File

@ -1,105 +0,0 @@
# Lista funkcji
![](images/13_05/1.png)
![](images/13_05/2.png)
-----
# sigmoid, pSigmoid
funkcja sigmoid przetwarzająca podaną liczbę na liczbę z przedziału [0 ; 1]
funkcja psigmoid jest pochodną sigmoid
![](images/13_05/3.png)
-----
# lookOFVege
funkcja przemieniająca stan rośliny na to 'jak wygląda'
![](images/13_05/4.png)
-----
# setValusesRange
funkcja przygotowująca dane pod sigmoid
![](images/13_05/5.png)
-----
# gradient
funkcja gradientu przechowująca wzrosty połączeń neuronów
![](images/13_05/6.png)
-----
# buildMatrix
funkcja tworząca czystą macierz połączeń neuronów
![](images/13_05/7.png)
-----
# buildAvrGrad
funkcja tworząca czystą macierz średnich gradientów
![](images/13_05/8.png)
-----
# neuronsInputBuild
funkcja uzupełniająca dane wejściowe neuronów, uzupełniająca wyjścia na podstawie wag macierzy połączeń oraz zwracająca koszt dla wybranego oczekiwanego rozwiązania
![](images/13_05/9.png)
![](images/13_05/10.png)
![](images/13_05/11.png)
-----
# backProp
funkcja wstecznej propagacji obniżająca koszt conajmniej 50 oraz zapisująca gradient tego kosztu
![](images/13_05/12.png)
-----
# network
funkcja przekazująca dane oczekiwane o wstecznej propagacji
![](images/13_05/13.png)
-----
# bestMatrixBuild
funkcja budująca najlepszą macierz wag na podstawie średnich gradientów
![](images/13_05/14.png)
-----
# tests
zbiory testowe
## neuroTest1
test z jednym konkrenym warzywem na polu
![](images/13_05/15.png)
## neuroTest2
test z warzywami blokującymi oczekiwane warzywo
![](images/13_05/16.png)
-----
# neuroStart1
funkcja inicjalizująca naukę traktora
![](images/13_05/17.png)
-----
# chousePath
funkcja poruszająca traktor do najlepszego pola
![](images/13_05/18.png)
![](images/13_05/19.png)
-----
# testOfNeuroMove
test do sprawdzenia działania traktora po nauce
![](images/13_05/20.png)
-----
# main
inicjalizacja nauki oraz użycia jej
![](images/13_05/21.png)

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.8 (2)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
Sklearn/.idea/misc.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (2)" project-jdk-type="Python SDK" />
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Sklearn.iml" filepath="$PROJECT_DIR$/.idea/Sklearn.iml" />
</modules>
</component>
</project>

136
Sklearn/.idea/workspace.xml Normal file
View File

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e3fa4ad7-e8af-409f-b992-aa72ce556ebd" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="ProjectId" id="1bp9AhDNNGUv3iYpuDmV1lNmkaN" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
</component>
<component name="RunManager" selected="Python.load">
<configuration name="Generate" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="Sklearn" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/Generate.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="load" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="Sklearn" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="C:\Users\Szymon\Desktop\Traktor_DrzewaDecyzyjne\Sklearn\Test.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Python.load" />
<item itemvalue="Python.Generate" />
</list>
</recent_temporary>
</component>
<component name="ServiceViewManager">
<option name="viewStates">
<list>
<serviceView>
<treeState>
<expand />
<select />
</treeState>
</serviceView>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="e3fa4ad7-e8af-409f-b992-aa72ce556ebd" name="Default Changelist" comment="" />
<created>1589318026471</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1589318026471</updated>
</task>
<servers />
</component>
<component name="WindowStateProjectService">
<state width="1654" height="236" key="GridCell.Tab.0.bottom" timestamp="1589319874987">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state width="1654" height="236" key="GridCell.Tab.0.bottom/0.0.1676.902@0.0.1676.902" timestamp="1589319874987" />
<state width="1654" height="236" key="GridCell.Tab.0.center" timestamp="1589319874986">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state width="1654" height="236" key="GridCell.Tab.0.center/0.0.1676.902@0.0.1676.902" timestamp="1589319874986" />
<state width="1654" height="236" key="GridCell.Tab.0.left" timestamp="1589319874986">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state width="1654" height="236" key="GridCell.Tab.0.left/0.0.1676.902@0.0.1676.902" timestamp="1589319874986" />
<state width="1654" height="236" key="GridCell.Tab.0.right" timestamp="1589319874987">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state width="1654" height="236" key="GridCell.Tab.0.right/0.0.1676.902@0.0.1676.902" timestamp="1589319874987" />
<state x="346" y="92" key="SettingsEditor" timestamp="1589318048454">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state x="346" y="92" key="SettingsEditor/0.0.1676.902@0.0.1676.902" timestamp="1589318048454" />
<state x="537" y="273" key="com.intellij.ide.util.TipDialog" timestamp="1589328690450">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state x="537" y="273" key="com.intellij.ide.util.TipDialog/0.0.1676.902@0.0.1676.902" timestamp="1589328690450" />
<state x="579" y="93" key="refactoring.ChangeSignatureDialog" timestamp="1589319743520">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state x="579" y="93" key="refactoring.ChangeSignatureDialog/0.0.1676.902@0.0.1676.902" timestamp="1589319743520" />
<state x="500" y="190" width="672" height="678" key="search.everywhere.popup" timestamp="1589319325562">
<screen x="0" y="0" width="1676" height="902" />
</state>
<state x="500" y="190" width="672" height="678" key="search.everywhere.popup/0.0.1676.902@0.0.1676.902" timestamp="1589319325562" />
</component>
</project>

415
Sklearn/Database.csv Normal file
View File

@ -0,0 +1,415 @@
1,0,0,1,0
1,0,0,2,0
1,0,0,3,0
1,0,0,4,0
1,0,0,5,0
1,0,0,6,0
1,0,0,7,0
1,0,0,8,0
1,0,0,9,0
1,0,0,10,0
1,0,1,1,0
1,0,1,2,0
1,0,1,3,0
1,0,1,4,0
1,0,1,5,0
1,0,1,6,0
1,0,1,7,0
1,0,1,8,0
1,0,1,9,0
1,0,1,10,0
1,1,0,1,0
1,1,0,2,0
1,1,0,3,0
1,1,0,4,0
1,1,0,5,0
1,1,0,6,0
1,1,0,7,0
1,1,0,8,0
1,1,0,9,0
1,1,0,10,0
1,1,1,1,0
1,1,1,2,0
1,1,1,3,0
1,1,1,4,0
1,1,1,5,0
1,1,1,6,0
1,1,1,7,0
1,1,1,8,0
1,1,1,9,0
1,1,1,10,0
1,0,0,11,1
1,0,0,12,1
1,0,0,13,1
1,0,0,14,1
1,0,0,15,1
1,0,0,16,1
1,0,0,17,1
1,0,0,18,1
1,0,0,19,1
1,0,0,20,1
1,0,0,21,1
1,0,0,22,1
1,0,0,23,1
1,0,0,24,1
1,0,0,25,1
1,0,0,26,1
1,0,0,27,1
1,0,0,28,1
1,0,0,29,1
1,0,0,30,1
1,0,0,31,1
1,0,0,32,1
1,0,0,33,1
1,0,0,34,1
1,0,0,35,1
1,0,0,36,1
1,0,0,37,1
1,0,0,38,1
1,0,0,39,1
1,0,0,40,1
1,0,1,11,1
1,0,1,12,1
1,0,1,13,1
1,0,1,14,1
1,0,1,15,1
1,0,1,16,1
1,0,1,17,1
1,0,1,18,1
1,0,1,19,1
1,0,1,20,1
1,0,1,21,1
1,0,1,22,1
1,0,1,23,1
1,0,1,24,1
1,0,1,25,1
1,0,1,26,1
1,0,1,27,1
1,0,1,28,1
1,0,1,29,1
1,0,1,30,1
1,0,1,31,1
1,0,1,32,1
1,0,1,33,1
1,0,1,34,1
1,0,1,35,1
1,0,1,36,1
1,0,1,37,1
1,0,1,38,1
1,0,1,39,1
1,0,1,40,1
1,1,0,11,0
1,1,0,12,0
1,1,0,13,0
1,1,0,14,0
1,1,0,15,0
1,1,0,16,0
1,1,0,17,0
1,1,0,18,0
1,1,0,19,0
1,1,0,20,0
1,1,0,21,0
1,1,0,22,0
1,1,0,23,0
1,1,0,24,0
1,1,0,25,0
1,1,0,26,0
1,1,0,27,0
1,1,0,28,0
1,1,0,29,0
1,1,0,30,0
1,1,0,31,0
1,1,0,32,0
1,1,0,33,0
1,1,0,34,0
1,1,0,35,0
1,1,0,36,0
1,1,0,37,0
1,1,0,38,0
1,1,0,39,0
1,1,0,40,0
1,1,1,11,0
1,1,1,12,0
1,1,1,13,0
1,1,1,14,0
1,1,1,15,0
1,1,1,16,0
1,1,1,17,0
1,1,1,18,0
1,1,1,19,0
1,1,1,20,0
1,1,1,21,0
1,1,1,22,0
1,1,1,23,0
1,1,1,24,0
1,1,1,25,0
1,1,1,26,0
1,1,1,27,0
1,1,1,28,0
1,1,1,29,0
1,1,1,30,0
1,1,1,31,0
1,1,1,32,0
1,1,1,33,0
1,1,1,34,0
1,1,1,35,0
1,1,1,36,0
1,1,1,37,0
1,1,1,38,0
1,1,1,39,0
1,1,1,40,0
1,0,0,41,4
1,0,0,42,4
1,0,0,43,4
1,0,0,44,4
1,0,0,45,4
1,0,0,46,4
1,0,0,47,4
1,0,0,48,4
1,0,0,49,4
1,0,0,50,4
1,0,0,51,4
1,0,0,52,4
1,0,0,53,4
1,0,0,54,4
1,0,0,55,4
1,0,0,56,4
1,0,0,57,4
1,0,0,58,4
1,0,0,59,4
1,0,0,60,4
1,0,0,61,4
1,0,0,62,4
1,0,0,63,4
1,0,0,64,4
1,0,0,65,4
1,0,0,66,4
1,0,0,67,4
1,0,0,68,4
1,0,0,69,4
1,0,0,70,4
1,0,0,71,4
1,0,0,72,4
1,0,0,73,4
1,0,0,74,4
1,0,0,75,4
1,0,0,76,4
1,0,0,77,4
1,0,0,78,4
1,0,0,79,4
1,0,0,80,4
1,1,0,41,4
1,1,0,42,4
1,1,0,43,4
1,1,0,44,4
1,1,0,45,4
1,1,0,46,4
1,1,0,47,4
1,1,0,48,4
1,1,0,49,4
1,1,0,50,4
1,1,0,51,4
1,1,0,52,4
1,1,0,53,4
1,1,0,54,4
1,1,0,55,4
1,1,0,56,4
1,1,0,57,4
1,1,0,58,4
1,1,0,59,4
1,1,0,60,4
1,1,0,61,4
1,1,0,62,4
1,1,0,63,4
1,1,0,64,4
1,1,0,65,4
1,1,0,66,4
1,1,0,67,4
1,1,0,68,4
1,1,0,69,4
1,1,0,70,4
1,1,0,71,4
1,1,0,72,4
1,1,0,73,4
1,1,0,74,4
1,1,0,75,4
1,1,0,76,4
1,1,0,77,4
1,1,0,78,4
1,1,0,79,4
1,1,0,80,4
1,0,1,41,4
1,0,1,42,4
1,0,1,43,4
1,0,1,44,4
1,0,1,45,4
1,0,1,46,4
1,0,1,47,4
1,0,1,48,4
1,0,1,49,4
1,0,1,50,4
1,0,1,51,4
1,0,1,52,4
1,0,1,53,4
1,0,1,54,4
1,0,1,55,4
1,0,1,56,4
1,0,1,57,4
1,0,1,58,4
1,0,1,59,4
1,0,1,60,4
1,0,1,61,4
1,0,1,62,4
1,0,1,63,4
1,0,1,64,4
1,0,1,65,4
1,0,1,66,4
1,0,1,67,4
1,0,1,68,4
1,0,1,69,4
1,0,1,70,4
1,0,1,71,4
1,0,1,72,4
1,0,1,73,4
1,0,1,74,4
1,0,1,75,4
1,0,1,76,4
1,0,1,77,4
1,0,1,78,4
1,0,1,79,4
1,0,1,80,4
1,1,1,41,4
1,1,1,42,4
1,1,1,43,4
1,1,1,44,4
1,1,1,45,4
1,1,1,46,4
1,1,1,47,4
1,1,1,48,4
1,1,1,49,4
1,1,1,50,4
1,1,1,51,4
1,1,1,52,4
1,1,1,53,4
1,1,1,54,4
1,1,1,55,4
1,1,1,56,4
1,1,1,57,4
1,1,1,58,4
1,1,1,59,4
1,1,1,60,4
1,1,1,61,4
1,1,1,62,4
1,1,1,63,4
1,1,1,64,4
1,1,1,65,4
1,1,1,66,4
1,1,1,67,4
1,1,1,68,4
1,1,1,69,4
1,1,1,70,4
1,1,1,71,4
1,1,1,72,4
1,1,1,73,4
1,1,1,74,4
1,1,1,75,4
1,1,1,76,4
1,1,1,77,4
1,1,1,78,4
1,1,1,79,4
1,1,1,80,4
1,0,0,81,2
1,0,0,82,2
1,0,0,83,2
1,0,0,84,2
1,0,0,85,2
1,0,0,86,2
1,0,0,87,2
1,0,0,88,2
1,0,0,89,2
1,0,0,90,2
1,0,0,91,2
1,0,0,92,2
1,0,0,93,2
1,0,0,94,2
1,0,0,95,2
1,0,0,96,2
1,0,0,97,2
1,0,0,98,2
1,0,0,99,2
1,0,0,100,2
1,1,0,81,2
1,1,0,82,2
1,1,0,83,2
1,1,0,84,2
1,1,0,85,2
1,1,0,86,2
1,1,0,87,2
1,1,0,88,2
1,1,0,89,2
1,1,0,90,2
1,1,0,91,2
1,1,0,92,2
1,1,0,93,2
1,1,0,94,2
1,1,0,95,2
1,1,0,96,2
1,1,0,97,2
1,1,0,98,2
1,1,0,99,2
1,1,0,100,2
1,0,1,81,5
1,0,1,82,5
1,0,1,83,5
1,0,1,84,5
1,0,1,85,5
1,0,1,86,5
1,0,1,87,5
1,0,1,88,5
1,0,1,89,5
1,0,1,90,5
1,0,1,91,5
1,0,1,92,5
1,0,1,93,5
1,0,1,94,5
1,0,1,95,5
1,0,1,96,5
1,0,1,97,5
1,0,1,98,5
1,0,1,99,5
1,0,1,100,5
1,1,1,81,5
1,1,1,82,5
1,1,1,83,5
1,1,1,84,5
1,1,1,85,5
1,1,1,86,5
1,1,1,87,5
1,1,1,88,5
1,1,1,89,5
1,1,1,90,5
1,1,1,91,5
1,1,1,92,5
1,1,1,93,5
1,1,1,94,5
1,1,1,95,5
1,1,1,96,5
1,1,1,97,5
1,1,1,98,5
1,1,1,99,5
1,1,1,100,5
1 1 0 0 1 0
2 1 0 0 2 0
3 1 0 0 3 0
4 1 0 0 4 0
5 1 0 0 5 0
6 1 0 0 6 0
7 1 0 0 7 0
8 1 0 0 8 0
9 1 0 0 9 0
10 1 0 0 10 0
11 1 0 1 1 0
12 1 0 1 2 0
13 1 0 1 3 0
14 1 0 1 4 0
15 1 0 1 5 0
16 1 0 1 6 0
17 1 0 1 7 0
18 1 0 1 8 0
19 1 0 1 9 0
20 1 0 1 10 0
21 1 1 0 1 0
22 1 1 0 2 0
23 1 1 0 3 0
24 1 1 0 4 0
25 1 1 0 5 0
26 1 1 0 6 0
27 1 1 0 7 0
28 1 1 0 8 0
29 1 1 0 9 0
30 1 1 0 10 0
31 1 1 1 1 0
32 1 1 1 2 0
33 1 1 1 3 0
34 1 1 1 4 0
35 1 1 1 5 0
36 1 1 1 6 0
37 1 1 1 7 0
38 1 1 1 8 0
39 1 1 1 9 0
40 1 1 1 10 0
41 1 0 0 11 1
42 1 0 0 12 1
43 1 0 0 13 1
44 1 0 0 14 1
45 1 0 0 15 1
46 1 0 0 16 1
47 1 0 0 17 1
48 1 0 0 18 1
49 1 0 0 19 1
50 1 0 0 20 1
51 1 0 0 21 1
52 1 0 0 22 1
53 1 0 0 23 1
54 1 0 0 24 1
55 1 0 0 25 1
56 1 0 0 26 1
57 1 0 0 27 1
58 1 0 0 28 1
59 1 0 0 29 1
60 1 0 0 30 1
61 1 0 0 31 1
62 1 0 0 32 1
63 1 0 0 33 1
64 1 0 0 34 1
65 1 0 0 35 1
66 1 0 0 36 1
67 1 0 0 37 1
68 1 0 0 38 1
69 1 0 0 39 1
70 1 0 0 40 1
71 1 0 1 11 1
72 1 0 1 12 1
73 1 0 1 13 1
74 1 0 1 14 1
75 1 0 1 15 1
76 1 0 1 16 1
77 1 0 1 17 1
78 1 0 1 18 1
79 1 0 1 19 1
80 1 0 1 20 1
81 1 0 1 21 1
82 1 0 1 22 1
83 1 0 1 23 1
84 1 0 1 24 1
85 1 0 1 25 1
86 1 0 1 26 1
87 1 0 1 27 1
88 1 0 1 28 1
89 1 0 1 29 1
90 1 0 1 30 1
91 1 0 1 31 1
92 1 0 1 32 1
93 1 0 1 33 1
94 1 0 1 34 1
95 1 0 1 35 1
96 1 0 1 36 1
97 1 0 1 37 1
98 1 0 1 38 1
99 1 0 1 39 1
100 1 0 1 40 1
101 1 1 0 11 0
102 1 1 0 12 0
103 1 1 0 13 0
104 1 1 0 14 0
105 1 1 0 15 0
106 1 1 0 16 0
107 1 1 0 17 0
108 1 1 0 18 0
109 1 1 0 19 0
110 1 1 0 20 0
111 1 1 0 21 0
112 1 1 0 22 0
113 1 1 0 23 0
114 1 1 0 24 0
115 1 1 0 25 0
116 1 1 0 26 0
117 1 1 0 27 0
118 1 1 0 28 0
119 1 1 0 29 0
120 1 1 0 30 0
121 1 1 0 31 0
122 1 1 0 32 0
123 1 1 0 33 0
124 1 1 0 34 0
125 1 1 0 35 0
126 1 1 0 36 0
127 1 1 0 37 0
128 1 1 0 38 0
129 1 1 0 39 0
130 1 1 0 40 0
131 1 1 1 11 0
132 1 1 1 12 0
133 1 1 1 13 0
134 1 1 1 14 0
135 1 1 1 15 0
136 1 1 1 16 0
137 1 1 1 17 0
138 1 1 1 18 0
139 1 1 1 19 0
140 1 1 1 20 0
141 1 1 1 21 0
142 1 1 1 22 0
143 1 1 1 23 0
144 1 1 1 24 0
145 1 1 1 25 0
146 1 1 1 26 0
147 1 1 1 27 0
148 1 1 1 28 0
149 1 1 1 29 0
150 1 1 1 30 0
151 1 1 1 31 0
152 1 1 1 32 0
153 1 1 1 33 0
154 1 1 1 34 0
155 1 1 1 35 0
156 1 1 1 36 0
157 1 1 1 37 0
158 1 1 1 38 0
159 1 1 1 39 0
160 1 1 1 40 0
161 1 0 0 41 4
162 1 0 0 42 4
163 1 0 0 43 4
164 1 0 0 44 4
165 1 0 0 45 4
166 1 0 0 46 4
167 1 0 0 47 4
168 1 0 0 48 4
169 1 0 0 49 4
170 1 0 0 50 4
171 1 0 0 51 4
172 1 0 0 52 4
173 1 0 0 53 4
174 1 0 0 54 4
175 1 0 0 55 4
176 1 0 0 56 4
177 1 0 0 57 4
178 1 0 0 58 4
179 1 0 0 59 4
180 1 0 0 60 4
181 1 0 0 61 4
182 1 0 0 62 4
183 1 0 0 63 4
184 1 0 0 64 4
185 1 0 0 65 4
186 1 0 0 66 4
187 1 0 0 67 4
188 1 0 0 68 4
189 1 0 0 69 4
190 1 0 0 70 4
191 1 0 0 71 4
192 1 0 0 72 4
193 1 0 0 73 4
194 1 0 0 74 4
195 1 0 0 75 4
196 1 0 0 76 4
197 1 0 0 77 4
198 1 0 0 78 4
199 1 0 0 79 4
200 1 0 0 80 4
201 1 1 0 41 4
202 1 1 0 42 4
203 1 1 0 43 4
204 1 1 0 44 4
205 1 1 0 45 4
206 1 1 0 46 4
207 1 1 0 47 4
208 1 1 0 48 4
209 1 1 0 49 4
210 1 1 0 50 4
211 1 1 0 51 4
212 1 1 0 52 4
213 1 1 0 53 4
214 1 1 0 54 4
215 1 1 0 55 4
216 1 1 0 56 4
217 1 1 0 57 4
218 1 1 0 58 4
219 1 1 0 59 4
220 1 1 0 60 4
221 1 1 0 61 4
222 1 1 0 62 4
223 1 1 0 63 4
224 1 1 0 64 4
225 1 1 0 65 4
226 1 1 0 66 4
227 1 1 0 67 4
228 1 1 0 68 4
229 1 1 0 69 4
230 1 1 0 70 4
231 1 1 0 71 4
232 1 1 0 72 4
233 1 1 0 73 4
234 1 1 0 74 4
235 1 1 0 75 4
236 1 1 0 76 4
237 1 1 0 77 4
238 1 1 0 78 4
239 1 1 0 79 4
240 1 1 0 80 4
241 1 0 1 41 4
242 1 0 1 42 4
243 1 0 1 43 4
244 1 0 1 44 4
245 1 0 1 45 4
246 1 0 1 46 4
247 1 0 1 47 4
248 1 0 1 48 4
249 1 0 1 49 4
250 1 0 1 50 4
251 1 0 1 51 4
252 1 0 1 52 4
253 1 0 1 53 4
254 1 0 1 54 4
255 1 0 1 55 4
256 1 0 1 56 4
257 1 0 1 57 4
258 1 0 1 58 4
259 1 0 1 59 4
260 1 0 1 60 4
261 1 0 1 61 4
262 1 0 1 62 4
263 1 0 1 63 4
264 1 0 1 64 4
265 1 0 1 65 4
266 1 0 1 66 4
267 1 0 1 67 4
268 1 0 1 68 4
269 1 0 1 69 4
270 1 0 1 70 4
271 1 0 1 71 4
272 1 0 1 72 4
273 1 0 1 73 4
274 1 0 1 74 4
275 1 0 1 75 4
276 1 0 1 76 4
277 1 0 1 77 4
278 1 0 1 78 4
279 1 0 1 79 4
280 1 0 1 80 4
281 1 1 1 41 4
282 1 1 1 42 4
283 1 1 1 43 4
284 1 1 1 44 4
285 1 1 1 45 4
286 1 1 1 46 4
287 1 1 1 47 4
288 1 1 1 48 4
289 1 1 1 49 4
290 1 1 1 50 4
291 1 1 1 51 4
292 1 1 1 52 4
293 1 1 1 53 4
294 1 1 1 54 4
295 1 1 1 55 4
296 1 1 1 56 4
297 1 1 1 57 4
298 1 1 1 58 4
299 1 1 1 59 4
300 1 1 1 60 4
301 1 1 1 61 4
302 1 1 1 62 4
303 1 1 1 63 4
304 1 1 1 64 4
305 1 1 1 65 4
306 1 1 1 66 4
307 1 1 1 67 4
308 1 1 1 68 4
309 1 1 1 69 4
310 1 1 1 70 4
311 1 1 1 71 4
312 1 1 1 72 4
313 1 1 1 73 4
314 1 1 1 74 4
315 1 1 1 75 4
316 1 1 1 76 4
317 1 1 1 77 4
318 1 1 1 78 4
319 1 1 1 79 4
320 1 1 1 80 4
321 1 0 0 81 2
322 1 0 0 82 2
323 1 0 0 83 2
324 1 0 0 84 2
325 1 0 0 85 2
326 1 0 0 86 2
327 1 0 0 87 2
328 1 0 0 88 2
329 1 0 0 89 2
330 1 0 0 90 2
331 1 0 0 91 2
332 1 0 0 92 2
333 1 0 0 93 2
334 1 0 0 94 2
335 1 0 0 95 2
336 1 0 0 96 2
337 1 0 0 97 2
338 1 0 0 98 2
339 1 0 0 99 2
340 1 0 0 100 2
341 1 1 0 81 2
342 1 1 0 82 2
343 1 1 0 83 2
344 1 1 0 84 2
345 1 1 0 85 2
346 1 1 0 86 2
347 1 1 0 87 2
348 1 1 0 88 2
349 1 1 0 89 2
350 1 1 0 90 2
351 1 1 0 91 2
352 1 1 0 92 2
353 1 1 0 93 2
354 1 1 0 94 2
355 1 1 0 95 2
356 1 1 0 96 2
357 1 1 0 97 2
358 1 1 0 98 2
359 1 1 0 99 2
360 1 1 0 100 2
361 1 0 1 81 5
362 1 0 1 82 5
363 1 0 1 83 5
364 1 0 1 84 5
365 1 0 1 85 5
366 1 0 1 86 5
367 1 0 1 87 5
368 1 0 1 88 5
369 1 0 1 89 5
370 1 0 1 90 5
371 1 0 1 91 5
372 1 0 1 92 5
373 1 0 1 93 5
374 1 0 1 94 5
375 1 0 1 95 5
376 1 0 1 96 5
377 1 0 1 97 5
378 1 0 1 98 5
379 1 0 1 99 5
380 1 0 1 100 5
381 1 1 1 81 5
382 1 1 1 82 5
383 1 1 1 83 5
384 1 1 1 84 5
385 1 1 1 85 5
386 1 1 1 86 5
387 1 1 1 87 5
388 1 1 1 88 5
389 1 1 1 89 5
390 1 1 1 90 5
391 1 1 1 91 5
392 1 1 1 92 5
393 1 1 1 93 5
394 1 1 1 94 5
395 1 1 1 95 5
396 1 1 1 96 5
397 1 1 1 97 5
398 1 1 1 98 5
399 1 1 1 99 5
400 1 1 1 100 5

86
Sklearn/Generate.py Normal file
View File

@ -0,0 +1,86 @@
# Load libraries
import pickle
import pandas as pd
from sklearn import tree, metrics
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, _tree
def tree_to_code(tree, feature_names):
# f = open('generatedTree.py', 'w')
tree_ = tree.tree_
feature_name = [
feature_names[i] if i != _tree.TREE_UNDEFINED else "undefined!"
for i in tree_.feature
]
# print("def tree({}):".format(", ".join(feature_names)), file=f)
print("def tree({}):".format(", ".join(feature_names)))
def recurse(node, depth):
indent = " " * depth
if tree_.feature[node] != _tree.TREE_UNDEFINED:
name = feature_name[node]
threshold = tree_.threshold[node]
# print("{}if {} <= {}:".format(indent, name, threshold), file=f)
print("{}if {} <= {}:".format(indent, name, threshold))
recurse(tree_.children_left[node], depth + 1)
# print("{}else: # if {} > {}".format(indent, name, threshold), file=f)
print("{}else: # if {} > {}".format(indent, name, threshold))
recurse(tree_.children_right[node], depth + 1)
else:
# print("{}return {}".format(indent, tree_.value[node],), file=f)
print("{}return {}".format(indent, tree_.value[node]))
recurse(0, 1)
# f.close()
def loadLearningBase():
col_names = ['Warzywo', 'Nawoz', 'Srodek', 'Stan', 'Dzialanie']
base = pd.read_csv("Database.csv", header=None, names=col_names)
feature_cols = ['Warzywo', 'Nawoz', 'Srodek', 'Stan']
""" print dataset"""
# print(base.head())
X = base[feature_cols] # Features
y = base.Dzialanie # Target variable
# Split dataset into training set and test set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
random_state=1) # 70% training and 30% test
data = generateDecisionTree(X_train, X_test, y_train, y_test)
"""generate data for image"""
# tree.export_graphviz(data, out_file='treeData.dot', filled=True, rounded=True, special_characters=True,
# feature_names=feature_cols)
"""Printing if_styled tree to console"""
# tree_to_code(data, feature_cols)
return data
def generateDecisionTree(X_train, X_test, y_train, y_test):
# Create Decision Tree classifer object
clf = DecisionTreeClassifier(criterion="entropy")
# Train Decision Tree Classifer
clf = clf.fit(X_train, y_train)
# Predict the response for test dataset
y_pred = clf.predict(X_test)
"""Model Accuracy, how often is the classifier correct """
# print("Accuracy:", metrics.accuracy_score(y_test, y_pred))
return clf
if __name__ == '__main__':
generated = loadLearningBase()
# Save generated tree
filename = 'decisionTree.sav'
pickle.dump(generated, open(filename, 'wb'))

36
Sklearn/Test.py Normal file
View File

@ -0,0 +1,36 @@
import pickle
def decision(prediction):
if prediction == 0:
return "Nie_podejmuj_działania"
elif prediction == 1:
return "Zastosuj_nawóz"
elif prediction == 2:
return "Zastosuj_środek"
elif prediction == 4:
return "Zbierz"
elif prediction == 5:
return "Roślina_już_zgniła-zbierz_i_wyrzuć"
def test():
for n in range(0, 2):
if n == 0:
print("############# Nie ma nawozu #############")
else:
print("############# Zastosowano nawóz #############")
for s in range(0, 2):
if s == 0:
print("############# Nie ma środka ochrony #############")
else:
print("############# Zastosowano środek ochrony #############")
for st in range(0, 101):
val = tree.predict([[1, n, s, st]])
print("Stan roślinki: ", st, " ", decision(val))
if __name__ == '__main__':
filename = 'decisionTree.sav'
tree = pickle.load(open(filename, 'rb'))
test()

BIN
Sklearn/decisionTree.sav Normal file

Binary file not shown.

14
Sklearn/injectCode.py Normal file
View File

@ -0,0 +1,14 @@
import pickle
import sys
def prediction(warzywo, nawoz ,srodek, stan_wzrostu):
filename = 'decisionTree.sav'
tree = pickle.load(open(filename, 'rb'))
print(tree.predict([[warzywo, nawoz, srodek, stan_wzrostu]]))
if __name__ == '__main__':
# Map command line arguments to function arguments.
prediction(*sys.argv[1:])

25
Sklearn/treeData.dot Normal file
View File

@ -0,0 +1,25 @@
digraph Tree {
node [shape=box, style="filled, rounded", color="black", fontname=helvetica] ;
edge [fontname=helvetica] ;
0 [label=<Stan &le; 40.5<br/>entropy = 2.092<br/>samples = 280<br/>value = [78, 41, 29, 108, 24]>, fillcolor="#e2e2fb"] ;
1 [label=<Nawoz &le; 0.5<br/>entropy = 0.929<br/>samples = 119<br/>value = [78, 41, 0, 0, 0]>, fillcolor="#f3c3a1"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label=<Stan &le; 10.5<br/>entropy = 0.796<br/>samples = 54<br/>value = [13, 41, 0, 0, 0]>, fillcolor="#a5ed78"] ;
1 -> 2 ;
3 [label=<entropy = 0.0<br/>samples = 13<br/>value = [13, 0, 0, 0, 0]>, fillcolor="#e58139"] ;
2 -> 3 ;
4 [label=<entropy = 0.0<br/>samples = 41<br/>value = [0, 41, 0, 0, 0]>, fillcolor="#7be539"] ;
2 -> 4 ;
5 [label=<entropy = 0.0<br/>samples = 65<br/>value = [65, 0, 0, 0, 0]>, fillcolor="#e58139"] ;
1 -> 5 ;
6 [label=<Stan &le; 80.5<br/>entropy = 1.241<br/>samples = 161<br/>value = [0, 0, 29, 108, 24]>, fillcolor="#8a88ef"] ;
0 -> 6 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
7 [label=<entropy = 0.0<br/>samples = 108<br/>value = [0, 0, 0, 108, 0]>, fillcolor="#3c39e5"] ;
6 -> 7 ;
8 [label=<Srodek &le; 0.5<br/>entropy = 0.994<br/>samples = 53<br/>value = [0, 0, 29, 0, 24]>, fillcolor="#ddfbf5"] ;
6 -> 8 ;
9 [label=<entropy = 0.0<br/>samples = 29<br/>value = [0, 0, 29, 0, 0]>, fillcolor="#39e5c5"] ;
8 -> 9 ;
10 [label=<entropy = 0.0<br/>samples = 24<br/>value = [0, 0, 0, 0, 24]>, fillcolor="#e539c0"] ;
8 -> 10 ;
}

BIN
Sklearn/treeData.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@ -7,11 +7,10 @@
#include<set>
#include<math.h>
#include<stack>
#include<fstream>
using namespace std;
const float maxFloat=FLT_MAX;
const float maxFloat = FLT_MAX;
const int ROW = 27;
const int COL = 27;
typedef pair<int, int> Pair;
@ -22,7 +21,9 @@ struct cell
double f, g, h;
};
char pole[27][27][6];
char pole[27][27][2];
int stan[27][27][2];
string polecenie = "python injectCode.py 1 ";
int pozycjaTraktoraX = 1, pozycjaTraktoraY = 1;
char currentWay = 'S';
@ -99,7 +100,6 @@ void color(string foregroundColor, string backgroundColor)
backgroundCode = 15;
SetConsoleTextAttribute(hOut, foregroundCode + backgroundCode * 16);
}
void SetWindow(int Width, int Height)
{
_COORD coord;
@ -116,7 +116,6 @@ void SetWindow(int Width, int Height)
SetConsoleScreenBufferSize(Handle, coord); // Set Buffer Size
SetConsoleWindowInfo(Handle, TRUE, &Rect); // Set Window Size
}
void updatePola()
{
system("cls");
@ -131,10 +130,6 @@ void updatePola()
{
color("purple", "dark_yellow");
}break;
case 'Z':
{
color("cyan", "dark_yellow");
}break;
case 'T':
{
color("red", "dark_yellow");
@ -159,41 +154,40 @@ void updatePola()
color("white", "black");
}
}
void correctMovement(char wantedWay)
{
while (currentWay != wantedWay)
{
switch (currentWay)
{
case 'N':
{
if (wantedWay == 'S')
currentWay = wantedWay;
else
currentWay = 'W';
}break;
case 'S':
{
if (wantedWay == 'N')
currentWay = wantedWay;
else
currentWay = 'W';
}break;
case 'W':
{
if (wantedWay == 'E')
currentWay = wantedWay;
else
currentWay = 'N';
}break;
case 'E':
{
if (wantedWay == 'W')
currentWay = wantedWay;
else
currentWay = 'N';
}break;
case 'N':
{
if (wantedWay == 'S')
currentWay = wantedWay;
else
currentWay = 'W';
}break;
case 'S':
{
if (wantedWay == 'N')
currentWay = wantedWay;
else
currentWay = 'W';
}break;
case 'W':
{
if (wantedWay == 'E')
currentWay = wantedWay;
else
currentWay = 'N';
}break;
case 'E':
{
if (wantedWay == 'W')
currentWay = wantedWay;
else
currentWay = 'N';
}break;
}
}
}
@ -202,56 +196,55 @@ void Move(char kierunek)
switch (kierunek)
{
//góra-(w)
case 'w':
case 'w':
{
if (pole[pozycjaTraktoraY - 1][pozycjaTraktoraX][0] != '#')
{
if (pole[pozycjaTraktoraY - 1][pozycjaTraktoraX][0] != '#')
{
correctMovement('N');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraY--;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//dół-(s)
case 's':
correctMovement('N');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraY--;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//dół-(s)
case 's':
{
if (pole[pozycjaTraktoraY + 1][pozycjaTraktoraX][0] != '#')
{
if (pole[pozycjaTraktoraY + 1][pozycjaTraktoraX][0] != '#')
{
correctMovement('S');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraY++;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//lewo-(a)
case 'a':
correctMovement('S');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraY++;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//lewo-(a)
case 'a':
{
if (pole[pozycjaTraktoraY][pozycjaTraktoraX - 1][0] != '#')
{
if (pole[pozycjaTraktoraY][pozycjaTraktoraX - 1][0] != '#')
{
correctMovement('W');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraX--;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//prawo-(d)
case 'd':
correctMovement('W');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraX--;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//prawo-(d)
case 'd':
{
if (pole[pozycjaTraktoraY][pozycjaTraktoraX + 1][0] != '#')
{
if (pole[pozycjaTraktoraY][pozycjaTraktoraX + 1][0] != '#')
{
correctMovement('E');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraX++;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
correctMovement('E');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraX++;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
}
}
bool isValid(int x, int y)
{
if (pole[x][y][0] != '#')
@ -260,7 +253,7 @@ bool isValid(int x, int y)
}
return false;
}
bool isDestination(int x, int y,Pair dest)
bool isDestination(int x, int y, Pair dest)
{
if (dest.first == x && dest.second == y)
{
@ -305,12 +298,12 @@ void tracePath(cell cellDetails[][COL], Pair dest)
Move('w');
//printf("-> (%d,%d) ", p.first, p.second); //---- informacja wierzchołku
Sleep(1000);
//Sleep(1000);
}
return;
}
void aStarSearch(int grid[][COL],Pair src, Pair dest)
void aStarSearch(int grid[][COL], Pair src, Pair dest)
{
bool closedList[ROW][COL];
memset(closedList, false, sizeof(closedList));
@ -350,7 +343,7 @@ void aStarSearch(int grid[][COL],Pair src, Pair dest)
double gNew, hNew, fNew;
double waga = 1.0;
waga = ((double)pole[j][i][1] - 48)*1.0;//----waga
waga = ((double)pole[j][i][1] - 48) * 1.0;//----waga
//----------- 1st Successor (North) ------------
if (isValid(i - 1, j) == true)
@ -484,11 +477,10 @@ void aStarSearch(int grid[][COL],Pair src, Pair dest)
return;
}
void gogo(int endX,int endY)
void gogo(int endX, int endY)
{
updatePola();
Sleep(1000);
//Sleep(1000);
int grid[27][27];
for (int i = 0; i < 27; i++)
{
@ -502,11 +494,38 @@ void gogo(int endX,int endY)
aStarSearch(grid, src, dest);
}
void stanPola(int x, int y) {
//[x][x][0] = 0 - brak chemii
//[x][x][0] = 1 - tylko nawóz
//[x][x][0] = 2 - tylko środek
//[x][x][0] = 3 - środek i nawóz
//[x][x][1] - wartość wzrostu rośliny
if (stan[x][y][0] == 0)
polecenie.append("0 0 ");
if (stan[x][y][0] == 1)
polecenie.append("1 0 ");
if (stan[x][y][0] == 2)
polecenie.append("0 1 ");
if (stan[x][y][0] == 3)
polecenie.append("1 1 ");
int w = (stan[x][y][1]);
std::string s = std::to_string(w);
polecenie.append(s);
}
void decisionTree(string polecenie) {
std::string str = polecenie;
const char* c = str.c_str();
system(c);
}
void test1()
{
pole[1][3][0] = 'B';
pole[1][3][1] = '9';
pole[3][1][0] = 'Z';
pole[3][1][0] = 'B';
pole[3][1][1] = '9';
}
void test2()
@ -523,116 +542,15 @@ void test2()
updatePola();
}
void testSI1()
{
for (int i = 1; i < 26; i++)
{
for (int j = 1; j < 26; j++)
{
if (j % 3 == 0)
{
pole[i][j][2] = 'z'; //zyzne
pole[i][j][3] = 'n'; //nawodnione
pole[i][j][4] = 'c'; //w cieniu
pole[i][j][5] = 'k'; //kwasne
}
else
{
if (j % 3 == 1)
{
pole[i][j][2] = 'j'; //jalowe
pole[i][j][3] = 'n'; //nawodnione
pole[i][j][4] = 's'; //w sloncu
pole[i][j][5] = 'n'; //neutralne
}
else
{
pole[i][j][2] = 'z'; //zyzne
pole[i][j][3] = 's'; //suche
pole[i][j][4] = 's'; //sloneczne
pole[i][j][5] = 'z'; //zasadowe
}
}
}
}
}
void sendState()
{
ofstream write("dane.txt");
for (int i = 1; i < 26; i++)
{
for (int j = 1; j < 26; j++)
{
string a;
a += pole[i][j][2];
a += ' ';
a += pole[i][j][3];
a += ' ';
a += pole[i][j][4];
a += ' ';
a += pole[i][j][5];
write << a << endl;
}
}
write.close();
}
void reciveState()
{
ifstream read("decyzje.txt");
if (read.is_open())
{
char plant;
int i = 1;
int j = 1;
while (read >> plant)
{
if (j == 25)
{
gogo(1, i+1);
}
else
{
gogo(j+1 , i );
}
pole[i][j][0] = plant;
if (plant == '.')
{
pole[i][j][1] = '1';
}
else
{
pole[i][j][1] = '9';
}
if (j == 25)
{
j = 1;
i += 1;
}
else
{
j += 1;
}
}
}
}
void start1()
{
int goalX = 3, goalY = 4;
test1();
testSI1();
pole[1][1][0] = 'T';
pole[1][1][1] = '1';
pole[goalY][goalX][0] = 'G';
pole[goalY][goalX][1] = '9';
gogo(goalX, goalY);
gogo(goalX - 1, goalY);
pole[goalY][goalX][0] = 'Z';
pole[goalY][goalX][1] = '9';
updatePola();
//sendState(); //trzeba ręcznie zmieniać między wysyłaniem stanu a pobieraniem stanu pola
reciveState();
}
void start2()
{
@ -655,9 +573,64 @@ void start3()
gogo(goalX, goalY);
}
void testTree() {
int x, y;
x = 3;
y = 3;
//Nie podejmuj
stan[x][y][0] = 0;
stan[x][y][1] = 10;
stanPola(x, y);
}
void testTree1() {
int x, y;
x = 3;
y = 3;
//Nawoz
stan[x][y][0] = 0;
stan[x][y][1] = 15;
stanPola(x, y);
}
void testTree2() {
int x, y;
x = 3;
y = 3;
//Nie podejmuj
stan[x][y][0] = 1;
stan[x][y][1] = 20;
stanPola(x, y);
}
void testTree3() {
int x, y;
x = 3;
y = 3;
//Zbierz
stan[x][y][0] = 1;
stan[x][y][1] = 41;
stanPola(x, y);
}
void testTree4() {
int x, y;
x = 3;
y = 3;
//Nie podejmuj
stan[x][y][0] = 1;
stan[x][y][1] = 90;
stanPola(x, y);
}
void testTree5() {
int x, y;
x = 3;
y = 3;
//Srodek
stan[x][y][0] = 3;
stan[x][y][1] = 90;
stanPola(x, y);
}
int main()
{
SetWindow(50, 30);
//SetWindow(50, 30);
//create pola//
for (int i = 0; i < 27; i++)
{
@ -687,7 +660,26 @@ int main()
updatePola();
start1(); // testy start 1-3
//start3(); // testy start 1-3
testTree();
decisionTree(polecenie);
polecenie = "python injectCode.py 1 ";
testTree1();
decisionTree(polecenie);
polecenie = "python injectCode.py 1 ";
testTree2();
decisionTree(polecenie);
polecenie = "python injectCode.py 1 ";
testTree3();
decisionTree(polecenie);
polecenie = "python injectCode.py 1 ";
testTree4();
decisionTree(polecenie);
polecenie = "python injectCode.py 1 ";
testTree5();
decisionTree(polecenie);
//---------start---------//
bool traktorDziala = true;

View File

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29503.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Traktor_DrzewaDecyzyjne", "Traktor_DrzewaDecyzyjne.vcxproj", "{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Debug|x64.ActiveCfg = Debug|x64
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Debug|x64.Build.0 = Debug|x64
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Debug|x86.ActiveCfg = Debug|Win32
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Debug|x86.Build.0 = Debug|Win32
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Release|x64.ActiveCfg = Release|x64
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Release|x64.Build.0 = Release|x64
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Release|x86.ActiveCfg = Release|Win32
{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {891B470F-58C4-41E4-A102-A1D8CBB6BD64}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{C2FF0872-AC9D-4BD9-A46D-DC65A728BFF5}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>TraktorDrzewaDecyzyjne</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Traktor_DrzewaDecyzyjne.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="..\AI_Traktor\decisionTree.sav" />
<None Include="..\AI_Traktor\injectCode.py" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,606 +0,0 @@
#include<iostream>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<string>
#include<list>
#include<set>
#include<math.h>
#include<stack>
using namespace std;
const float maxFloat=FLT_MAX;
const int ROW = 27;
const int COL = 27;
typedef pair<int, int> Pair;
typedef pair<double, pair<int, int>> pPair;
struct cell
{
int parent_i, parent_j;
double f, g, h;
};
char pole[27][27][2];
int pozycjaTraktoraX = 1, pozycjaTraktoraY = 1;
char currentWay = 'S';
void color(string foregroundColor, string backgroundColor)
{
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
int foregroundCode = 15;
if (foregroundColor == "black")
foregroundCode = 0;
if (foregroundColor == "dark_blue")
foregroundCode = 1;
if (foregroundColor == "green")
foregroundCode = 2;
if (foregroundColor == "cyan")
foregroundCode = 3;
if (foregroundColor == "dark_red")
foregroundCode = 4;
if (foregroundColor == "purple")
foregroundCode = 5;
if (foregroundColor == "dark_yellow")
foregroundCode = 6;
if (foregroundColor == "light_gray")
foregroundCode = 7;
if (foregroundColor == "gray")
foregroundCode = 8;
if (foregroundColor == "blue")
foregroundCode = 9;
if (foregroundColor == "lime")
foregroundCode = 10;
if (foregroundColor == "light_blue")
foregroundCode = 11;
if (foregroundColor == "red")
foregroundCode = 12;
if (foregroundColor == "magenta")
foregroundCode = 13;
if (foregroundColor == "yellow")
foregroundCode = 14;
if (foregroundColor == "white")
foregroundCode = 15;
int backgroundCode = 0;
if (backgroundColor == "black")
backgroundCode = 0;
if (backgroundColor == "dark_blue")
backgroundCode = 1;
if (backgroundColor == "green")
backgroundCode = 2;
if (backgroundColor == "cyan")
backgroundCode = 3;
if (backgroundColor == "dark_red")
backgroundCode = 4;
if (backgroundColor == "purple")
backgroundCode = 5;
if (backgroundColor == "dark_yellow")
backgroundCode = 6;
if (backgroundColor == "light_gray")
backgroundCode = 7;
if (backgroundColor == "gray")
backgroundCode = 8;
if (backgroundColor == "blue")
backgroundCode = 9;
if (backgroundColor == "lime")
backgroundCode = 10;
if (backgroundColor == "light_blue")
backgroundCode = 11;
if (backgroundColor == "red")
backgroundCode = 12;
if (backgroundColor == "magenta")
backgroundCode = 13;
if (backgroundColor == "yellow")
backgroundCode = 14;
if (backgroundColor == "white")
backgroundCode = 15;
SetConsoleTextAttribute(hOut, foregroundCode + backgroundCode * 16);
}
void SetWindow(int Width, int Height)
{
_COORD coord;
coord.X = Width;
coord.Y = Height;
_SMALL_RECT Rect;
Rect.Top = 0;
Rect.Left = 0;
Rect.Bottom = Height - 1;
Rect.Right = Width - 1;
HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE); // Get Handle
SetConsoleScreenBufferSize(Handle, coord); // Set Buffer Size
SetConsoleWindowInfo(Handle, TRUE, &Rect); // Set Window Size
}
void updatePola()
{
system("cls");
for (int i = 0; i < 27; i++)
{
for (int j = 0; j < 27; j++)
{
char item = pole[i][j][0];
switch (item)
{
case 'B':
{
color("purple", "dark_yellow");
}break;
case 'T':
{
color("red", "dark_yellow");
}break;
case 'G':
{
color("lime", "dark_yellow");
}break;
case '.':
{
color("yellow", "dark_yellow");
}break;
case '#':
{
color("light_gray", "gray");
}break;
}
cout << pole[i][j][0];
}
cout << endl;
color("white", "black");
}
}
void correctMovement(char wantedWay)
{
while (currentWay != wantedWay)
{
switch (currentWay)
{
case 'N':
{
if (wantedWay == 'S')
currentWay = wantedWay;
else
currentWay = 'W';
}break;
case 'S':
{
if (wantedWay == 'N')
currentWay = wantedWay;
else
currentWay = 'W';
}break;
case 'W':
{
if (wantedWay == 'E')
currentWay = wantedWay;
else
currentWay = 'N';
}break;
case 'E':
{
if (wantedWay == 'W')
currentWay = wantedWay;
else
currentWay = 'N';
}break;
}
}
}
void Move(char kierunek)
{
switch (kierunek)
{
//góra-(w)
case 'w':
{
if (pole[pozycjaTraktoraY - 1][pozycjaTraktoraX][0] != '#')
{
correctMovement('N');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraY--;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//dół-(s)
case 's':
{
if (pole[pozycjaTraktoraY + 1][pozycjaTraktoraX][0] != '#')
{
correctMovement('S');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraY++;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//lewo-(a)
case 'a':
{
if (pole[pozycjaTraktoraY][pozycjaTraktoraX - 1][0] != '#')
{
correctMovement('W');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraX--;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
//prawo-(d)
case 'd':
{
if (pole[pozycjaTraktoraY][pozycjaTraktoraX + 1][0] != '#')
{
correctMovement('E');
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = '.';
pozycjaTraktoraX++;
pole[pozycjaTraktoraY][pozycjaTraktoraX][0] = 'T';
}
updatePola();
}break;
}
}
bool isValid(int x, int y)
{
if (pole[x][y][0] != '#')
{
return true;
}
return false;
}
bool isDestination(int x, int y,Pair dest)
{
if (dest.first == x && dest.second == y)
{
return true;
}
return false;
}
double calculateHValue(int x, int y, Pair dest)
{
return abs(x - dest.first) + abs(y - dest.second);
}
void tracePath(cell cellDetails[][COL], Pair dest)
{
//printf("\nThe Path is "); //----start info
int row = dest.first;
int col = dest.second;
stack<Pair> Path;
while (!(cellDetails[row][col].parent_i == row
&& cellDetails[row][col].parent_j == col))
{
Path.push(make_pair(row, col));
int temp_row = cellDetails[row][col].parent_i;
int temp_col = cellDetails[row][col].parent_j;
row = temp_row;
col = temp_col;
}
Path.push(make_pair(row, col));
while (!Path.empty())
{
pair<int, int> p = Path.top();
Path.pop();
if (p.first > pozycjaTraktoraX)
Move('d');
if (p.first < pozycjaTraktoraX)
Move('a');
if (p.second > pozycjaTraktoraY)
Move('s');
if (p.second < pozycjaTraktoraY)
Move('w');
//printf("-> (%d,%d) ", p.first, p.second); //---- informacja wierzchołku
Sleep(1000);
}
return;
}
void aStarSearch(int grid[][COL],Pair src, Pair dest)
{
bool closedList[ROW][COL];
memset(closedList, false, sizeof(closedList));
cell cellDetails[ROW][COL];
int i, j;
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
cellDetails[i][j].f = maxFloat;
cellDetails[i][j].g = maxFloat;
cellDetails[i][j].h = maxFloat;
cellDetails[i][j].parent_i = -1;
cellDetails[i][j].parent_j = -1;
}
}
i = src.first, j = src.second;
cellDetails[i][j].f = 0.0;
cellDetails[i][j].g = 0.0;
cellDetails[i][j].h = 0.0;
cellDetails[i][j].parent_i = i;
cellDetails[i][j].parent_j = j;
set<pPair> openList;
openList.insert(make_pair(0.0, make_pair(i, j)));
bool foundDest = false;
while (!openList.empty())
{
pPair p = *openList.begin();
openList.erase(openList.begin());
i = p.second.first;
j = p.second.second;
closedList[i][j] = true;
double gNew, hNew, fNew;
double waga = 1.0;
waga = ((double)pole[j][i][1] - 48)*1.0;//----waga
//----------- 1st Successor (North) ------------
if (isValid(i - 1, j) == true)
{
if (isDestination(i - 1, j, dest) == true)
{
cellDetails[i - 1][j].parent_i = i;
cellDetails[i - 1][j].parent_j = j;
//printf("The destination cell is found\n");
tracePath(cellDetails, dest);
foundDest = true;
return;
}
else if (closedList[i - 1][j] == false)
{
gNew = cellDetails[i][j].g + waga;
hNew = calculateHValue(i - 1, j, dest);
fNew = gNew + hNew;
if (cellDetails[i - 1][j].f == maxFloat ||
cellDetails[i - 1][j].f > fNew)
{
openList.insert(make_pair(fNew,
make_pair(i - 1, j)));
cellDetails[i - 1][j].f = fNew;
cellDetails[i - 1][j].g = gNew;
cellDetails[i - 1][j].h = hNew;
cellDetails[i - 1][j].parent_i = i;
cellDetails[i - 1][j].parent_j = j;
}
}
}
//----------- 2nd Successor (South) ------------
if (isValid(i + 1, j) == true)
{
if (isDestination(i + 1, j, dest) == true)
{
cellDetails[i + 1][j].parent_i = i;
cellDetails[i + 1][j].parent_j = j;
//printf("The destination cell is found\n");
tracePath(cellDetails, dest);
foundDest = true;
return;
}
else if (closedList[i + 1][j] == false)
{
gNew = cellDetails[i][j].g + waga;
hNew = calculateHValue(i + 1, j, dest);
fNew = gNew + hNew;
if (cellDetails[i + 1][j].f == maxFloat ||
cellDetails[i + 1][j].f > fNew)
{
openList.insert(make_pair(fNew, make_pair(i + 1, j)));
cellDetails[i + 1][j].f = fNew;
cellDetails[i + 1][j].g = gNew;
cellDetails[i + 1][j].h = hNew;
cellDetails[i + 1][j].parent_i = i;
cellDetails[i + 1][j].parent_j = j;
}
}
}
//----------- 3rd Successor (East) ------------
if (isValid(i, j + 1) == true)
{
if (isDestination(i, j + 1, dest) == true)
{
cellDetails[i][j + 1].parent_i = i;
cellDetails[i][j + 1].parent_j = j;
//printf("The destination cell is found\n");
tracePath(cellDetails, dest);
foundDest = true;
return;
}
else if (closedList[i][j + 1] == false)
{
gNew = cellDetails[i][j].g + waga;
hNew = calculateHValue(i, j + 1, dest);
fNew = gNew + hNew;
if (cellDetails[i][j + 1].f == maxFloat ||
cellDetails[i][j + 1].f > fNew)
{
openList.insert(make_pair(fNew,
make_pair(i, j + 1)));
cellDetails[i][j + 1].f = fNew;
cellDetails[i][j + 1].g = gNew;
cellDetails[i][j + 1].h = hNew;
cellDetails[i][j + 1].parent_i = i;
cellDetails[i][j + 1].parent_j = j;
}
}
}
//----------- 4th Successor (West) ------------
if (isValid(i, j - 1) == true)
{
if (isDestination(i, j - 1, dest) == true)
{
cellDetails[i][j - 1].parent_i = i;
cellDetails[i][j - 1].parent_j = j;
//printf("The destination cell is found\n");
tracePath(cellDetails, dest);
foundDest = true;
return;
}
else if (closedList[i][j - 1] == false)
{
gNew = cellDetails[i][j].g + waga;
hNew = calculateHValue(i, j - 1, dest);
fNew = gNew + hNew;
if (cellDetails[i][j - 1].f == maxFloat ||
cellDetails[i][j - 1].f > fNew)
{
openList.insert(make_pair(fNew,
make_pair(i, j - 1)));
cellDetails[i][j - 1].f = fNew;
cellDetails[i][j - 1].g = gNew;
cellDetails[i][j - 1].h = hNew;
cellDetails[i][j - 1].parent_i = i;
cellDetails[i][j - 1].parent_j = j;
}
}
}
}
/*if (foundDest == false)
printf("Failed to find the Destination Cell\n");*/
return;
}
void gogo(int endX,int endY)
{
updatePola();
Sleep(1000);
int grid[27][27];
for (int i = 0; i < 27; i++)
{
for (int j = 0; j < 27; j++)
{
grid[i][j] = 0;
}
}
Pair src = make_pair(pozycjaTraktoraX, pozycjaTraktoraY);
Pair dest = make_pair(endX, endY);
aStarSearch(grid, src, dest);
}
void test1()
{
pole[1][3][0] = 'B';
pole[1][3][1] = '9';
pole[3][1][0] = 'B';
pole[3][1][1] = '9';
}
void test2()
{
for (int i = 1; i < 26; i++)
{
for (int j = 1; j < i; j++)
{
pole[i][j][0] = 'B';
pole[i][j][1] = '9';
}
}
test1();
updatePola();
}
void start1()
{
int goalX = 3, goalY = 4;
test1();
pole[1][1][0] = 'T';
pole[1][1][1] = '1';
pole[goalY][goalX][0] = 'G';
pole[goalY][goalX][1] = '9';
gogo(goalX, goalY);
}
void start2()
{
int goalX = 6, goalY = 6;
test2();
pole[1][1][0] = 'T';
pole[1][1][1] = '1';
pole[goalY][goalX][0] = 'G';
pole[goalY][goalX][1] = '9';
gogo(goalX, goalY);
}
void start3()
{
int goalX = 6, goalY = 9;
test2();
pole[1][1][0] = 'T';
pole[1][1][1] = '1';
pole[goalY][goalX][0] = 'G';
pole[goalY][goalX][1] = '9';
gogo(goalX, goalY);
}
int main()
{
SetWindow(50, 30);
//create pola//
for (int i = 0; i < 27; i++)
{
pole[i][0][0] = '#';
pole[0][i][0] = '#';
pole[26][i][0] = '#';
pole[i][26][0] = '#';
pole[i][0][1] = '9';
pole[0][i][1] = '9';
pole[26][i][1] = '9';
pole[i][26][1] = '9';
}
for (int i = 1; i < 26; i++)
{
for (int j = 1; j < 26; j++)
{
pole[i][j][0] = '.';
pole[i][j][1] = '1';
}
}
for (int i = 0; i < 25; i++)
{
pole[i + 1][i + 1][0] = 'B';
pole[i + 1][i + 1][1] = '9';
}
updatePola();
start3(); // testy start 1-3
//---------start---------//
bool traktorDziala = true;
char akcja;
do
{
akcja = _getch();
if (akcja == 'w' || akcja == 's' || akcja == 'a' || akcja == 'd')
{
Move(akcja);
}
if (akcja == '0')
{
traktorDziala = false;
}
} while (traktorDziala);
//---------end---------//
return 0;
}

File diff suppressed because it is too large Load Diff

625
dane.txt
View File

@ -1,625 +0,0 @@
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n
z s s z
z n c k
j n s n

View File

@ -1,625 +0,0 @@
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.
B
Z
.

View File

@ -1,165 +0,0 @@
training_data = [
#zyznosc, nawodnienie, cien, kwasowosc
['z', 'n', 's', 'z', 1],
['z', 'n', 's', 'n', 1],
['j', 'n', 's', 'z', 1],
['z', 's', 's', 'n', 1],
['j', 'n', 'c', 'n', 1],
['z', 'n', 's', 'k', 1],
['z', 'n', 'c', 'k', 2],
['z', 's', 's', 'k', 2],
['z', 's', 'c', 'k', 2],
['j', 'n', 's', 'k', 2],
['z', 's', 'c', 'z', 3],
['j', 'n', 's', 'n', 3]
]
header = ["zyznosc", "nawodnienie", "cien", "kwasowosc", "wybor"]
def class_counts(rows):
counts = {}
for row in rows:
label = row[-1]
if label not in counts:
counts[label] = 0
counts[label] += 1
return counts
def is_numeric(value):
return isinstance(value, int) or isinstance(value, float)
class Question:
def __init__(self, column, value):
self.column = column
self.value = value
def match(self, example):
val = example[self.column]
if is_numeric(val):
return val >= self.value
else:
return val == self.value
def __repr__(self):
condition = "=="
if is_numeric(self.value):
condition = ">="
return "Czy %s %s %s?" % (
header[self.column], condition, str(self.value))
def partition(rows, question):
true_rows, false_rows = [], []
for row in rows:
if question.match(row):
true_rows.append(row)
else:
false_rows.append(row)
return true_rows, false_rows
def gini(rows):
counts = class_counts(rows)
impurity = 1
for lbl in counts:
prob_of_lbl = counts[lbl] / float(len(rows))
impurity -= prob_of_lbl**2
return impurity
def info_gain(left, right, current_uncertainty):
p = float(len(left)) / (len(left) + len(right))
return current_uncertainty - p * gini(left) - (1 - p) * gini(right)
def find_best_split(rows):
best_gain = 0
best_question = None
current_uncertainty = gini(rows)
n_features = len(rows[0]) - 1
for col in range(n_features):
values = set([row[col] for row in rows])
for val in values:
question = Question(col, val)
true_rows, false_rows = partition(rows, question)
if len(true_rows) == 0 or len(false_rows) == 0:
continue
gain = info_gain(true_rows, false_rows, current_uncertainty)
if gain >= best_gain:
best_gain, best_question = gain, question
return best_gain, best_question
class Leaf:
def __init__(self, rows):
self.predictions = class_counts(rows)
class Decision_Node:
def __init__(self,
question,
true_branch,
false_branch):
self.question = question
self.true_branch = true_branch
self.false_branch = false_branch
def build_tree(rows):
gain, question = find_best_split(rows)
if gain == 0:
return Leaf(rows)
true_rows, false_rows = partition(rows, question)
true_branch = build_tree(true_rows)
false_branch = build_tree(false_rows)
return Decision_Node(question, true_branch, false_branch)
def print_tree(node, spacing=""):
if isinstance(node, Leaf):
print (spacing + "Predict", node.predictions)
return
print (spacing + str(node.question))
print (spacing + '--> True:')
print_tree(node.true_branch, spacing + " ")
print (spacing + '--> False:')
print_tree(node.false_branch, spacing + " ")
my_tree = build_tree(training_data)
print_tree(my_tree)
def classify(row, node):
if isinstance(node, Leaf):
return node.predictions
if node.question.match(row):
return classify(row, node.true_branch)
else:
return classify(row, node.false_branch)
def print_leaf(counts):
total = sum(counts.values()) * 1.0
probs = {}
for lbl in counts.keys():
probs[lbl] = str(int(counts[lbl] / total * 100)) + "%"
return probs
with open( 'dane.txt', "r" ) as f:
testing_data = [ line.split() for line in f ]
file = open("decyzje.txt", "w")
file.write("")
file.close()
for row in testing_data:
pom = print_leaf(classify(row, my_tree))
f = open("decyzje.txt", "a")
if pom == {1: '100%'}:
f.write("B\n")
if pom == {2: '100%'}:
f.write("Z\n")
if pom == {3: '100%'}:
f.write(".\n")
f.close()

View File

@ -8,7 +8,7 @@ którym będzie poruszał się agent.
W skład zespołu wchodzą:
Tomasz Dzierzbicki,
Szymon Parafiński,
Laura Piotrowska,
Karol Piotrowski,
Jarosław Zbąski.
# Temat projektu i wybrane rozwiązanie

View File

@ -1,52 +0,0 @@
# Szymon Parafiński
implementacja drzew decyzyjnych z nauczonego pliku
![](images/last_images/1.png)
implementacja funkcji która decyduje co zrobić z obecnym polem
![](images/last_images/2.png)
Funkcja jest zastosowana podczas osiągniecia celu ruchu
![](images/last_images/3.png)
# Tomasz Dzierzbicki
implementacja sieci neuronowych z nauczonego pliku
![](images/last_images/4.png)
implementacja funkcji która szuka nalepszego pola do zastosowania na nim działań
![](images/last_images/5.png)
Funkcja jest używana w nieskończoność po uruchomieniu programu
![](images/last_images/6.png)
# Jarosław Zbąski
implementacja drzew decyzyjnych z nauczonego pliku
![](images/last_images/7.png)
implementacja funkcji która decyduje co posadzić
![](images/last_images/8.png)
Funkcja jest zastosowana po zebraniu na tym samym polu
![](images/last_images/9.png)
# Laura Piotrowska
implementacja algorytmu genetycznego
![](images/last_images/10.png)
Zaimplementowane zostało zbieranie warzyw, a algorytm przygotowuje porcję nowych roślin do zasadzenia
Algorytm jest wywoływany co ustaloną liczbę zebranych buraków lub ziemniaków
![](images/last_images/obsluga.png)
Implementacja zbierania
![](images/last_images/11.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

BIN
images/Tree/StanPola.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

View File

@ -3,31 +3,25 @@ import sys
def prediction(warzywo, nawoz ,srodek, stan_wzrostu):
filename = 'decisionTree.sav'
tree = pickle.load(open(filename, 'rb'))
val = (tree.predict([[warzywo, nawoz, srodek, stan_wzrostu]]))
save(val)
def save(prediction):
pred = str(prediction)
plik = open('dec.txt', 'w')
plik.write(pred[1])
plik.close()
filename = 'decisionTree.sav'
tree = pickle.load(open(filename, 'rb'))
val = (tree.predict([[warzywo, nawoz, srodek, stan_wzrostu]]))
print(decision(val))
def decision(prediction):
if prediction == 0:
return "Nie_podejmuj_dzialania"
elif prediction == 1:
return "Zastosuj_nawoz"
elif prediction == 2:
return "Zastosuj_srodek"
elif prediction == 4:
return "Zbierz"
elif prediction == 5:
return "Roslina_juz_zgnila__zbierz_i_wyrzuc"
if prediction == 0:
return "Nie_podejmuj_dzialania"
elif prediction == 1:
return "Zastosuj_nawoz"
elif prediction == 2:
return "Zastosuj_srodek"
elif prediction == 4:
return "Zbierz"
elif prediction == 5:
return "Roslina_juz_zgnila__zbierz_i_wyrzuc"
if __name__ == '__main__':
# Map command line arguments to function arguments.
prediction(*sys.argv[1:])
# Map command line arguments to function arguments.
prediction(*sys.argv[1:])

View File

@ -1,625 +0,0 @@
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454
0.15760229181 2.67552455e-9 0.00126219853 0.21969625454

View File

@ -5,10 +5,11 @@
[80,100] - przejrzała
nawóz przyśpiesza wzrost (czas * stałaPrzyrosuNawozu) poleInt[0]=1
użyty tylko kiedy kiełek lub młoda (ale max 1)
brak nawozu poleInt[0]=0
użyty tylko kiedy młoda (ale max 1)
środek zmienia granice rośliny poleInt[0]=2
użyty zawsze (ale max 1)
środek sprawia że roślina starzejąca uzdatnia roślinę do zbioru poleInt[0]=2
używany tylko jak starzejąca (ale max 1)
użyty środek i nawóz poleInt[0]=3

View File

@ -5,7 +5,7 @@ Ten dokument to raport z wykonanego drugiego zadania projektu zespołowego na pr
W skład zespołu wchodzą:
Tomasz Dzierzbicki,
Szymon Parafiński,
Laura Piotrowska,
Karol Piotrowski,
Jarosław Zbąski.
# Zasady poruszania się agenta po planszy