PotatoPlan/Final_evaluation.md

2.2 KiB

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

UI

UI