|
This page describes Web Service that executes Parallel
Evolutionary Algorithm (Parallel EA) and other applications that uses created
Web Service. The motivations for this approach is to utilize computing
resources available on the Internet in order to provide the computing power
required for solving difficult problems.
Many NP- Hard problems are successfully solving with EA
techniques. At the same time, communication between Web service that executes
algorihm and application that uses service in EA usually isn’t large and (at
the same time) computational efforts are significant.
Evolutionary algorithm
Under the most frequent classification, Evolutionary Algorithms, together with
Fuzzy Logic and Neural Networks, is part of so-called Soft Computing. EA
includes Genetic Algorithms, Evolutionary Programming, Evolutionary Strategies
and Genetic Programming and some similar techniques.
Evolutionary Algorithms are applying on some optimization problems - either
theoretical (job shop scheduling, traveling salesman) or practical (economic
modeling, pipeline projecting); in machine learning; in game theory; in neural
networks; in geometric reasoning etc.
Darwin’s evolution theory and Mendel’s laws of inheritance are theoretical
inspirations of Evolutionary Algorithms. If Darwin’s theory describes natural
processes, then EA imitate natural processes attempting to solve particular
problem.
According to Darwin, individuals in population are competing for resources.
Facts that lie in essence of natural selection process are:
-
Better-fitted individuals survive and they have stronger influence on forming
new generations.
-
Individual in new generation is formed by recombination of parent’s genetic
material.
-
From time to time mutation (random change of genetic material) takes place.
Great deals of popularity of EA lies in fact that getting new solutions has,
indeed, parallel nature. Holland observed that parallel nature of reproductive
paradigm and inherent efficiency of parallel processing ten years before formal
genesis of EA.
Also, Evolutionary Algorithms are easy to hybridize: they easy can be combined
with other algorithms that solve specific problem. New, hybrid, algorithm has
good features of both base algorithms .
EA has following structure:
-
Search space – space of all possible solutions.
-
Population – set of actual candidates for solution; elements of population are
called individuals or items, or search nodes, or points in search space.
-
String space – space that contains string representations of individuals in
population.
-
Functions for conversion between points in search space and points in string
space (coding and decoding).
-
Set of genetic operators for generating new strings (and new individuals).
-
Fitness function – it evaluate fitness (degree of adaptation) for each
individual in population.
-
Stochastic control of genetic operators.
Basic steps in EA are:
-
Initialization – generating initial population by random sampling.
-
Evaluation – calculating fitness for all individuals in population.
-
Selection – choosing surviving individuals in population, according to values
of fitness function.
-
Recombination (includes crossover and mutation) – changing individual’s
representation.
-
Repeating steps 1 to 4 until fulfilling finishing criteria.
Features that made distinction between EA and any other problem-solving method
are:
-
EA works with codes that represent individuals, not with pure individuals.
-
EA search in several points (population) simultaneously, therefore it is very
robust.
-
EA uses probabilistic transition rules, rather than deterministic.
-
EA (in its pure form) doesn’t exploit additional information about problem’s
nature.
Begining
of page
Web service
Evolutionary Algorithms (EA) Web service, named EaWebService (.wsdl
|
.asmx ), can be used in all scenarios that involve optimization via
EA. At the same time, it can be used in GP-like manner.
In order to execute EA, application sends to Web service five
XML strings:
-
parameterXML
- parameters of the EA that will be executed. Some of those parameters (such
are replacement in population, selection, finishing criteria, random generator,
report) aren’t depending of item representation and some others (like
population, init, instance, crossover and mutation) are. Each parameter is XML
node with elements that determine parameter value. EaWebService supports three
types of item representation (as binary string, as float and tree-like
representation as XML stream);
-
problemArgumentsXml
– problem (in XML representation) that should be solved by EA. For instance,
function expressions are represented in XML format and same code can optimize
different functions;
-
initDataXML
– when it is appropriate, initial data won’t be set with random generator, but
read from XML supplied with this parameter;
-
topologyXML
– links among Web Services of the same kind that collaborate (work in parallel)
in order to find solution;
-
knownSolutionXML – represents known solution, so EA can stop when solution is
reached (mainly used in testing purposes);
Web Service reports back (in XML format) solution and additional
results that are needed. Question which data are needed and when they are
needed is answered by setting XML report subnode in parameterXML
argument, to specific value.
Web Service allows application to interrupt ongoing execution and report
back current result in any moment of execution.
This service also (using reflection) allows applications to obtain
information about classes that represent specific part of EA and, on that way,
make easier and faster creation of EA.
This service is, at the same time, very complex, very efficient and can
grow easily.
Easiness of growing is due to the fact that service is heavily based
on interfaces. So, whenever some class method or property is accessed from
outer space, it is done by obtaining interface and accessing interface’s method
or property (not class directly).
Web service’s complexity and efficiency come from the fact that Web Service is
multi-threaded application with Execute thread, StopExecution thread, Migrate
thread and Cleanup thread.
Begining
of page
XML configuration files
XML strings are validated (via schemas) on the
EaWebService
server.
Following links represent repository of
the XML strings that can be supplied as parameters of the web
service:
Begining
of page
Web application
When such core service is created, author (even if he is not expert in EA)
can experiment (by setting values of XML elements) in order to obtain best
stochastic parameters to solve specific problem, or easily switch from one
problem domain to another. Consumer application just has to handle strings in
XML format that are parameters of EA, and properly render and show report
string (again in XML format).
One example of consumer Web application (denoted as
EaWebApplication
) that covers almost all different properties of proposed web service and
different ways of using it is given there.
Begining
of page
All necessary questions,
comments, sugestions and corrections send to address:
vladaf@matf.bg.ac.yu
or
vladofilipovic@hotmail.com
Begining
of page
|