The Technology
Building Your Application

@RISK Developer's Kit
BestFit Developer's Kit
Evolver Developer's Kit
Order Now
Object Model
RISKOptimizer Developer's Kit
Trial Versions

Risk Advisory
IHS Energy


Academic Programmes
Corporate Licensing
Home > Palisade Products > Developer Kits > EDK

Evolver Developer's Kit

Add Evolver to Any Application!

Problems such as maximising the return on this portfolio can be modeled in any Windows application with the EDK! Click to view larger graphic.

The Evolver Developer's Kit (EDK) is Palisade's optimisation programming toolkit. The EDK allows you to build genetic algorithm optimisation models using Windows and .NET programming languages, such as C, C#, C++, Visual Basic, or Visual Basic .NET. Examples of programs written in Windows and .NET programming languages are provided.

The EDK offers access to all of the optimisation technology available in the world's fastest genetic algorithm-based solver, Evolver 4.0. It can be used to easily create custom applications that include genetic algorithm optimisation, such as job shop scheduling, investment portfolio analysis, budget allocation, and many more.

Unlike the Excel version of Evolver, the EDK does not require a spreadsheet to perform optimisation. This means user models can be larger and execute faster. All optimisation results can be accessed programmatically, directly in the developer's application.

EDK applications can be run in a desktop, network server, or web environment. Furthermore, the EDK fully supports multithreading to allow the development of scalable web applications. Models built using the EDK run optimisations and generate results entirely in the user's program. Genetic operators that drive the optimisation may be chosen by the programmer as well.

Why Use the EDK?
For many users the spreadsheet is the preferred modelling environment. However, many times an application written in a standard programming language needs optimisation capabilities. The application will have its own user interface, variables and model calculations. In addition, a developer may want to allow users to access the application over a corporate network or over the Internet.

The EDK allows custom applications such as these to run genetic algorithm optimisations to maximise or minimise a particular output. Applications written with the EDK will often run faster and can contain larger numbers of adjustable cells when compared with models written in spreadsheet versions of Evolver. This is because EDK applications are compiled and do not contain additional routines executed during spreadsheet recalculation.

The EDK lets this travel route optimisation model be distributed and run over the Internet. Click to view larger graphic. Click here to go to this model.

Distribute Custom Solutions Over the Web

The EDK allows you to streamline the distribution of your optimisation solutions through enterprise-wide web deployment. Server-based optimisation models - such as investment mix models, manufacturing applications, and scheduling tools - can be accessed over the Internet from any browser, allowing users to enter model parameters and inputs, run optimisations, and view results. Model structure, logic, and EDK optimisation libraries are stored on the server, ensuring consistency for all end-users and removing local installation and support issues.

Genetic Algorithm Optimisation and the EDK
In nature, we can observe "problems" being solved through evolution; species evolve as they adapt to dynamic environments. We extend this observation into the world of computer software via genetic algorithm (GA) optimisation. Evolver's innovative GA technology creates environments where possible solutions continuously crossbreed, mutate, and compete with one another, until they "evolve" into the best solution. As a result, GAs can find optimal solutions to virtually any type of problem, from the simple to the most complex.

The EDK solves optimisation problems using GAs. In a GA, each guess or possible solution to a given problem becomes an independent "organism" that can "breed" with other organisms. The users application acts as an environment for the organisms, determining which are "fit" enough to survive based on their results. Here is a brief description of the process:

  1. The EDK optimisation engine randomly generates many organisms (possible solutions), and calculates the result each organism produces. This entire "population" of organisms is ranked from best to worst.
  2. The GA engine then selects good organisms and swaps their variables (genes) using crossover and mutation to produce "offspring". If offspring do not produce a good result, two more parents are selected.
  3. If the offspring organism is good, it is re-inserted into the population.

As the EDK repeats steps 2 and 3, the population "evolves" increasingly optimal solutions.

Defining Constraints
Optimisation problems often involve constraints that have to be met for solutions to be valid. For example, when optimising an academic class schedule, no two classes can be scheduled in the same room during the same time slot, and the lab for a certain course may have to be scheduled for the same day as the lecture, but later in the day. Such problem constraints can easily be added to EDK models. The EDK’s GA engine will only generate solutions which meet these constraints, insuring realistic results every time. You can even define multiple constraints to a single problem.

ActiveX Interface Makes Integrating Optimisation Easy
The EDK ships with two programming interfaces: the ActiveX Interface and the standard DLL Interface.

