forked from s425077/PotatoPlan
39 lines
2.2 KiB
Markdown
39 lines
2.2 KiB
Markdown
# Final Evaluation
|
|
|
|
## Introduction
|
|
PotatoPlan is an Inteligent Tractor AI Project and is written in C# using Monogame framework.
|
|
NuGet Packages used and requeired for the project to work ar as follows:
|
|
C5
|
|
Microsoft.ML
|
|
Microsoft.ML.LightGBM
|
|
System.Drawing.Common
|
|
|
|
In our project agent (tractor) moves on resizable grid, which starting size is dependant on primary screen resolution.
|
|
The task of the agent is to go through all soil tiles and plant different types of crops, use proper fertilizer and collect crops when fully grown.
|
|
|
|
Window can be resized usind WASD. Tractor speed can be changed using UP and DOWN arrow keys, while simulation speed can be changed using LEFT and RIGHT arrow keys.
|
|
Also house placement can be changed by left clicking on a tile, and get info about the tile by right clicking.
|
|
|
|
Apart from Machine Learning Algorithms used in project there are also many different features implemented like:
|
|
- Using A* algorithm to find an optimal path to previously selected target.
|
|
- Target is found by scoring system which assign score to a tile based on few factors like production rate or distance.
|
|
- Dynamically allocated cargo space for each fertilizer based on how often each fertilizer is used.
|
|
- Day and night cycle and season system.
|
|
- Using noise map generated for rainfall calculations to draw moving clouds.
|
|
- ... and few other.
|
|
|
|
## Machine Learning Algorithms
|
|
Project in its current state uses Machine Learning Algorithms to solve 2 problems. Light Gradient-Boosted Trees are used for both problems:
|
|
1. Choosing a proper fertilizer which should be applied to current tile, based on few variables like nutrients in soil.
|
|
Applying proper fertilizer boosts production rate of a crop (rate of growth of a crop). This part was done by Oskar Nastały.
|
|
2. Calculating production rate of a tile based on rainfall and few other variabels. Noise map is generated and used to simulate dynamically changing rainfall.
|
|
Then once a day AI is used to calculate base production rate multiplier. This part was done by Joel Städe.
|
|
|
|
## Examples
|
|
|
|
### Clouds
|
|
![Clouds](https://git.wmi.amu.edu.pl/s425077/PotatoPlan/raw/Joel-ML/Evaluation_examples/Example_clouds.PNG)
|
|
|
|
### UI
|
|
![UI](https://git.wmi.amu.edu.pl/s425077/PotatoPlan/raw/Joel-ML/Evaluation_examples/Example_UI.PNG)
|