Title: 8th Korea-Russia International Symposium on Science and Technology - KORUS 2004
1USING DESIGN PATTERNS FOR DESIGN OF SOFTWARE
ENVIRONMENT FOR RESEARCHES IN GENETIC ALGORITHMS
- Yuri R. Tsoy, Vladimir G. Spitsyn,
- Department of Computer Engineering
- Tomsk Polytechnic University
- neuroevolution_at_mail.ru
2Report structure
- 1. Introduction
- 2. Software environment description
- 3. Genetic algorithm and design patterns
- 4. Flexibility and extensibility
- 5. Conclusion
3Design patterns and software design
- Design pattern - the way of cooperation of
objects and classes that are adapted for common
design task solution in certain context. (by
Erich Gamma, Richard Helm, Ralph Johnson and John
Vlissides) - Main advantages available with use of design
patterns - reusability
- flexibility
- extensibility
4Researches in genetic algorithms
- Problems
- No specialized software environment for
algorithms parameters settings and control,
experimental data processing and visualization. - No methodology of flexible software
implementation of genetic algorithms.
5Report structure
1. Introduction 2. Software environment
description 3. Genetic algorithm and design
patterns 4. Flexibility and extensibility 5.
Conclusion
6Common program architecture
5 main blocks - Interface unit - Genetic
algorithm block - Task environment block - Data
analysis block - Visualization block
7Interface unit
- Isolates all blocks from each other. All
communications are made via Interface unit using
unified data format. - This helps to combine different implementations
of different blocks.
8Genetic algorithm block
- Provides implementation of some model of genetic
algorithm. - Block is separated from other systems blocks for
purposes of use of different genetic algorithm
models for one and the same task solution.
9Task environment block
- Provides implementation of some task environment.
Can be used for both modeling and evaluation
purposes. - Block is separated from other systems blocks for
purposes of use of different tasks with one and
the same genetic algorithm model.
10Data analysis block
- Provides instruments and methods for analysis of
data from both Genetic algorithm and Task
environment blocks. - Block is separated from other systems blocks for
purposes of use of different data analysis
approaches and implementations. In fact can
consist of several sub-blocks.
11Visualization block
- Provides visualization of data processed by Data
analysis block or passed from Genetic algorithm
and Task environment block. - Block is separated from other systems blocks for
purposes of use of different data visualization
algorithms and methods.
12General block structure
Control unit - provides routines for control of
blocks functioning. Processing unit -
implements functions specific for given
block. Internal data - stores internal block
data.
13Report structure
- 1. Introduction
- 2. Software environment description
- 3. Genetic algorithm and design patterns
- 4. Flexibility and extensibility
- 5. Conclusion
14Taking a deeper look at Genetic algorithm block
- Following parameters of genetic algorithm can
vary depending on given GA model - genetic representation
- population initialization
- population evaluation
- selection strategy
- reproduction strategy (parental pair selection)
- genetic operators
- next generation formation.
15Taking a deeper look at Genetic algorithm block
(2)
- Parameters objects created by the Factory
patterns - genetic representation
- population initialization
- genetic operators
- Task (algorithm type) dependent parameters
objects - population evaluation
- Universal (task independent) parameters objects
- selection strategy
- reproduction strategy (parental pair selection)
- next generation formation.
16Report structure
- 1. Introduction
- 2. Software environment description
- 3. Genetic algorithm and design patterns
- 4. Flexibility and extensibility
- 5. Conclusion
17Flexibility and extensibility (1)
- Introduced architecture allows to
- Implement blocks as components of different
specialized software packages. - Combine different programs and make them work
together using appropriate data and control
adapters. - Organize inner structure of certain block in any
way. - Combine blocks independently and transparently
for other blocks. For example, Data analysis and
Visualization blocks can be united in one larger
unit without any changes in other blocks.
18Flexibility and extensibility (2)
- Introduced architecture allows to
- Modify blocks without any changes in other parts
of the introduced system. It is possible to
change operators or encoding method in Genetic
algorithm block but other blocks will never
know about it. - Extend blocks functionality independently. For
example it is possible to add some new method of
data analysis in appropriate block then make some
changes in control adapter and use new ability.
19Report structure
- 1. Introduction
- 2. Software environment description
- 3. Genetic algorithm and design patterns
- 4. Flexibility and extensibility
- 5. Conclusion
20Conclusion
- The result of this project is intended for
research purposes and will be distributed free.
Introduced software architecture can be applied
for many other research areas. - First release approximately 2-nd quarter of
2005. Source code and documentation will be
available too.
21Thank you for your attention!