The ActiveX/COM Interface makes development of customised optimisation programs easy. An intuitive set of methods and properties allow the developer to quickly set up an optimisation model in a custom application - defining adjustable variables, outputs, and constraints. (See a list of methods and properties, by object, here.) This interface can be used in any ActiveX-aware programming environment such as Visual Basic or C++. Example programs are included.

Because the .NET environment offers the COM Interoperability feature, .NET programmers can also take advantage of the easy-to-use ActiveX/COM interface. Examples in two .NET programming languages – C# and Visual Basic .NET – are included.

The EDK DLL Interface includes a library of functions that allows you to build optimisation models using C, Visual Basic or other programming languages. Use of the EDK function library requires an installed programming language and knowledge of programming techniques. You are not, however, restricted to using these languages for developing your programs. Any Windows-based language which can call .DLL functions can be used for developing EDK applications using the EDK DLL Interface. Example programs in C++ and Visual Basic are included.

Auto-Mutation Rates
The EDK features auto-mutation rate adjustment. The mutation rate determines the amount of randomness the EDK engine uses when generating new solutions. The EDK can monitor progress toward an optimal solution and adjust the mutation rate appropriately.

Selectable Genetic Operators
The EDK also allows users to select from a variety of available genetic operators, including heuristic crossover, boundary mutation, local search, and others. Choose the best operator for your specific program to find the optimal answer more efficiently. Using a powerful auto-operator feature, the EDK can also test all available operators and identify the best-performing one for a specific model.

Defining Problem Constraints and Finding a Solution that Meets the Constraints
Optimisation problems often involve constraints that have to be met for valid solutions. For example, in optimising the schedule of classes no two classes can be scheduled in the same room for the same time slot, and the lab for a certain course may have to be scheduled for the same day as the lecture, later in the day. Such problem constraints can be added to EDK models, and the optimisation algorithm will only generate solutions that meet the constraints.

With multiple constraints, finding a solution that meets all of them may itself be a complex problem. Version 4.1 improves the ability of the EDK to find such solutions by applying genetic algorithms to this task.

Typical Applications that Can Incorporate the EDK

Financial Planning
Portfolio Analysis
Ordering Policies
Product Mix Decisions
Job Shop Scheduling
Capital Budgeting
Capacity Planning
Route Planning
Power Station and Radio Tower Siting
Purchasing Decisions

Tough problems like finding the optimal locations for radio towers to maximise coverage are easily handled with the EDK.

Evolver Developer's Kit Features
 Add genetic algorithm optimisation to any Windows application
 ActiveX programming interface makes development easy
 Examples in Windows and .NET programming languages
 Applications outside Excel often optimise even faster than Evolver for Excel
 Design your own custom interface
 Auto-mutation rate adjustment - provides faster and better solutions
 Selectable genetic operators - provides more accurate solutions to various problems; auto-operator feature chooses the optimal operator
 Stopping conditions can be set to end your optimisation after a specified time period or number of trials, or if no significantly better solution has been found within a defined number of trials
 Optimise with an unlimited number of variables
 Deploy EDK applications over a network or Web server for efficient distribution
 Save models and optimisation results to files

Deployment Options That Meet Your Needs
The EDK Developer Edition gives you everything you need to get up and running with your own optimisation application. Affordable and flexible, it is ideal for developing and testing custom optimisation solutions. Multiple Developer Kits can be purchased to run applications in small workgroups. The Developer Edition includes:

DLL and ActiveX functions to perform all Evolver features as described above
Examples in Windows and .NET programming languages
Installer for deployment of an unlimited number of 30-day demo licenses of any application developed using the EDK

The Developer Edition is designed for software development and testing. To run applications in a production setting, Palisade offers customised deployment licenses. We can work with you to develop a tailored EDK licensing solution to meet your organisation’s needs. Call our Technical Sales department at +44 1895 425050 or e-mail us at to discuss your licensing needs.

View example models using EDK.

Order Evolver Developer's Kit Now!

Download Only
Evolver Developer's Kit
Note: Applications developed using the EDK cannot be left running unattended for long periods or in a production environment. The Developer's Kit is designed for software development and testing only. To run applications unattended or in a production setting, or to distribute finished applications, contact Manuel Carmona at +44 1895 425050 to discuss licensing options.
Save £15

  Prices include one year of Maintenance, which can be removed from your shopping cart at any time.
Download Only (Save all shipping charges.)
No, ship me EDK. (I will enter my shipping address later.)



Free Trial Version: Download software now and use for 30 days, free! Download here.

System Requirements: IBM PC compatible Pentium or higher; Microsoft 98, Me, 2000, NT; 16MB RAM installed.

Recommended: 32MB RAM installed.

Technical Support: Technical and development support is available. Please or call our Sales Department for details.