The EDK offers access to all of the optimization 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 optimization, 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 optimization. This means user models can be larger and execute faster. All optimization 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 optimizations and generate results entirely in the user's program. Genetic operators that drive the optimization may be chosen by the programmer as well.
Why Use the EDK?
For many users the spreadsheet is the preferred modeling environment. However, many times an application written in a standard programming language needs optimization 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 optimizations to maximize or minimize 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.
Click here to go to this model.
Distribute Custom Solutions Over the Web
The EDK allows you to streamline the distribution of your optimization solutions through enterprise-wide web deployment. Server-based optimization 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 optimizations, and view results. Model structure, logic, and EDK optimization libraries are stored on the server, ensuring consistency for all end-users and removing local installation and support issues.
Genetic Algorithm Optimization 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) optimization. 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 optimization 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:
- The EDK optimization 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.
- 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.
- 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.
Optimization problems often involve constraints that have to be met for solutions to be valid. For example, when optimizing 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 Optimization Easy
The EDK ships with two programming interfaces: the ActiveX Interface and the standard DLL Interface.
The ActiveX/COM Interface makes development of customized optimization programs easy. An intuitive set of methods and properties allow the developer to quickly set up an optimization 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.
.NET AND ACTIVEX
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 optimization 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.
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
Optimization problems often involve constraints that have to be met for valid solutions. For example, in optimizing 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 optimization 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
Evolver Developer Kit Features
- Add genetic algorithm optimization to any Windows application
- ActiveX programming interface makes development easy
- Examples in Windows and .NET programming languages
- Applications outside Excel often optimize 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 optimization after a specified time period or number of trials, or if no significantly better solution has been found within a defined number of trials
- Optimize with an unlimited number of variables
- Deploy EDK applications over a network or Web server for efficient distribution
- Save models and optimization 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 optimization application. Affordable and flexible, it is ideal for developing and testing custom optimization 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 customized deployment licenses. We can work with you to develop a tailored EDK licensing solution to meet your organization’s needs. Call our Technical Sales department at 1-800-432-RISK or e-mail us at firstname.lastname@example.org to discuss your licensing needs.