Compare commits

..

5 Commits

58 changed files with 673 additions and 6268 deletions

1133
Main.cpp

File diff suppressed because it is too large Load Diff

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,211 +0,0 @@
# Podprojekt indywidualny - Szymon Parafiński
---
W folderze Sklearn znajduje się wykorzystana baza, wygenerowane drzewo oraz reszta plików związana z podprojektem.
## Wykorzystana metoda uczenia
Do realizacji podprojektu wykorzystano drzewa decyzyjne do decydowania, co należy zrobić po najechaniu na konkretne pole.
Drzewo decyduje na jakim etapie jest roślina analizując poszczególne stany danego pola:
- Dopiero co zasiana (kiełek)
- 0: "Nie_podejmuj_działania"
- Roślinka kiełkująca (młoda)
- 1: "Zastosuj_nawóz"
- Roślina starzejąca się, bez środka ochrony
- 2: "Zastosuj_środek"
- Roślinka dojrzałam gotowa do zbioru
- 4: "Zbierz"
- Roślina zepsuta, nie nadaje się do użytku
- 5: "Roślina_już_zgniła-zbierz_i_wyrzuć".
Do implementacji drzew decyzyjnych w Pythonie wykorzystane zostały biblioteki
**sklearn** , **pandas**,**sys** oraz **pickle**.
## Uczenie modelu
#### loadLearningBase(): [python]
Metoda **loadLearningBase** rozpoczyna od utworzenia zbioru uczącego na podstawie tabeli zawierającej informacje wszystkich możliwych stanach roślinki.
* *col_names* -> zawiera nagłówki poszczególnych kolumn
* *feature_cols* -> zawiera nagłówki z kolumnami w których znajdują się dane do analizy
```
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())
```
Tutaj dzielimy podane kolumny na dwa typy zmiennych:
* zmienne docelowe ---> y
* i zmienne funkcyjne ---> X
Aby móc sprawdzić wydajność modelu, dzielę zestaw danych na zestaw szkoleniowy i zestaw testowy ---> za pomocą funkcji train_test_split ().
```
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
```
Wywołanie funkcji odpowiedzialnej za wygenerowanie drzewa.
```
data = generateDecisionTree(X_train, X_test, y_train, y_test)
```
Dodatkowe elementy pozwalające na wizualizację stworzonego drzewa decyzyjnego poprzez wygenerowanie drzewa zależności if/else lub najpierw do pliku .dot, który następnie poddany odpowiedniej 'obróbce' utworzy obraz.
```
"""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
```
---
#### generateDecisionTree(): [python]
Metoda **generateDecisionTree** generuje drzewo decyzyjne na podstawie dostarczonej bazy danych.
Do zmiennej *clf* zapisujemy drzewo decyzyjne z biblioteki **sklearn** utworzone za pomocą metody **DecisionTreeClassifier** z parametrem **criterion** ustawionym na **"entropy"**, który pozwala na uzyskiwanie informacji.
Na drzewie wywołujemy metodę **fit**, która dopasowuje do drzewa zbiór uczący zadany w tablicach **X_train** i **y_train**.
Po dopasowaniu danych możemy przewidzieć stan nowych przykładów, co robimy wywołując na drzewie metodę **predict** z parametrami, które zawierają informację o stanie danego pola.
```
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)
```
Aby ocenić dokładność naszego modelu przewidujemy odpowiedzi dla naszego zestawu testowego, aby móc go porównać z zestawem y_test i otrzymać dokładność wygenerowanego modelu.
```
# 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))
```
---
#### main(): [python]
Metoda main wywołuje pozostałe metody oraz zapisuje wygenerowany model do pliku .sav aby nie było trzeba ponownie generować drzewa, tylko wczytać już te wygenerowane.
```
generated = loadLearningBase()
# Save generated tree
filename = 'decisionTree.sav'
pickle.dump(generated, open(filename, 'wb'))
```
## Implementacja w projekcie całościowym
Klasa wywoływana w **C++** nazywa się *injectCode*.
Działanie polega na tym że, funkcja **stanPola** sprawdza jakie wartości ma dane pole i generuje odpowiednie polecenie do wykonania.
#### stanPola(): [C++]
```
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
polecenie = "python pliki/injectCode.py 1 ";
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);
decisionTree(polecenie);
}
```
Następnie funckja **decisionTree** wykonuje wygenerowane zapytanie.
#### decisionTree(): [C++]
```
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]
```
import pickle
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()
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 __name__ == '__main__':
# Map command line arguments to function arguments.
prediction(*sys.argv[1:])
```
Generowane polecenie wygląda w ten sposób:
```
python injectCode.py a b c d
```
Gdzie:
* a -> rodzaj warzywa
* b -> czy roślina była nawożona
* 0: "nie"
* 1: "tak"
* c -> czy na roślinie był stosowany środek ochronny
* 0: "nie"
* 1: "tak"
* d -> stan wzrostu w jakim znajduje się roślina
* [1,20) - kiełek,
* [20,45) - młoda roślina,
* [45,85) - dojrzała,
* [80,100] - starzejąca się.

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)

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;
}

View File

@ -1,712 +0,0 @@
#include<iostream>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<string>
#include<list>
#include<set>
#include<math.h>
#include<stack>
#include<fstream>
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][6];
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 'Z':
{
color("cyan", "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] = 'Z';
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 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()
{
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();
start1(); // 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

Binary file not shown.

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

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

@ -1,33 +0,0 @@
import pickle
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()
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 __name__ == '__main__':
# 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,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