Land Design Evolver

Introduction

Kingbird Software has developed software specifically for small scale diverse farms and large gardens. The purpose of the software is to aid in the design of crop layouts in 3 dimensions and to also consider the timing of crop plantings for small scale diverse farms. The software considers many requirements or preferences specified by the user and produces an optimal design that takes them all into consideration. The software accomplishes the task of finding optimal designs through the use of a genetic algorithm. Genetic algorithms simulate the process of biological evolution to find optimal solutions to problems from a vast number of possible solutions. Rather than testing every possible solution, which could be time consuming and inefficient, the software slowly evolves towards optimal solutions. This software was developed using VB.NET.

Detailed Description

It is believed that small-scale diverse farms are more likely to avoid crop pest and disease problems than large-scale monoculture farms. However, there may be a tendency to reduce the diversity of crops to avoid the complex task of designing and managing diverse farms. Farms could be made more efficient and problems could be avoided through a design that optimizes the timing and placement of crops. In addition, the choice of crops and varieties well suited to the local environment could help to determine the success of the farm.

Existing software tools can help manage and organize the many different tasks required for such diverse systems. But there is a need for software that is able to select optimal crop layout designs from a vast number of possible designs. The software needs to consider spatial relationships in 3 dimensions and to also consider the timing of crop plantings. The Land Design Evolver software has been developed to fit this need.

The system considers many requirements (or preferences) specified by the user, and produces an optimal design that takes them all into consideration. For example, the farmer may want to consider the following types of requirements in a design:

  • Planting certain crops in close proximity causes problems.
  • Certain crops grown together provide mutual benefits.
  • Spring crops with a short growing season can be grown in the unused space alongside warm season crops.
  • Pests or diseases can be avoided by not growing a crop during a certain time period.
  • Certain crops should be grown as close to a water supply as possible.
  • Certain crops should not be grown in the same area during two consecutive years to avoid soil born disease problems.
  • A certain area of the farm is less likely to receive frost and is therefore better for certain crops.
  • Certain crops are easier to manage when grown together in blocks rather than interspersed with other crops.
  • Avoid/prefer planting certain crops in the shade of taller plants.

These are just a few of the possible requirements/preferences a farmer may want to consider when deciding where and when to plant crops. Often many of these requirements conflict with each other and the optimal solution is some compromise. It can be difficult for the human mind to grasp all of these considerations together. The farmer may therefore unintentionally limit the number of things to consider. A design that takes more of these into consideration will improve the efficiency and success of the farm. The Land Design Evolver software tool, which aids in this task, can help improve farm efficiency anywhere in the world.

Rather than providing a database of agricultural information, the software allows the users to specify their own requirements/preferences specific to their farm. The software requires a list of crops and how much of each crop to include. The size and required growing season for each crop need to be specified. The software is very flexible so that it can work with any food production system in the world.

A front-end application being developed will provide a user-friendly interface to the software engine, allowing users to see the results in a map as it progresses, and stop the process at any time. The interface will also allow users to specify the crops and how much of each crop to include, as well as the requirements/preferences for the design. Each preference will be given a rating to indicate how important it is.

The software accomplishes the task of finding optimal designs through the use of a genetic algorithm. Genetic algorithms simulate the process of biological evolution to find optimal solutions to problems from a vast number of possible solutions. Rather than testing every possible solution, which could be time consuming and inefficient, the software slowly evolves towards optimal solutions. The genetic algorithm for the software follows these steps:

  1. A "population" of garden designs is created where the location of each plant is determined randomly.
  2. The "fitness" of each individual garden design is evaluated to determine which are the best. The garden designs are tested to see how well they meet the requirements or preferences specified by the user.
  3. Select the most "fit" individual garden designs in a semi random process that may also include some of the less "fit" individuals. This will result in a smaller selected set of the total population.
  4. "Mate" the most "fit" individuals to produce "offspring" that represent a blend of the "parents". There will be more than one set of "parents" that are "mated" to produce a new population of equal size to the original.
  5. "Mutate" some of the individuals. This is necessary in order to produce novel designs. Some of the crop locations will be changed to randomly selected locations.
  6. Proceed to step 2 and repeat until the user stops the process.

The results of the process will be stored in the ESRI shapefile format by the front-end application being developed. The shapefile will consist of 1-foot squares covering the area of the farm to be used for production. Attributes will specify which crop will cover that square for each week (or specified period) of the year. This will provide an easy way to view the design for any period of the year, and each period of the design could be displayed in rapid succession. Since some crops use less than, and others use more than one square foot, there will be a related table used to determine how much of a crop is contained in each square foot area.

The following screenshots have been taken of the front-end application being developed that utilizes the Land Design Evolver engine software. This figure shows a simple test of a design with 4 crops and multiple constraints. The lettuces are clustered near two water sources, one on the left, and the other on the right.

Land Design Evolver Main 1

The following figure shows the same design but at a different period. A constraint has been set up to force the eggplant to be planted at a warmer month. Another constraint has forced the eggplant to be grouped together in a block. Another constraint has caused the carrots and beets to be mixed evenly to maximize a beneficial relationship that the user has determined.

Land Design Evolver Main 2

This figure shows the form for setting up a population, a set of constraints, and a set of plant varieties.

Land Design Evolver Population Properties

This figure shows one of the constraint related forms. The user has determined that carrots and beets are good companion plants.

Land Design Evolver Proximity Constraint

This figure shows another constraint related form. The user would prefer to only grow eggplant during the warmest months.

Land Design Evolver Temporal Constraint

This figure shows the form used to specify properties for a plant variety.

Land Design Evolver Variety Properties

This figure shows the dialog used to create a shapefile and display it in a map.

Land Design Evolver Display Maps

This figure shows the results of the evolution. The status dialog can be left open while the evolution is running. The status is continually updated during the evolution.

Land Design Evolver Population Status

This software can be obtained for free by contacting Kingbird Software. Development of this software is currently on hold due to a lack of funding. If you are interested in funding future development of this or related software please contact us.