KR20010095569A - Genetic Programming Method and System using Process Decomposition - Google Patents

Genetic Programming Method and System using Process Decomposition Download PDF

Info

Publication number
KR20010095569A
KR20010095569A KR1020000018817A KR20000018817A KR20010095569A KR 20010095569 A KR20010095569 A KR 20010095569A KR 1020000018817 A KR1020000018817 A KR 1020000018817A KR 20000018817 A KR20000018817 A KR 20000018817A KR 20010095569 A KR20010095569 A KR 20010095569A
Authority
KR
South Korea
Prior art keywords
hardware
tree
node
subtree
programming
Prior art date
Application number
KR1020000018817A
Other languages
Korean (ko)
Inventor
장병탁
석호식
Original Assignee
장병탁
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 장병탁 filed Critical 장병탁
Priority to KR1020000018817A priority Critical patent/KR20010095569A/en
Publication of KR20010095569A publication Critical patent/KR20010095569A/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0224Process history based detection method, e.g. whereby history implies the availability of large amounts of data
    • G05B23/0227Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions
    • G05B23/0229Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions knowledge based, e.g. expert systems; genetic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Physiology (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Feedback Control In General (AREA)

Abstract

PURPOSE: A genetic programming method using a process division method and a system therefor are provided, thereby accomplishing the adaptive system which can adapt to the changes of environment and duty. CONSTITUTION: The genetic programming method comprises the steps of: analyzing the given hardware resource; selecting a function nod and a vertical nod consisting of a tree; selecting a condition nod used as a root nod of sub-tree; evolving the tree using the function nod and vertical nod; dividing the evolved tree into an appropriate size; modifying the divided subtree to be suitable for the hardware; making the hardware circuit containing the divided subtree and the condition nod and expressing it to the hardware; calculating the final results by the sum of interim results; and performing the context switching by automatically dividing the process and converting it.

Description

프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템{Genetic Programming Method and System using Process Decomposition}Genetic Programming Method and System Using Process Decomposition

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템은 유전자프로그래밍을 이용하여 목표기능을 갖는 유전자 트리를 진화시킨 후, 진화된 유전자 트리를 분할하여 하드웨어 표현으로 변환하는 방법으로서 콘텍스트 전환(context switching)방법을 도입하였다.Genetic programming using a process partitioning and a system using the same according to the present invention is a method of converting a gene tree having a target function using gene programming and then splitting the transformed gene tree into a hardware representation as a context conversion (context The switching method is introduced.

상기 콘텍스트 전환(context switching)방법은 진화연산을 통하여 커다란 프로세스를 작은 프로세스의 집합으로 분할한 후, 분할 결과를 하드웨어 구현 가능한 형태로 변환하고, 계산순서에 따라 분할된 서브 프로세스들을 실행시키고, 중간계산결과를 합하여 최종결과를 구성하는 방법이다.In the context switching method, an evolutionary operation divides a large process into a set of small processes, converts the partitioning result into a hardware-implementable form, executes the divided subprocesses according to the calculation order, and performs intermediate calculation. The result is the sum of the results.

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템은 진화 하드웨어의 동적 재구성 방법으로 유전자 프로그래밍을 이용한다.Genetic programming using process partitioning and the system using the same according to the present invention uses genetic programming as a dynamic reconstruction method of evolutionary hardware.

진화 하드웨어는 실행 시간 동적 재구성 능력을 이용하여 자동적으로 환경의 변화나 임무의 변화에 적응하도록 설계된 하드웨어를 의미한다. 종래의 대부분의 연구는 진화 하드웨어의 제어를 위하여 유전자 알고리즘을 이용하였다.Evolutionary hardware refers to hardware that is designed to automatically adapt to changes in the environment or missions using runtime dynamic reconfiguration capabilities. Most previous studies have used genetic algorithms for control of evolutionary hardware.

네이토(Naito)는 유전자 알고리즘을 이용하여 자율 이동 로봇의 제어 회로를 시뮬레이션 상에서 생성하였다(T. Naito, R. Odagiri, Y. Matsunaga, M. Tanifuji, and K. Murase, Genetic Evolution of a Logic Circuit Which Controls an Autonomous Mobile Robot,First International Conference on Evolvable Systems1996, pp. 210-219, 1996.).Naito created a control circuit of an autonomous mobile robot on a simulation using a genetic algorithm (T. Naito, R. Odagiri, Y. Matsunaga, M. Tanifuji, and K. Murase, Genetic Evolution of a Logic Circuit). Which Controls an Autonomous Mobile Robot, First International Conference on Evolvable Systems 1996, pp. 210-219, 1996.).

이바(Iba)는 PLD의 컨피규레이션 비트스트림(configuration bit stream)을 유전자 알고리즘의 개체로 간주하여 하드웨어 회로를 진화시켰다(H. Iba, M. Iwata, and T. Higuchi, Machine Learning Approach to Gate-Level Evolvable Hardware,First International Conference on Evolvable Systems 1996, pp. 327-343, 1996.).Iba evolved hardware circuits by considering the configuration bit stream of the PLD as an entity of genetic algorithms (H. Iba, M. Iwata, and T. Higuchi, Machine Learning Approach to Gate-Level Evolvable). Hardware, First International Conference on Evolvable Systems 1996 , pp. 327-343, 1996.).

밀러(Miller)는 XILINX xc6216 FPGA를 이용하여 3-비트 이진 곱셈기를 진화시켰다(J. F. Miller, and P. Thomson, Aspects of Digital Evolution: Geometry and Learning,Second International Conference on Evolvable Systems 1998, pp.25-35, 1998).Miller evolved 3-bit binary multipliers using XILINX xc6216 FPGAs (JF Miller, and P. Thomson, Aspects of Digital Evolution: Geometry and Learning, Second International Conference on Evolvable Systems 1998 , pp. 25-35 , 1998).

진화 하드웨어 연구자들이 유전자 알고리즘을 선호하는 데에는 다음과 같은 이유가 있다. 첫째, 유전자 알고리즘은 기반 하드웨어의 컨피규레이션 비트스트림 (configuration bit stream)을 개체로 사용할 수 있다. 둘째, 유전자 알고리즘은 간단하면서도 실용성이 증명된 알고리즘이다. 셋째, 유전자 알고리즘의 하드웨어 구현은 유전자 프로그래밍의 하드웨어 구현보다 간단하다.Evolutionary hardware researchers prefer genetic algorithms for the following reasons: First, genetic algorithms can use the configuration bit stream of the underlying hardware as an entity. Second, genetic algorithms are simple and practical. Third, the hardware implementation of the genetic algorithm is simpler than the hardware implementation of the genetic programming.

그러나, 유전자 프로그래밍을 이용하려는 시도가 없었던 것은 아니다.However, there was no attempt to use genetic programming.

코자(Koza)는 소팅 네트워크의 진화를 위하여 진화 하드웨어를 이용하였다. Koza는 진화 하드웨어 상에 적합도 평가를 위한 병렬 연산회로를 구현하여 계산 시간을 감소시켰다(J. R. Koza, F. H. Bennett III, J. L. Hutchings, S. L. Bade, M. A. Keane, and D. Andre, Evolving computer programs using rapidlyreconfigurable field-programmable gate arrays and genetic programming,Proceedings of the ACM Sixth International Symposium on Field Programmable Gate Arrays, pp. 209-219, 1998).Koza used evolutionary hardware to evolve the sorting network. Koza has implemented parallel computational circuits for fitness evaluation on evolutionary hardware (JR Koza, FH Bennett III, JL Hutchings, SL Bade, MA Keane, and D. Andre, Evolving computer programs using rapidly reconfigurable field-). programmable gate arrays and genetic programming, Proceedings of the ACM Sixth International Symposium on Field Programmable Gate Arrays , pp. 209-219, 1998).

베네트(Bennett III)는 60 데시벨 OP 앰프의 진화를 위하여 유전자 프로그래밍을 이용하였다(F. H. Bennett III, J. R. Koza, D. Andre, and M. A. Keane, Evolution of a 60 Decibel Op Amp Using Genetic Programming,First International Conference on Evolvable Systems 1996, pp. 455-469, 1996).Bennett III used gene programming for the evolution of 60 decibel op amps (FH Bennett III, JR Koza, D. Andre, and MA Keane, Evolution of a 60 Decibel Op Amp Using Genetic Programming, First International Conference on Evolvable Systems 1996 , pp. 455-469, 1996).

사카나시(Sakanashi)는 이진 결정 다이어그램의 하드웨어 구현에서 유전자 프로그래밍을 이용하여 회로 표현의 정확성을 향상시켰다(H. Sakanashi, T. Higuchi, H. Iba, and Y. Kakazu, Evolution of Binary Diagrams for Digital Circuit Design Using Genetic Programming,First International Conference on Evolvable Systems 1996, pp. 470-481, 1996).Sakanashi has improved the accuracy of circuit representation using genetic programming in the hardware implementation of binary decision diagrams (H. Sakanashi, T. Higuchi, H. Iba, and Y. Kakazu, Evolution of Binary Diagrams for Digital Circuit). Design Using Genetic Programming, First International Conference on Evolvable Systems 1996 , pp. 470-481, 1996).

유전자 알고리즘과 비교해 보았을 때, 유전자 프로그래밍의 장점은 트리 개체의 함수 노드를 하드웨어 회로의 함수 블록으로 바로 사용할 수 있다는 점이다.따라서, 유전자 프로그래밍에 기반한 탐색 방법은 무작위로 분포된 이진 스트링에서 함수 블록을 진화시키는 불필요한 탐색과정을 회피할 수 있다. 그러나, 유전자 프로그래밍의 큰 개체 크기로 인한 하드웨어 구현의 난점 때문에 하드웨어 응용을 위한 새로운 방법의 제시가 요구되고 있다. 그리고, 많은 연구자들이 다양한 알고리즘에 기반한 자율 로봇을 제작하고자 노력하여 왔다.Compared to genetic algorithms, the advantage of genetic programming is that the functional nodes of the tree object can be used directly as functional blocks in hardware circuits. Thus, a search method based on genetic programming uses function blocks in randomly distributed binary strings. You can avoid unnecessary search processes that evolve. However, due to the difficulty of hardware implementation due to the large individual size of gene programming, a new method for hardware application is required. In addition, many researchers have tried to make autonomous robots based on various algorithms.

놀피(Nolfi)는 모듈라 신경망에 기반한 쓰레기 수집 로봇을 제작하여 뛰어나성능을 보였다(S. Nolfi, Using Emergent Modularity to Develop Control Systems for Mobile Robots,Adaptive Behaviorvol. 5, pp.343-363, 1997).Nolfi (S. Nolfi, Using Emergent Modularity to Develop Control Systems for Mobile Robots, Adaptive Behavior vol. 5, pp.343-363, 1997) has produced excellent garbage collection robots based on modular neural networks.

칼마(Kalmar)는 강화 학습과 로봇 학습 문제를 결합하려는 시도를 하였다(Z. Kalmar, C. Szepesvari, and A. Lorincz, Module-based Reinforcement Learning: Experiments with a Real Robot,Machine Learning,vol.31, pp.55-85, 1998).Kalmar has attempted to combine reinforcement learning and robot learning problems (Z. Kalmar, C. Szepesvari, and A. Lorincz, Module-based Reinforcement Learning: Experiments with a Real Robot, Machine Learning, vol. 31, pp. 55-85, 1998).

상기한 네이토(Naito)는 유전자 알고리즘을 이용하여 자율이동 로봇을 위한 제어기를 진화 하드웨어 상에 구현하였다.Naito described above implemented a controller for an autonomous robot on evolutionary hardware using a genetic algorithm.

또한, 위에서 언급한 코자(Koza)는 유전자 프로그래밍을 이용하여 장애물을 회피하는 시뮬레이션 프로그램을 작성하였으며(J. R. Koza, Obstacle-Avoiding Robot,in Genetic Programming II: Automatic discovery of reusable programs, MIT Press, pp. 365-376, 1994.), 윌슨(Wilson)은 격자 공간에서 목적지를 찾아가는 로봇 시뮬레이션 프로그램을 유전자 프로그래밍을 이용하여 작성하였다(M. S. Wilson et al, Evolving hierarchical Robot Behaviors,Robotics and Autonomous Systems, pp. 215-230, 1997).In addition, Koza, mentioned above, has written a simulation program that avoids obstacles using genetic programming (JR Koza, Obstacle-Avoiding Robot, in Genetic Programming II: Automatic discovery of reusable programs , MIT Press, pp. 365). -376, 1994.), Wilson wrote a robotic simulation program to find a destination in grid space using genetic programming (MS Wilson et al, Evolving hierarchical Robot Behaviors, Robotics and Autonomous Systems , pp. 215-230). , 1997).

그리고, 리(Lee)는 물체를 찾아 목적지까지 밀고 가는 로봇의 제어 프로그램을 실제 환경에서 진화시켰다(W. P. Lee, J. Hallam, and H. H. Lund, Applying Genetic Programming to Evolve Behavior Primitives and Arbitrators for Mobile Robots,IEEE International Conference on Evolutionary Computation, pp. 501-506, 1997).Lee also evolved the control program of a robot that finds an object and pushes it to its destination (WP Lee, J. Hallam, and HH Lund, Applying Genetic Programming to Evolve Behavior Primitives and Arbitrators for Mobile Robots, IEEE). International Conference on Evolutionary Computation , pp. 501-506, 1997).

한편, 하드웨어 진화 모드에 관하여 살펴보면, 상기한 종래의 대부분의 연구결과는 하드웨어 상에 구현된 것은 아니며 시뮬레이션 상에서 실험이 행하여졌다.On the other hand, when looking at the hardware evolution mode, most of the above-described conventional research results are not implemented on the hardware, the experiment was performed on the simulation.

개체의 회로 전환은 시뮬레이션 상에서 행하여질 수도 있고 하드웨어 상에서 행하여질 수도 있다. 전자를 익스트린직 모드(Extrinsic mode),후자를 인트린직 모드(Intrinsic mode)라고 한다(P. Layzell, Reducing Hardware Evolution's Dependency on FPGAs,Proceedings of the Seventh International Conference on Microelectronics for Neural, Fuzzy and Bio-inspired Systems 1999, pp. 171-178, 1999).Circuit switching of objects may be done in simulation or in hardware. The former is called the Extrinsic mode and the latter is the Intrinsic mode (P. Layzell, Reducing Hardware Evolution's Dependency on FPGAs, Proceedings of the Seventh International Conference on Microelectronics for Neural, Fuzzy and Bio-inspired Systems 1999 , pp. 171-178, 1999).

상기 익스트린직 모드(Extrinsic mode)는 다음과 같은 단점이 있다. 첫째, 익스트린직 모드(extrinsic mode)는 모델링과 수치화작업에서의 계산비용 때문에 인트린직 모드(intrinsic mode)에 비하여 결과를 얻기까지 긴 시간을 필요로 한다. 둘째, 익스트린직 모드(extrinsic mode)에서 진화된 회로가 실제 하드웨어에서 동작할 것이라고 보장할 수 없다. 셋째, 인트린직 모드(intrinsic mode)를 이용할 경우 사전에 고려하지 못한 요소가 반영될 수 있는 반면 익스트린직 모드 (extrinsic mode)에서는 시뮬레이터 구현 과정에서 고려된 요소들의 한계를 벗어날 수 없다. 따라서, 많은 연구자들이 인트린직 모드(intrinsic mode)를 이용하여 연구를 수행한다(A. Thompsom, An Evolved Circuit, Intrinsic in Silicon, Entwined with Physics,First International Conference on Evolvable Systems 1996, pp. 390- 405, 1996. etc.).The extrinsic mode has the following disadvantages. First, the extrinsic mode requires longer time to get results than the intrinsic mode because of the computational costs in modeling and quantification. Second, there is no guarantee that circuits evolved in extrinsic mode will work in real hardware. Third, when using the intrinsic mode, factors that were not considered in advance may be reflected, whereas in the extrinsic mode, the limitations of the factors considered in the simulator implementation process cannot be overcome. Therefore, many researchers conduct research using intrinsic mode (A. Thompsom, An Evolved Circuit, Intrinsic in Silicon, Entwined with Physics, First International Conference on Evolvable Systems 1996 , pp. 390-405 , 1996. etc).

그러나, 익스트린직 모드(extrinsic mode)를 이용한 연구가 불필요한 것은 아니다. 첫째, 익스트린직 모드(extrinsic mode)에서는 각 간선 및 노드의 전류및 전압 측정을 정확하게 할 수 있으며, 둘째, 익스트린직 모드(extrinsic mode)에서는 사용 블록의 종류에 제한이 없기 때문에 다양한 형태의 회로를 꾸미는 것이 허용된다. 셋째, 인트린직 모드(intrinsic mode)에서는 진화(evolution)을 위한 다양한 하드웨어가 제공되고 있지 못하다.However, research using extrinsic mode is not unnecessary. First, in the extrinsic mode, the current and voltage measurements of each trunk and node can be accurately measured. Second, in the extrinsic mode, there are no restrictions on the types of blocks used. It is allowed to decorate. Third, in intrinsic mode, various hardware for evolution are not provided.

본 발명에서는 인트린직 모드(intrinsic mode)에서 회로 진화를 수행한다. 회로의 표현을 위하여 당업자는 고급 언어와 저급 언어 모두를 사용할 수 있다. 고급 언어를 이용하여 회로를 기술하는 것은 기반 하드웨어로의 컨피규레이션 비트스트림(configuration bit stream) 생성과정을 필요로 하지만, 탐색 공간의 크기를 줄일 수 있다는 장점이 있다.In the present invention, circuit evolution is performed in an intrinsic mode. Those skilled in the art can use both high and low language for the representation of the circuit. Describing circuits using high-level languages requires the creation of a configuration bit stream to the underlying hardware, but with the advantage of reducing the size of the search space.

상기 컨피규레이션 비트스트림(Configuration bit stream)을 바로 이용하는 방법은 드가리스(de Garis)의 연구에서 엿볼 수 있다. 그의 연구에서는 AND, OR, NOT과 같은 기본 게이트 및 게이트간의 연결정보로 개체를 구성하여 진화시키고 있다(H. deGaris, Evolvable Hardware: Genetic Programming of a Darwin Machine,Artificial Neural Nets and Genetic Algorithms, pp. 441-449, 1993).The method of directly using the configuration bit stream can be seen in the study of de Garis. In his research, he constructs and evolves objects with basic gate-to-gate connections such as AND, OR, and NOT (H. deGaris, Evolvable Hardware: Genetic Programming of a Darwin Machine, Artificial Neural Nets and Genetic Algorithms , pp. 441 -449, 1993).

상기한 드가리스(de Garis)의 연구와 같이 저급 언어를 사용하는 방법은 별다른 변환 과정 없이 개체를 바로 표현할 수 있다는 장점이 있다.Using a low-level language, such as de Garis's research, has the advantage of being able to express objects directly without any transformation.

그러나, 컨피규레이션 비트스트림(configuration bit stream)을 진화 개체로 이용하는 방법은 몇 가지 무리가 있다. 첫째, 개체의 크기가 너무나 커지기 때문에 현재의 기술로는 효율적으로 진화 연산을 수행할 수 없으며, 둘째, 개체를 구성하는 대부분의 비트스트림(bit stream)이 유효하지 못한 회로를 표현하게 되어비효율적인 회로를 구성하게 된다.However, there are several approaches to using the configuration bit stream as an evolutionary entity. First, the size of an object is so large that current techniques cannot efficiently perform evolutionary operations. Second, most of the bit streams that make up an object represent circuits that are not valid. Will be configured.

한편, 진화 하드웨어는 적응 시스템, 결함 허용 시스템 그리고 설계 자동화에 응용이 시도되고 있다.Evolutionary hardware, on the other hand, is being applied to adaptive systems, fault-tolerant systems, and design automation.

여기서 적응 시스템이란 환경 변화나 임무 변화를 학습하여 하드웨어 구조를 동적으로 재구성하여 새로운 변화에 적응할 수 있는 시스템을 의미한다.Here, the adaptive system refers to a system that can adapt to new changes by dynamically reconfiguring the hardware structure by learning environmental changes or mission changes.

스토이카(Stoica)는 PTA (Programmable Transfer Array)상에서의 진화를 통한 자동 재구성방법을 제시하고 있다. 스토이카(Stoica)그룹은 적응을 통하여 항성간 탐사체의 수명을 늘리는 방법에 관하여 연구하고 있으며, 계산 능력의 향상을 위하여 하드웨어 특화된 회로의 동적 재구성에 관하여 다루고 있다(A. Stoica, D. Keymeulen, C. Lazaro, W. Li, K. Hayworth, and R. Tawel, Toward On-board Synthesis and Adaptation of Electronic Functions: An Evolvable Hardware Approach,Proceedings of 1999 Aerospace Conference, pp. 351-357, 1999).Stoica proposes an automatic reconstruction method through evolution on PTA (Programmable Transfer Array). The Stoica group is studying how to increase the lifespan of interstellar probes through adaptation, and deals with dynamic reconfiguration of hardware-specific circuits to improve computational power (A. Stoica, D. Keymeulen, C. Lazaro, W. Li, K. Hayworth, and R. Tawel, Toward On-board Synthesis and Adaptation of Electronic Functions: An Evolvable Hardware Approach, Proceedings of 1999 Aerospace Conference , pp. 351-357, 1999).

카지타니(Kajitani)는 의수의 제어 회로를 진화 하드웨어를 이용하여 구현하였다. 적응 능력을 갖춘 카지타니(Kajitani)그룹의 제어 회로는 신경망 기반의 제어 회로를 능가하는 성능을 보였으며, 사용자와 의수를 동기화 시키는 시간을 크게 단축하는 성과를 보였다( I. Kajitani, T. Hoshino, D. Nishikawa, H. Yokoi, S. Nakaya, T. Yamauchi, T. Inuo, N. Kajihara, M. Iwata, D. Keymeulen, and T. Higuchi, A gate-level EHW chip: Implemeting GA Operations and Reconfigurable Hardware on a single LSI,Second International Conference on Evolvable Systems 1998, pp. 1-12, 1998).Kajitani implemented the prosthetic control circuit using evolutionary hardware. The adaptive Kajitani group's control circuits outperform neural network-based control circuits and significantly reduce the time between user and handicap (I. Kajitani, T. Hoshino, D. Nishikawa, H. Yokoi, S. Nakaya, T. Yamauchi, T. Inuo, N. Kajihara, M. Iwata, D. Keymeulen, and T. Higuchi, A gate-level EHW chip: Implemeting GA Operations and Reconfigurable Hardware on a single LSI, Second International Conference on Evolvable Systems 1998 , pp. 1-12, 1998).

타나카(Tanaka)는 전자사진 출판용 프린터를 위한 데이터압축 및 압축해제 칩을 진화 하드웨어를 이용하여 구현하였다(T. Hikage, H. Hemmi, and K. Shimohara, Compression of Evolutionary Methods for Smoother Evolution,Second International Conference on Evolvable Systems 1998, pp. 115-124, 1998).Tanaka has implemented data compression and decompression chips for electrophotographic printers using evolution hardware (T. Hikage, H. Hemmi, and K. Shimohara, Compression of Evolutionary Methods for Smoother Evolution, Second International) Conference on Evolvable Systems 1998 , pp. 115-124, 1998).

또한, 진화 하드웨어에 기반한 결함 허용 시스템은 여유 블록을 확보하여 결함 블록을 대체하는 방향으로 연구가 진행되고 있다.In addition, research on the fault-tolerant system based on the evolutionary hardware to secure the spare block to replace the defective block.

오테가(Ortega-sanchez)는 하드웨어의 각 cell이 해당 블록의 구성 정보를 가지고 있는 복사 본을 유지하도록 하여 결함이 발생하였을 경우 교체하도록 하고 있다(C. Ortega-Sanchez, and A. Tyrell, Fault-Tolerant Systems: The Way Biology Does It,Proceedings of the 23rd Euromicro conference, pp. 146-151, 1997).Ortega-sanchez maintains a copy of each block of hardware that contains the configuration information for that block so that it can be replaced if a fault occurs (C. Ortega-Sanchez, and A. Tyrell, Fault-). Tolerant Systems: The Way Biology Does It, Proceedings of the 23rd Euromicro conference , pp. 146-151, 1997).

마시아스(Macias)는 그의 PIG(Processing Integrated Grid) 구조에서 결함 허용 시스템의 가능성을 제시하고 있다. 상기 PIG 구조에서 각 cell들을 이웃하고 있는 cell의 함수 기능 중 어느 하나로 재구성될 수 있다. 이를 통하여 결함이 발생한 블록의 기능을 주위 cell로 옮기는 시스템의 가능성을 제시하고 있다(N. J. Macias, The PIG Paradigm: The Design and Use of a Massively Parallel Fine Grained Self-Reconfigurable Infinitely Scalable Architecture,Proceedings of the First NASA/DoD Workshop on Evolvable Hardware, pp. 175-180, 1999).Macias presents the possibility of a fault-tolerant system in his Processing Integrated Grid (PIG) architecture. Each cell in the PIG structure may be reconfigured as one of the function functions of neighboring cells. This suggests the possibility of a system that transfers the function of a defective block to surrounding cells (NJ Macias, The PIG Paradigm: The Design and Use of a Massively Parallel Fine Grained Self-Reconfigurable Infinitely Scalable Architecture, Proceedings of the First NASA). / DoD Workshop on Evolvable Hardware , pp. 175-180, 1999).

모레노(Moreno)는 자기 수리 기능이 있는 FIPSOC(Field Programmable System On a Chip)를 제안하였다(J. M. Moreno, J. Madrenas, R. Kielbik, J.Faura, and J. M. Insenser, Realization of Self-Repairing and Evolvable Hardware Structures by Means of Implicit Self-Configuration,Proceedings of the First NASA/DoD Workshop on Evolvable Hardware, pp. 182-187, 1999).Moreno has proposed Field Programmable System On a Chip (FIPOC) with self-repair capabilities (JM Moreno, J. Madrenas, R. Kielbik, J.Faura, and JM Insenser, Realization of Self-Repairing and Evolvable Hardware). Structures by Means of Implicit Self-Configuration, Proceedings of the First NASA / DoD Workshop on Evolvable Hardware , pp. 182-187, 1999).

그리고, 설계 자동화를 위하여 진화 하드웨어를 이용하는 연구도 활발하다.There is also a lot of research into using evolutionary hardware for design automation.

톰슨(Thompson)은 유전 알고리즘의 제어하에 전자 회로를 자동적으로 설계하였다. 그는 신호와 신호를 구분하는 회로를 자동 설계하는데 성공하였다.Thompson automatically designed the electronic circuits under the control of genetic algorithms. He succeeded in automatically designing the circuit that separates the signal from the signal.

밀러(J.F.Miller)는 2비트 덧셈기와 2비트 곱셈기를 자동으로 설계하였다(J. F. Miller, and P. Thompson, Discovering Novel Digital Circuits using Evolutionary Techniques,IEE Half-day Colloquium on Evolvable Hardware Systems, 1998).JFMiller designed two-bit adders and two-bit multipliers automatically (JF Miller, and P. Thompson, Discovering Novel Digital Circuits using Evolutionary Techniques, IEE Half-day Colloquium on Evolvable Hardware Systems , 1998).

또한, 최근 진화 하드웨어의 구현에 있어 흥미 있는 연구 움직임이 보이고 있다. 몇몇 연구자들은 사전에 정의된 함수 기능 중 하나를 실행 시간 중 선택하여 그 기능으로 재구성될 수 있는 블록 구조의 진화 하드웨어 구현에 대하여 연구하기 시작하였다.In addition, there has been an interesting research movement in the implementation of evolutionary hardware. Some researchers have begun to study evolutionary hardware implementations of block structures that can select one of the predefined functional functions at runtime and reconstruct them into those functions.

또한, 밀러(N.L.Miller)는 그가 제안한 RA-FPGA(Reconfigurable Arithmetic FPGA)구조에서 AND, OR, NAND, NOR, NOT, MUX, ADD, SUB, MULTIPLY, DIVISION등의 기능을 할 수 있는 MDL(Multiply-Divide-Logic)이라는 함수 블록을 구현하여 사용하고 있다(N. L. Miller, and S. F. Quigley, A Reconfigurable Integrated Circuit for High Performance Computer Arithmetic,IEEE International Symposium on Circuits & Systems, 1999).In addition, Miller (NLMiller) is MDL (Multiply-Divide) that can perform functions such as AND, OR, NAND, NOR, NOT, MUX, ADD, SUB, MULTIPLY, DIVISION in RA-FPGA (Reconfigurable Arithmetic FPGA) structure (Logic) is a function block (NL Miller, and SF Quigley, A Reconfigurable Integrated Circuit for High Performance Computer Arithmetic, IEEE International Symposium on Circuits & Systems , 1999).

상기한 MDL구조를 사용함으로서 밀러(Miller)는 유연성의 희생 없이 높은 계산 성능을 가질 수 있는 하드웨어 구조에 관한 가능성을 열어 놓았다.By using the MDL structure described above, Miller has opened up the possibility of a hardware structure that can have high computational performance without sacrificing flexibility.

상기 마시아스(Macias)는 그가 제안한 상기 PIG(Processing Integrated Grid)구조에서 사전에 정의된 함수 기능을 선택하여 재구성될 수 있는 하드웨어 블록구조를 제안하여 결함 허용성과 적응성을 모두 갖춘 하드웨어의 가능성을 제시하고 있다(N. J. Macias, The PIG Paradigm: The Design and Use of a Massively Parallel Fine Grained Self-Reconfigurable Infinitely Scalable Architecture,Proceedings of the First NASA/DoD Workshop on Evolvable Hardware, pp. 175-180, 1999).Macias proposes a hardware block structure that can be reconfigured by selecting a predefined function function from the processing integrated grid (PIG) structure proposed by him and suggests the possibility of hardware with both fault tolerance and adaptability. (NJ Macias, The PIG Paradigm: The Design and Use of a Massively Parallel Fine Grained Self-Reconfigurable Infinitely Scalable Architecture, Proceedings of the First NASA / DoD Workshop on Evolvable Hardware , pp. 175-180, 1999).

그리고, 진화 하드웨어는 주문형 프로세서(ASIC)의 계산 성능과 범용 프로세서의 유연성을 모두 제공할 수 있는 새로운 도구로서 주목받고 있다.And evolutionary hardware is attracting attention as a new tool that can provide both the computational power of an ASIC and the flexibility of a general-purpose processor.

진화 하드웨어의 동적 재구성 능력을 이용하면, 현재 계산중인 프로세스의 교체에 맞추어 해당 프로세스에 특화된 계산 회로를 하드웨어 상에 표현하여 계산 성능을 높이는 것이 가능하기 때문이다. 이 같은 접근 방법을 통하여 계산 성능을 높이려면, 하드웨어에서 수행될 프로세스의 분할이 필수적이다.This is because the dynamic reconstruction capability of the evolutionary hardware enables the computational performance to be improved by expressing the computational circuit specialized for the process on the hardware in accordance with the replacement of the current computational process. To increase computational performance through this approach, partitioning of the processes to be performed in hardware is essential.

그러나, 종래의 기술들은 용량 문제로 인하여 자율이동 로봇제어와 같은 문제에 있어서 상기 문제해결을 위한 임무를 제한된 하드웨어로 구현할 수 없었던 문제점이 있었다.However, the related arts have a problem in that a problem such as autonomous mobile robot control cannot be implemented in limited hardware due to capacity problems.

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템에서는 상기한 프로세스의 분할을 위하여 콘텍스트 전환(Context switching)이라는 방법을 도입한다. 상기 방법은 유전자 프로그래밍에서 아이디어를 얻어온 방법이다.Genetic programming using process partitioning and a system using the same according to the present invention introduce a method called context switching for the partitioning of the process. This method is a way of getting ideas from gene programming.

상기 콘텍스트 전환(Context switching) 방법은 유전자 프로그래밍의 뛰어난 표현 능력에 기반한 방법으로서 용량 문제로 인하여 자율이동 로봇제어와 같은 문제에 있어서 문제해결을 위한 임무를 제한된 하드웨어로 구현가능하게 한다.The context switching method is a method based on the excellent expression ability of gene programming, which makes it possible to implement a task for solving problems in limited hardware in a problem such as autonomous mobile robot control due to capacity problem.

상기 방법은 유전자 프로그래밍을 이용하여 목표 프로세스와 같은 기능을 하는 유전자 트리를 진화시킨다. 그리고, 유전자 트리의 서브 트리는 전체 프로세스의 서브 프로세스를 의미하므로, 하드웨어에 표현할 서브 트리를 선정한다. 하드웨어 계산 회로로 선정된 프로세스는 특수 노드를 이용하여 다른 서브 트리와 구분된다.The method uses gene programming to evolve a gene tree that functions like the target process. Since the subtree of the gene tree means a subprocess of the entire process, a subtree to be expressed in hardware is selected. The process chosen as the hardware computation circuit is separated from other subtrees using special nodes.

서브 트리에서의 각 함수 노드는 진화 하드웨어에서의 함수 블록을 의미하며, 함수 노드간의 연결은 함수 블록간의 라우팅을 의미하게 된다.Each function node in the subtree represents a function block in the evolutionary hardware, and the connection between the function nodes means routing between the function blocks.

서브 트리의 선정이 완료되면, 해당 서브 트리는 하드웨어 표현 정보로 변환되어, 해당되는 계산 시점에 진화 하드웨어 상에 표현된다.When the selection of the subtree is completed, the subtree is converted into hardware representation information and represented on the evolutionary hardware at the corresponding calculation time.

상기한 콘텍스트 전환(Context switching)방법을 통하여, 첫째, ASIC과 범용 프로세서의 장점을 결합한 새로운 접근 방법의 구현을 가능하게 하고, 둘째, 유전자 프로그램의 하드웨어 표현에 있어, 주어진 하드웨어 크기에 상관없이 개체를 하드웨어로 표현하는 것을 가능하게 하여준다.Through the context switching method described above, firstly, it is possible to implement a new approach that combines the advantages of ASICs and general-purpose processors, and secondly, in the hardware representation of the genetic program, it is possible to select an object regardless of the given hardware size. It makes it possible to express in hardware.

상기 방법의 효율성 검증을 위하여 본 발명에서는 자율 이동 로봇 제어 문제를 실시예로 적용한다.In order to verify the efficiency of the method, the present invention applies to the autonomous mobile robot control problem as an embodiment.

상기 실시예의 내용은 다음과 같다. 2대의 로봇(KHEPERA)과 장애물, 목적지, 로봇이 밀 물체로 구성된 환경이 존재한다. 2대의 로봇은 장애물 환경에서 장애물을 회피하면서 목적지까지 물체를 협동하여 이동시키는 것을 목표로 한다. 목표 달성을 가능하게 하는 제어 회로를 상기 콘텍스트 전환방법을 포함하는 진화 연산을 이용하여 구현하는 것이 상기 실시예의 목적이 된다.The contents of the above embodiment are as follows. There are two robots (KHEPERA), obstacles, destinations, and an environment composed of pushed objects. Two robots aim to collaborate and move objects to their destination while avoiding obstacles in an obstacle environment. It is an object of this embodiment to implement a control circuit which enables the achievement of a goal using evolutionary operations including the context switching method.

도1은 깊이연관 교차연산의 일예이고,1 is an example of a depth-related cross operation,

도2는 적합도 전환단계를 이용한 진화과정의 일예이고,Figure 2 is an example of the evolution process using the fitness conversion step,

도3a는 콘텍스트 전환모듈을 통한 프로세스 분할과정도이고,3A is a process division diagram through the context switching module;

도3b는 하드웨어 라이브러리로 표현된 서브트리의 프로세스 교체과정도이고,3B is a process replacement diagram of a subtree represented by a hardware library,

도4는 콘텍스트 전환단계에 있어서 프로세스 분할과정을 도시하고,4 shows a process division process in the context switching step,

도5는 유전자 프로그래밍을 이용한 로봇제어 프로그램의 개체 예이고,5 is an example of an individual robot control program using genetic programming,

도6은 함수노드 표현 블록의 구조도이고,6 is a structural diagram of a function node expression block,

도7은 본 발명에 따른 실시예인 자율 이동로봇의 시스템 다이어그램이고,7 is a system diagram of an autonomous mobile robot according to an embodiment of the present invention;

도8은 상기 실시예의 결과로서 최적 개체의 적합도 그래프이고,8 is a graph of the fitness of the optimal individual as a result of the above embodiment;

도9는 평균 적합도 그래프이고,9 is an average goodness of fit graph,

도10은 목표물까지의 근접 회수 그래프이다.10 is a graph of proximity recovery to the target.

< 도면의 주요 부분에 대한 부호 설명 ><Explanation of Signs of Major Parts of Drawings>

10: 진화부 20: 분할부 30: 하드웨어 라이브러리10: evolutionary unit 20: partitioning unit 30: hardware library

40: 로봇제어부 50: 통신부 60: 진화 하드웨어부40: robot control unit 50: communication unit 60: evolutionary hardware unit

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법은, 진화 하드웨어 구현을 위하여 프로세스 분할과정을 포함하는 진화연산을 수행하는 유전자프로그래밍 방법으로서,Genetic programming using process partitioning according to the present invention is a gene programming method for performing an evolutionary operation including a process partitioning process for the implementation of evolutionary hardware,

상기 진화연산에서 사용되는 적합도(fitness) 연산자를 개선하기 위한 적합도 전환(switching)단계와, 상기 진화연산를 수행하기 위하여 프로세스를 자동으로 분할하고 변환하는 콘텍스트(context) 전환단계를 포함하는 것을 특징으로 한다.A fitness switching step for improving a fitness operator used in the evolutionary operation, and a context switching step of automatically dividing and converting the process to perform the evolutionary operation. .

상기 상기 적합도 전환단계는, 탐색할 문제 공간을 위한 2개이상의 기본 행동을 정의하는 단계, 상기 기본 행동의 결합을 통하여 문제 해결을 위한 마이크로 행동을 정의하는 단계, 상기 마이크로 행동을 위한 적합도의 집합을 정의하는 단계, 상기 문제 해결을 위한 목표 행동을 위한 마이크로 행동의 조합을 정의하는 단계, 2개이상의 서브 트리를 갖는 유전자프로그램을 정의하는 단계, 상기 유전자프로그램에 따라 상기 마이크로 행동의 조합을 진화시키는 단계를 포함하는 것을 특징으로 한다.The relevance conversion step may include: defining two or more basic actions for the problem space to be searched, defining micro actions for problem solving through combining the basic actions, and a set of goodness of fit for the micro actions. Defining a combination of micro actions for a target action for solving the problem, defining a gene program having two or more subtrees, evolving the combination of micro actions according to the gene program Characterized in that it comprises a.

상기 콘텍스트 전환단계는, 사용 가능한 하드웨어 자원을 분석하는 단계, 트리를 구성할 함수노드와 종단노드를 선정하는 단계, 서브 트리의 루트 노드로 사용되는 조건노드를 선정하는 단계, 상기 함수노드와 종단노드를 이용하여 상기 트리를 진화시키는 단계, 상기 진화된 트리를 상기 하드웨어에 표현할 수 있는 크기의 서브트리로 분할하는 단계, 상기 분할된 서브트리를 하드웨어 표현을 위한 형태로 변환하는 단계, 상기 분할된 서브트리와 상기 서브트리를 위한 조건노드를 포함하는 하드웨어 회로를 구성하여 상기 하드웨어에 표현하는 단계, 그리고, 중간결과 (Mid-Result)를 합하여 최종결과(Final-Result)를 계산하는 단계를 포함하는 것을 특징으로 한다.The context switching step may include analyzing available hardware resources, selecting a function node and an end node to form a tree, selecting a condition node used as a root node of a subtree, and selecting the function node and an end node. Evolving the tree by using; dividing the evolved tree into subtrees of a size that can be represented in the hardware; converting the divided subtree into a form for hardware representation; Constructing a hardware circuit including a tree and a condition node for the subtree, and expressing the hardware circuit in the hardware; and calculating a final result by adding mid-results. It features.

상기 진화연산은 매 깊이(depth)마다 교차점 선정확률에 기반하여 교차점을 선정하는 깊이연관 교차연산자(depth-dependent crossover)를 포함하며, 상기 교차점 선정확률은 사전에 고정시킨 후, 계속 같은 확률값을 적용하는 것을 특징으로 한다.The evolutionary operation includes a depth-dependent crossover that selects an intersection point based on the intersection selection probability at every depth, and the intersection selection probability is fixed in advance, and then the same probability value is continuously applied. Characterized in that.

그리고, 본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법의 이용시스템은, 진화 하드웨어 응용을 위하여 프로세스 분할을 전략으로 하는 유전자프로그래밍을 이용하는 시스템으로서,In addition, a system using a gene programming method using process partitioning according to the present invention is a system using gene programming with a process partitioning strategy for an evolutionary hardware application.

상기 진화연산를 수행하기 위하여 프로세스를 자동으로 분할하고 변환하는 콘텍스트(context) 전환모듈을 포함하는 것을 특징으로 한다.And a context conversion module for automatically dividing and converting the process to perform the evolutionary operation.

상기 콘텍스트 전환모듈은, 미리 정의된 함수노드와 종단노드를 이용하여 주어진 프로세스를 표현하는 진화부(evolver)와, 상기 진화부에서 진화된 트리를 입력 받아 서브 프로세스로 분할하고 분할결과를 하드웨어로 구현가능한 형태로 표현하여 하드웨어 라이브러리(hardware library)를 구성하는 분할부(divider)를 포함하며, 상기 하드웨어 라이브러리는 분할된 서브 프로세스의 하드웨어 구현을 위한 정보를 저장하는 것을 특징으로 한다.The context switching module comprises an evolver that expresses a given process using a predefined function node and an end node, and receives the evolved tree from the evolved part into subprocesses and implements the partitioning result in hardware. In a possible form, a divider constituting a hardware library is included, wherein the hardware library stores information for hardware implementation of the divided subprocess.

따라서, 본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템은 진화 하드웨어의 동적 재구성 방법으로 유전자 프로그래밍을 이용할 수 있도록 하는 방법을 제시하며 이를 구현한다.Therefore, the gene programming method using the process partitioning and the system using the same according to the present invention proposes and implements a method for using the gene programming as a dynamic reconfiguration method of evolutionary hardware.

상기 진화 하드웨어(Evolvable hardware)란 진화 연산의 제어하에 자동적으로 환경의 변화나 임무의 변화에 적응하도록 설계되어 동적 재구성을 수행하는 재구성 하드웨어(Reconfigurable hardware)이다.Evolvable hardware is reconfigurable hardware that is designed to automatically adapt to changes in the environment or changes in tasks under the control of evolutionary operations and performs dynamic reconfiguration.

그리고, 유전자 프로그래밍(Genetic Programming)은 추론적인 학습 임무에 적합한 확률적 탐색 기법이다. 상기한 유전자 프로그래밍은 자연계에서 발생하는 유전현상에서 아이디어를 얻은 것으로, 교차 연산자나 돌연변이 연산자등 유전 연산자를 이용하여 개체의 성능을 높여 가는 과정을 통하여 원하는 기능을 수행하는 개체를 찾게 된다.Genetic programming is a stochastic search technique suitable for inferential learning tasks. Genetic programming described above is an idea from genetic phenomena occurring in nature, and through the process of increasing the performance of an individual using a genetic operator such as a cross operator or a mutation operator to find an individual performing a desired function.

상기 유전자 프로그래밍은 트리 구조 혹은 LISP의 S-expression과 유사한 형태의 표현 구조를 이용하여 프로그램을 표현하게 된다. 따라서, 유전자 프로그램은 다양한 기능의 프로그램을 표현할 수 있는 표현능력을 지니고 있다.The gene programming expresses a program using a tree structure or an expression structure similar to the S-expression of LISP. Therefore, the genetic program has the expressive ability to express various functional programs.

상기 프로세스 분할이란 병렬 연산을 요구하지 않는 프로세스를 분석한 후, 계산 순서에 따른 서브 프로세스의 열로 재배열하는 과정을 의미한다. 서브 프로세스의 순서열 분석 결과를 이용하여 각 서브 프로세스에 특화된 하드웨어 계산 회로를 생성하게 된다.The process partitioning refers to a process of rearranging the processes that do not require parallel operation and then rearranging them in rows of subprocesses according to the calculation order. The sequence analysis results of the subprocesses are used to generate hardware calculation circuits specialized for each subprocess.

상기한 개체라 함은 원하는 기능의 프로그램을 탐색하기 위해 생성되는 프로그램을 말한다. 상기한 개체들의 집합을 개체군이라 한다.The above object refers to a program created to search for a program having a desired function. The set of individuals described above is called a population.

상기한 유전자 프로그래밍은 다음과 같은 과정을 통하여 원하는 해를 찾게 된다.Genetic programming described above finds a desired solution through the following process.

1. 후보 해를 나타내는 개체군을 무작위로 생성한다.1. Randomly generate populations representing candidate solutions.

2, 원하는 해와 후보 해 간의 근접도를 나타내는 적합도를 각 해에 부여한다.2, each solution is given a goodness of fit indicating the degree of proximity between the desired solution and the candidate solution.

3. 각 해의 적합도에 근거하여 유전 연산의 피연산자를 선정한다.3. Select the operands of the genetic operation based on the goodness of fit for each solution.

4. 선정된 개체들을 이용하여 새로운 개체군을 구성한 후 새로운 적합도를 부여한다.4. Construct a new population using the selected individuals and assign new fitness.

상기한 유전자 프로그래밍을 이용하여 문제를 풀어갈 때 시작단계에서 결정해야 하는 것은 함수 노드와 종단 노드를 선택하는 문제이다.When solving the problem using the genetic programming described above, it is a matter of selecting a function node and an end node to be determined at the beginning stage.

상기 함수노드는 유전자 프로그래밍의 트리를 형성하는 노드의 한 종류로서, 유전자 프로그래밍 시스템에 적용되는 이진연산, 산술연산, 특수연산 등의 함수로 이루어져 있다.The function node is a kind of node forming a tree of gene programming, and is composed of a function such as binary operation, arithmetic operation, special operation, and the like applied to a gene programming system.

그리고, 상기 종단노드는 개체의 입력 및 상수로 구성되거나 개체의 출력으로 구성된다.The end node is composed of an input and a constant of the entity or an output of the entity.

본 발명의 실시예인 자율 이동 로봇과 연관지어 설명하면 함수 노드는 센서정보의 해석을 담당하는 노드이며, 종단 노드는 로봇의 행동을 나타내는 노드이다.In connection with the autonomous mobile robot which is an embodiment of the present invention, the function node is a node in charge of the interpretation of sensor information, and the end node is a node representing the behavior of the robot.

그리고, 교차 연산자는 진화 연산에서 중요한 연산자이다. 개체의 적합도 개선은 주로 교차 연산자에 의한 것으로 믿어지고 있다(S. Luke, and L. Spector, A Comparison of Crossover and Mutation in Genetic Programming,Proceedings of Genetic Programming 1997, pp. 240-248, 1997).And crossover operators are important in evolutionary operations. The improvement of the fitness of the individual is believed to be mainly due to the cross operator (S. Luke, and L. Spector, A Comparison of Crossover and Mutation in Genetic Programming, Proceedings of Genetic Programming 1997 , pp. 240-248, 1997).

상기한 교차 연산자는 유전자프로그래밍의 기본이 되는 연산자로서, 부모 개체로 작용할 2개의 개체를 선정한 후, 각 개체에서 서브 트리를 선정하여 교환하는 방식으로 새로운 개체를 생성한다.The crossover operator is a basic operator of gene programming. After selecting two entities to act as parent entities, a new entity is created by selecting and exchanging subtrees from each entity.

상기 교차 연산자는 유전자 프로그래밍에서 필수적인 연산자이나, 보통의 교차 연산은 트리의 구조와는 상관없이 교차점을 무작위로 선정한다는 문제점이 있다.The crossover operator is an essential operator in gene programming, but a common crossover operation has a problem in that the intersection point is randomly selected regardless of the structure of the tree.

즉, 교차점을 무작위로 선정할 경우에는, 첫째로, 트리의 스키마(schema)가 파손될 우려가 있으며, 둘째, 노드의 수적 관계로 인하여 교차점이 말단 노드 부근에 집중될 우려가 있다(T. Ito, H. Iba, and S. Sato, A Self-Tuning Mechanism for Depth-Dependent Crossover,in Advances in Genetic Programming 3, MIT Press, pp. 377-399, 1999).That is, in the case of randomly selecting intersections, firstly, the schema of the tree may be damaged, and secondly, the intersection may be concentrated near the end node due to the numerical relationship of nodes (T. Ito, H. Iba, and S. Sato, A Self-Tuning Mechanism for Depth-Dependent Crossover, in Advances in Genetic Programming 3 , MIT Press, pp. 377-399, 1999).

상기한 문제점을 극복하기 위하여 본 발명에서는 깊이연관 교차 연산자 (Depth-dependent crossover)를 이용한다.In order to overcome the above problems, the present invention uses a depth-dependent crossover.

도1은 깊이연관 교차연산의 일예를 도시하고 있다. 깊이연관 교차연산에서는 트리의 매 깊이마다 교차점 선정 확률이 주어지며, 교차연산시 이 확률에 기반하여 교차점을 선정하게 된다.1 shows an example of a depth-related crossover operation. In the depth-related cross operation, the intersection selection probability is given at every depth of the tree, and the intersection point is selected based on this probability.

본 발명에서는 교차점 선정 확률을 사전에 고정시킨 후 계속 같은 확률값을 적용하는 방법을 채택한다.In the present invention, a method of applying the same probability value after fixing the intersection selection probability in advance is adopted.

상기 방법에서는 교체될 서브 트리의 선정에 따라 트리는 계속하여 성장할 수 있고, 이와 같은 트리의 성장에 제한을 가하지 않을 수도 있으나, 본 발명에서는 트리의 최대 깊이를 제한하도록 하였다. 이는 트리의 성장을 방기할 경우 의미 없는 노드의 추가로 인한 비효율을 초래할 수 있기 때문이다.In the above method, the tree may continue to grow according to the selection of the subtree to be replaced, and the growth of the tree may not be limited. However, in the present invention, the maximum depth of the tree is limited. This is because abandoning the growth of the tree may cause inefficiency due to the addition of meaningless nodes.

즉, 제한 깊이를 넘어가는 서브 트리가 생기는 경우, 서브 트리들 중 하나를 선정하여 제한 깊이를 넘어간 서브 트리와 교환하는 방식을 통하여 제한 깊이를 유지하는 방식을 택하였다. 이때, 교환될 서브 트리의 선정은 무작위적으로 행하여진다.That is, when a subtree exceeding the limit depth is generated, a method of maintaining the limit depth by selecting one of the subtrees and exchanging with the subtree exceeding the limit depth is selected. At this time, the subtrees to be exchanged are randomly selected.

그리고, 돌연변이 연산자는 개체를 구성하는 노드 중 하나를 선정하여 다른 종류의 노드로 바꾸는 연산자이다. 상기 돌연변이 연산자는 숨겨진 노드를 찾는데 긴요하게 쓰이는 연산자이다. 그리고, 개체군의 크기가 작을 경우 돌연변이 연산자가 더욱 효율적일 수 있다.The mutation operator is an operator that selects one of the nodes constituting the individual and replaces it with another node. The mutation operator is an operator that is critical for finding hidden nodes. And, if the population is small, mutation operators may be more efficient.

따라서, 본 발명에서 돌연변이 연산자는 개체를 구성하는 노드 중 한 노드를 선정하여 다른 종류의 노드로 바꾸는 작용의 연산자로 구현한다.Therefore, in the present invention, the mutation operator is implemented as an operator that selects one node among the nodes constituting the individual and converts the same into another kind of node.

한편, 적합도 연산자는 문제 공간 상에서 목적해와 개체와의 근접도를 나타내기위한 연산자이다(W. Banzhaf, P. Nordin, R. E. Keller, and F. D. Francone,in Genetic Programming an Introduction, Morgan Kaufmann Publishers, Inc,1998).On the other hand, the goodness-of-fit operator is an operator for representing the object and the proximity of the object in the problem space (W. Banzhaf, P. Nordin, RE Keller, and FD Francone, in Genetic Programming an Introduction , Morgan Kaufmann Publishers, Inc.). 1998).

적합도 연산의 설계는 해의 탐색 과정에서 연구자가 영향력을 미칠 수 있는 유일한 부분으로 탐색 과정의 방향을 제시하는 기능을 한다. 적합도 연산의 설계는 다양할 수 있으나, 본 발명의 실시예인 로봇 제어와 같은 문제는 통상 2개 이상의 적합도 평가를 필요로 한다. 그러나 현재 통용되는 유전자 프로그래밍의 방법론은 이와 같은 성격의 문제를 푸는 적합한 방법을 제공하지 못하고 있다.The design of the goodness-of-fit calculation serves to direct the search process as the only part of the researcher's influence in the solution search. The design of the goodness-of-fit calculation may vary, but problems such as robot control, which is an embodiment of the present invention, typically require two or more goodness of fit evaluations. However, the current method of genetic programming does not provide a suitable way to solve this problem.

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템에서는 이와 같은 복잡한 종류의 문제를 풀기 위하여 적합도 전환 (Fitness switching)단계을 도입한다.In the genetic programming method using the process partitioning and the system using the same according to the present invention, a fitness switching step is introduced to solve such a complicated kind of problem.

상기 적합도 전환(Fitness switching)단계는 점진적 학습 과정에 기반하여 문제를 풀어가는 방법론으로 다음과 같은 과정을 통하여 문제의 해를 찾게 된다.The fitness switching step is a methodology for solving a problem based on a gradual learning process and finds a solution to the problem through the following process.

1. 탐색하고자 하는 문제 공간을 위한 기본행동들을 정의한다. 이 과정은 상기 종단 노드의 선정에 해당한다.1. Define the basic actions for the problem space you want to explore. This process corresponds to the selection of the end node.

2. 상기 기본행동들의 결합을 통하여 문제 해결을 위한 마이크로 행동 Bi를 정의한다. 즉, 마이크로 행동 Bi는 B={B1, B2,...,Bn}와 같이 정의한다.2. Define micro action B i for problem solving through the combination of the above basic actions. That is, micro behavior B i is defined as B = {B 1 , B 2 , ..., B n }.

3. 상기 마이크로 행동 Bi를 위한 적합도 fi의 집합 F를 정의한다. 즉, 상기 적합도의 집합 F는 F={f1,f2,...fn}와 같이 정의한다.3. Define a set F of goodness-of-fit f i for the micro action B i . That is, the set F of the goodness of fit is defined as F = {f 1 , f 2 , ... f n }.

4. 목표 행동을 달성하기 위한 상기 마이크로 행동의 조합 St를 정의한다.즉, 마이크로 행동의 조합 St는 다음과 같이 정의된다.4. Define the combination S t of the micro actions to achieve the target action, i.e. the combination S t of the micro actions is defined as follows.

St= St-1(+) Bt S t = S t-1 (+) B t

상기 (+)연산자는 접합 연산자를 의미하며 S0는 널(Null)값을 갖는다.The (+) operator means a concatenation operator and S 0 has a null value.

여기에 해당하는 적합도 함수 조합은 다음과 같이 정의된다.The corresponding fit function combination is defined as follows.

Ft= Ft-1(+) ft F t = F t-1 (+) f t

5. n개의 서브 트리를 갖는 유전자 프로그램 A를 정의한다. 뿌리 노드 아래에는 서브 트리 A=(A1, A2, ...,An)가 위치한다.5. Define a gene program A with n subtrees. Below the root node is the subtree A = (A 1 , A 2 , ..., A n ).

6. 차례대로 St를 진화시킨다.6. Evolve S t in turn.

각 마이크로 행동을 위한 적합도 함수 fi를 모두 구한 후 이것들을 이용하여 전체 적합도를 구하게 된다.Find all the goodness-of-fit functions f i for each microbehavior, and then use them to find the overall goodness of fit.

도2는 상기와 같은 적합도 전환단계를 이용한 진화과정의 일예이다. 각 서브트리 Ai는 마이크로행동 Bi를 진화시키기 위한 트리이다.Figure 2 is an example of the evolution process using the above fitness conversion step. Each subtree A i is a tree for evolving microbehavior B i .

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템에서는 상기 진화연산 수행을 위해 콘텍스트 전환(context switching)방법을 도입한다.Genetic programming using process partitioning and a system using the same according to the present invention introduce a context switching method for performing the above evolutionary operation.

상기 콘텍스트 전환(context switching)방법은 진화 하드웨어의 적응 시스템 응용을 위하여 프로세스를 자동적으로 분할하기 위한 방법이다.The context switching method is a method for automatically dividing a process for adaptive system application of evolutionary hardware.

만약, 진화 하드웨어에서 실행시키려는 프로세스가 병렬 연산을 요구하지 않는다면, 프로세스는 순차적으로 수행되는 프로세스들의 집합으로 분할될 수 있다. 상기 콘텍스트 전환(Context switching)방법은 이러한 관찰에 기반한 방법이다.If a process intended to run on evolutionary hardware does not require parallel operations, the process can be divided into a set of processes that are performed sequentially. The context switching method is based on this observation.

상기 방법은 커다란 프로세스를 작은 프로세스의 집합으로 분할한 뒤, 계산 순서에 따라 분할된 서브 프로세스들을 실행시키게 된다.The method divides a large process into a set of small processes and then executes the divided subprocesses in the order of calculation.

상기 실행을 위한 콘텍스트 전환(Context switching)모듈은 진화부(Evolver)와 분할부(Divider), 그리고, 하드웨어 라이브러리(Hardware library)를 포함한다.The context switching module for the execution includes an evolver, a divider, and a hardware library.

도3a는 콘텍스트 전환모듈을 통한 프로세스 분할과정을 도시하고 있다.3A illustrates a process division process through the context switching module.

상기 진화부(10)는 함수 노드와 종단 노드를 이용하여 주어진 프로세스를 표현하는 트리를 진화시킨다.The evolution unit 10 evolves a tree representing a given process using a function node and an end node.

상기 분할부(20)는 상기 진화부에서 진화된 트리를 받아, 서브 프로세스로 분할한 뒤, 분할 결과를 하드웨어 구현 가능한 형태로 변환하여 하드웨어 라이브러리(Hardware library)에 넘겨준다.The division unit 20 receives the tree evolved by the evolution unit, divides the tree into sub-processes, converts the division result into a hardware-implementable form, and delivers the result to a hardware library.

상기 하드웨어 라이브러리(30)는 서브 프로세스의 하드웨어 구현을 위한 게이트의 종류와 라우팅 정보를 저장한다.The hardware library 30 stores gate types and routing information for hardware implementation of the subprocess.

도 3b는 하드웨어 라이브러리로 표현된 서브트리의 프로세스 교체과정도이다. Pi로 표시된 것은 하드웨어 라이브러리에 저장된 i번째 프로세스를 의미하며,ri로 표현된 것은 i번째 프로세스의 결과를 의미한다. 상기 i번째 프로세스의 하드웨어 라이브러리에 저장된 하드웨어 표현정보가 진화 하드웨어에 구현되며 환경 입력을 받아 계산결과를 ri에 저장한다.3B is a process replacement diagram of a subtree represented by a hardware library. P i denotes the i th process stored in the hardware library, and r i denotes the result of the i th process. Hardware representation information stored in the hardware library of the i-th process is implemented in the evolutionary hardware, receives an environment input, and stores the calculation result in r i .

도4는 콘텍스트 전환단계에 있어서 프로세스 분할과정을 순차적으로 도시한다. 상기 도4의 (a)에 있어서 점선으로 표시된 사각형은 주어진 하드웨어 자원을 의미한다. 전체 트리는 하드웨어에 표현될 수 있는 크기의 서브트리로 쪼개어지며, 중간계산결과를 합하여 최종결과를 구성한다.4 sequentially illustrates a process division process in the context switching step. In FIG. 4A, a rectangle indicated by a dotted line means a given hardware resource. The whole tree is divided into subtrees of a size that can be represented in hardware, and the final result is formed by adding the intermediate calculation results.

상기 도4에 도시된 바와 같이, 상기 콘텍스트 전환(Context switching)방법은 다음과 같은 과정을 거쳐 실행된다.As shown in FIG. 4, the context switching method is executed through the following process.

1. 먼저, 사용 가능한 하드웨어자원(Given Hardware Resource)을 분석한다.1. First, analyze available hardware resources.

2. 트리를 구성할 함수노드 F = { f1, f2, ...,fn}와 종단노드 T = { t1, t2, ..., tn} 를 선정한다.2. Select the function nodes F = {f 1 , f 2 , ..., f n } and the terminal nodes T = {t 1 , t 2 , ..., t n } to form the tree.

3. 조건노드 C = { c1, c2, ...,cj}를 선정한다.3. Select the conditional node C = {c 1 , c 2 , ..., c j }.

상기 조건노드는 함수노드를 구성하는 원소이지만 교차연산과 돌연변이 연산의 피연산자로 선정되지 않는 특별한 종류의 노드이다.The conditional node is a special kind of node which is an element constituting a function node but is not selected as an operand of a cross operation and a mutation operation.

상기 조건노드는 플래그(flag)로 사용된다. 또한, 상기 조건 노드는 서브 트리의 루트 노드로 사용되며, 조건노드의 값이 만족되어야만, 하드웨어 회로는 다음 서브 프로세스를 나타내는 회로로 변경된다.The condition node is used as a flag. In addition, the condition node is used as the root node of the subtree, and only when the value of the condition node is satisfied, the hardware circuit is changed to a circuit representing the next sub process.

4. 상기 정의된 함수노드와 종단노드를 이용하여 개체 - 유전자 트리 - 를 진화시킨다.4. Evolve the entity-the gene tree-using the function and end nodes defined above.

5. 상기 진화된 트리를 하드웨어에 표현할 수 있는 크기의 서브트리로 분할한다. 상기 분할 작업은 원자 단위의 노드까지 진행되지는 않으며, 주어진 하드웨어에 표현될 수 있는 크기이면 중단된다(도4의 (b)단계).5. The evolved tree is divided into subtrees of a size that can be represented in hardware. The splitting operation does not proceed to the node of an atomic unit, and is stopped if it is a size that can be represented in a given hardware (step (b) of FIG. 4).

6. 상기 분할된 서브트리를 하드웨어 표현을 위한 형태로 변환한다.6. Convert the partitioned subtree into a form for hardware representation.

상기 변환결과 게이트(gate)의 종류와 함수 블록간 라우팅 정보등은 하드웨어 라이브러리(hardware library)에 저장된다.The type of the conversion gate and the routing information between the function blocks are stored in a hardware library.

7. 상기 분할된 서브트리와 이 트리를 위한 조건노드 Ci를 합하여 하드웨어 회로를 구성한 후, 하드웨어에 표현한다. 상기 회로의 계산 결과(result)는 레지스터나 외부 메모리에 저장된다(도4의 (c)단계).7. The partitioned subtree and the condition node C i for the tree are combined to form a hardware circuit, and then expressed in hardware. The calculation result of the circuit is stored in a register or an external memory (step (c) of FIG. 4).

8. 중간 결과(Mid-Result)를 합하여 최종 결과(Final-Result)를 계산한다.(도4의 (d)단계)8. The final result is calculated by adding the intermediate results (Mid-Result) (step (d) of FIG. 4).

상기 제2 내지 제4의 과정은 진화부(evolver)에서 진행되며, 상기 제5의 과정은 분할부(divider)에서 진행된다.The second to fourth processes are performed in an evolver, and the fifth process is performed in a divider.

상기 콘텍스트 전환방법은 하나의 트리를 여러 개의 작은 서브 트리로 분할한 후, 하드웨어에 구현될 트리를 선정 교환하면서 결과를 얻어나가는 과정이다.The context switching method is a process of dividing a tree into several small subtrees, and then obtaining a result by selecting and exchanging a tree to be implemented in hardware.

상기 콘텍스트 전환(Context switching)을 이용하여 프로세스를 분할할 때 유전자 프로그래밍은 상당히 합리적인 선택일 수 있다.Genetic programming can be a fairly reasonable choice when segmenting a process using such context switching.

상기 유전자 프로그래밍의 트리 구조 개체는 프로세스 분할을 위하여 데이터 흐름 분석(Data Flow Analysis)를 필요로 하지 않는다.The tree-structured entity of gene programming does not require Data Flow Analysis for process partitioning.

따라서, 유전자 프로그래밍에서는 서브트리의 선정만으로 프로세스의 분할작업을 완료할 수 있다는 편리성이 있다.Therefore, in gene programming, the process of dividing a process can be completed only by selecting a subtree.

특정 프로세스를 상기 콘텍스트 전환(context switching)에 응용하기 위해서는 관계 복잡도(Relation complexity)와 거주 기간(Dwelling period)이 고려되어야 한다.In order to apply a specific process to the context switching, relationship complexity and dwelling period must be considered.

상기 관계 복잡도는 서브 프로세스간 관계의 복잡도를 의미한다. 예를 들어, 재귀 호출(recursive call)관계에 있는 프로세스가 존재하거나 사이클이 존재하는 경우에 관계 복잡도는 높아진다.The relationship complexity refers to the complexity of the relationship between subprocesses. For example, the relationship complexity increases when there is a process in a recursive call relationship or a cycle exists.

상기 거주 기간은 서브 프로세스를 끝마치기까지 걸리는 시간을 의미한다. 상기 서브 프로세스가 루프를 포함하고 있다면 거주 기간은 길어진다.The residence period means the time taken to finish the subprocess. If the subprocess includes a loop, the residence period is long.

상기 관계 복잡도와 거주 기간은 어떤 프로세스에 콘텍스트 전환(context switching)을 적용하는 판단 기준으로 작용한다.The relationship complexity and residence period serve as a criterion for applying context switching to a process.

여기서, 진화 하드웨어 구현에 보다 중요한 요소로 작용하는 것은 거주 기간이다. 만약 거주 기간이 특정 값보다 작다면, 하드웨어상의 콘텍스트(context)의 교환 시간으로 인하여 도리어 성능 저하가 있을 수 있다. 이런 경우는 범용 프로세서를 이용하여 임무를 실행하는 것이 효율적일 수 있다.Here, the residence period is a more important factor in the evolutionary hardware implementation. If the residence period is less than a certain value, there may be a performance degradation due to the exchange time of the context on the hardware. In such cases, it may be efficient to execute the task using a general purpose processor.

본 발명에 따른 실시예로서, 자율 이동 로봇은 낮은 관계 복잡도와 긴 거주 기간을 특징으로 하는 것으로서 진화 하드웨어에 쉽게 응용될 수 있다.As an embodiment according to the present invention, an autonomous mobile robot is characterized by low relationship complexity and long residence period and can be easily applied to evolutionary hardware.

실시예(자율이동 로봇제어)Example (autonomous robot control)

종래의 로봇은 반복적이고 변화가 없는 임무에 적합한 형태를 하고 있다. 이러한 종류의 로봇들은 수행해야 할 임무와 수행 환경에 대하여 사전에 매우 상세한 부분까지 프로그래밍 되어 있다.Conventional robots are suited for repetitive and unchanging missions. These kinds of robots are programmed with very detailed information about the tasks to be performed and the environment to be performed.

그러나, 이동 로봇의 경우 데이터는 종래 로봇의 잘 정의된 환경 정보와는 거리가 먼 신뢰도가 떨어지는 데이터를 입력받게 된다.However, in the case of a mobile robot, the data is received with less reliable data far from the well-defined environmental information of the conventional robot.

따라서, 동적인 환경에서 임무를 수행해야 하는 로봇은 임무 완수를 위하여 어느 정도의 판단 능력을 지녀야 할 필요가 있다.Therefore, a robot that must perform a task in a dynamic environment needs to have some judgment ability to complete the task.

본 발명에 따른 실시예는 2대의 로봇이 장애물을 피해가면서 목적지까지 물체를 밀고 가는 진일보한 방법 및 시스템이다.An embodiment according to the present invention is an advanced method and system in which two robots push an object to a destination while avoiding obstacles.

상기 실시예에 사용된 로봇은 1개의 라인비젼 센서와 8개의 적외선 센서를 이용하여 환경을 감지한다.The robot used in the above embodiment senses the environment using one line vision sensor and eight infrared sensors.

도5는 유전자 프로그래밍을 이용한 로봇 제어 프로그램의 개체 예를 보이고 있다. 상기 도5의 트리에서 루트 노드에서 종단 노드까지의 각 경로는 센서 정보 해석 경로를 의미한다.5 shows an example of an individual robot control program using gene programming. Each path from the root node to the end node in the tree of FIG. 5 represents a sensor information analysis path.

상기 실시예의 함수 노드는 다음의 7가지 원소로 구성되어 있다.The function node of the above embodiment consists of the following seven elements.

1. IF - OBJ : 로봇이 장애물을 찾았을 경우, 왼쪽의 서브 트리를1.IF-OBJ: If the robot finds an obstacle,

실행시키며, 찾지 못했을 경우 오른쪽의 서브 트리를 실행시킨다.If not found, the subtree on the right is executed.

2. IF - GOAL : 로봇이 목적지를 찾았을 경우, 왼쪽의 서브 트리를 실행시키며, 찾지 못했을 경우 오른쪽의 서브 트리를 실행시킨다.2. IF-GOAL: If the robot finds a destination, it executes the subtree on the left, and if it does not find it, it executes the subtree on the right.

3. IF - FORWARD : 로봇이 물체를 찾은 상태이고 목적지도 찾았을 때, 물체를 밀어도 되는 상황인지 결정하는 기능을 갖는다. 목적지-광원-로봇의 순으로 배열되었을 때 왼쪽의 서브트리를 실행시키며, 배열되지 않았을 경우 오른쪽의 서브 트리를 실행시킨다.3. IF-FORWARD: When the robot finds an object and finds its destination, it has a function to determine whether it is possible to push the object. The subtree on the left is executed when arranged in the order of destination-light source-robot, and the subtree on the right when not arranged.

4 ~ 7. IF - OBS1, OBS2, OBS3, OBS4 : 4개의 IR센서집합 중 장애물의 존재를 나타내는 집합이 있는지 결정한다. 만약 장애물이 존재할 경우 왼쪽의 서브 트리를 실행시키며, 존재하지 않을 경우 오른쪽의 서브 트리를 실행시킨다.4 ~ 7. IF-OBS1, OBS2, OBS3, OBS4: Determine whether there is a set of obstacles among 4 IR sensor sets. If there is an obstacle, the subtree on the left is executed. If not, the subtree on the right is executed.

그리고, 상기 실시예의 종단 노드는 다음의 7가지 원소로 구성되어 있다.The end node of the above embodiment is composed of the following seven elements.

1. MF : 로봇을 라인 비젼 센서가 관측하는 방향으로 전진시킨다.1. MF: Advances the robot in the direction observed by the line vision sensor.

2. MTL : 로봇을 반시계 방향으로 회전시킨 후 전진시킨다.2. MTL: Rotate the robot counterclockwise and move forward.

3. MTR : 로봇을 시계 방향으로 회전시킨 후 전진시킨다.3. MTR: Rotate the robot clockwise and move it forward.

4. MB : 로봇을 후진시킨다.4. MB: Back up the robot.

5. TL : 로봇을 반시계 방향으로 회전시킨다.5. TL: Rotate the robot counterclockwise.

6. TR : 로봇을 시계 방향으로 회전시킨다.6. TR: Rotate the robot clockwise.

7. RANDOM : 위의 6가지 운동 중 하나를 무작위로 선택한다.7. RANDOM: Randomly select one of the six exercises above.

상기 도5의 개체를 예로 들어 설명해 보면, 루트 노드에서 센서 정보를 해석하여 밀 물체를 찾았으면 오른쪽 노드로 제어권을 찾지 못했을 경우에는 왼쪽 노드로 제어권을 넘겨준다. 제어권을 받은 서브 트리에서는 해당 노드의 기능을 이용하여 센서 정보를 해석하여 어느 경로가 유효한지 결정하게 된다.Referring to the object of FIG. 5 as an example, if the root node interprets the sensor information and finds a push object, the control right is transferred to the left node if the right node is not found. The subtree that receives the control right interprets the sensor information using the function of the node to determine which path is valid.

상기 과정을 계속하여 종단 노드에 도달하면 상기 종단 노드가 가지고 있는정보가 로봇의 운동정보에 해당하게 된다.When the process continues to reach the end node, the information possessed by the end node corresponds to the motion information of the robot.

그리고,본 발명의 실시예인 자율 이동 로봇 제어를 위하여 필요한 마이크로 행동은 헤딩(Herding)과 호밍(Homing)이다.In addition, the micro action required for the autonomous mobile robot control, which is an embodiment of the present invention, is heading and homing.

상기 헤딩(Herding)은 목적지를 향하여 밀어야 할 물체를 찾는 과정을 의미한다. 상기 헤딩을 위해서 정의된 적합도 함수는 수학식3과 같다.The heading refers to a process of finding an object to be pushed toward a destination. The goodness-of-fit function defined for the heading is shown in Equation 3.

Fnew= Fold+ w1x n(collisions) + w2x n(steps)F new = F old + w 1 xn (collisions) + w 2 xn (steps)

(상기 수학식에서 "x" 연산기호는 곱셈을 의미한다. 이하 같다.)(In the above equation, the symbol "x" means multiplication.

그리고, 상기 호밍(Homing)은 물체를 찾은 후 목적지까지 운송하는 과정으로 상기 호밍 행동을 위하여 정의된 적합도 함수는 수학식4와 같다.The homing is a process of finding an object and transporting it to a destination. The fitness function defined for the homing behavior is expressed by Equation 4.

Fnew= Fold+ w1x n(miss) + w2x n(steps) + w3x visionF new = F old + w 1 xn (miss) + w 2 xn (steps) + w 3 x vision

그리고, 각 개체에 적합도가 부여되면 다음 세대를 구성할 개체를 선정하여야 한다. 이 역할을 하는 것이 선택 연산자이다. 즉, 상기 선택연산자는 각 개체에 부여된 적합도 값에 기반하여 다음 세대를 구성할 개체를 선정하는 연산자이다.And if the suitability is given to each individual, the individual to make up the next generation should be selected. This role is the selection operator. That is, the selection operator is an operator that selects an entity to construct the next generation based on the goodness-of-fit value assigned to each entity.

본 발명에서 사용된 연산자는 적합도비례 선택 연산자이다.The operator used in the present invention is a goodness-of-fit selection operator.

상기 적합도비례 선택연산에서는 각 개체가 적합도에 비례하여 생존 확률을 갖게 된다. 상기 생존 확률은 수학식5에 기반하여 주어지게 된다.In the fitness-proportional selection operation, each individual has a survival probability in proportion to the fitness. The survival probability is given based on Equation 5.

(상기Q f i 는 f1+f2+...+fn을 의미한다.)( Q f i means f 1 + f 2 + ... + f n .)

센서 정보 해석을 위한 경로를 확보하기 위해서는 충분한 깊이의 개체가 보장되어야 한다. 그러나, 유전자 프로그래밍의 계속되는 수행과정에서 유효 계산과는 상관없는 노드들이 추가될 수 있다. 즉, 이러한 현상을 인트론(intron)문제라고 한다. 상기 인트론문제의 존재 가치에 대하여 많은 의견이 존재하나 계산 비용의 가치면에서, 하드웨어 구현된 유전자 프로그래밍의 경우 긍정적인 요소라고는 볼 수 없다.Enough depth of objects must be ensured to ensure a path for sensor information interpretation. However, in the ongoing execution of genetic programming, nodes may be added that are not related to valid calculations. In other words, this phenomenon is called an intron problem. Many opinions exist about the value of the intron problem, but in terms of computational cost, it is not a positive factor for hardware-implemented gene programming.

따라서, 본 발명에서는 과다한 인트론(intron)의 발생을 막도록 일정 깊이 이상의 개체 성장은 금지하였다.Therefore, in the present invention, individual growth beyond a certain depth is prevented to prevent excessive introns.

그리고, 본 발명에 따른 콘텍스트 전환(Context switching)을 용이하게 하기 위하여 진화 하드웨어 상에는 2가지 종류의 블록이 존재한다.And, there are two kinds of blocks on evolutionary hardware to facilitate context switching according to the present invention.

노드1 블록은 함수 노드를 표현하기 위한 노드이며, 노드2 블록은 종단 노드를 표현하기 위한 노드이다. 노드 1과 노드 2는 함수 노드의 모든 원소와 종단 노드의 모든 원소를 표현할 수 있도록 설계되었다.The node 1 block is a node for representing a function node, and the node 2 block is a node for representing an end node. Node 1 and Node 2 are designed to represent all elements of the function node and all elements of the end node.

도6은 노드1의 구조로서 함수 노드를 표현하고 있는 블록이다.6 is a block representing a function node as the structure of node 1. FIG.

초기화 상태에서는 하드웨어상의 노드1 블록은 모두 도6과 동일한 게이트 분포와 게이트간 연결을 보인다.In the initialization state, all Node1 blocks on the hardware show the same gate distribution and inter-gate connection as shown in FIG.

그러나, 프로그램이 실행되어 하드웨어 상에 구현될 콘텍스트(context)가 결정되면 상기 콘텍스트의 정보에 따라 "*"표시가 된 게이트의 종류를 변경하여 해당 함수 노드를 표현하게 된다. 종단 노드도 함수 노드와 같은 방식으로 원하는 기능을 표현하게 된다.However, when the context of the program to be implemented is determined by executing the program, the function node is represented by changing the type of gate marked with "*" according to the information of the context. End nodes express the desired functionality in the same way as function nodes.

도7은 본 발명에 따른 실시예인 자율 이동로봇의 시스템 다이어그램이다.7 is a system diagram of an autonomous mobile robot according to an embodiment of the present invention.

전체 시스템은 부분1 (KHEPERA부분)과 부분2 (host PC부분)으로 구성된다.The whole system consists of part 1 (KHEPERA part) and part 2 (host PC part).

상기 부분1은 센서를 통해 환경 정보를 입력하는 감지부와 모터 제어부를 포함한다. 모터 제어는 부분 2로부터 운동 정보를 받아 해석하는 방식으로 이루어진다.The part 1 includes a sensor and a motor controller for inputting environmental information through a sensor. Motor control is achieved by receiving motion information from part 2 and interpreting it.

상기 부분 2는 로봇 제어부(40)와 통신부(50), 그리고 진화 하드웨어부(60)로 구성된다.The part 2 includes a robot controller 40, a communication unit 50, and an evolution hardware unit 60.

로봇 제어부(40)의 주기능은, 로봇이 해석할 수 있는 형태로 운동 정보를 변환하고, 로봇의 센서 정보를 해석할 수 있는 형태로 바꾸며, 상기 센서 정보를 이용하여 적합도를 계산하는 것이다. 이 외에 초기화 상태를 위한 로봇의 운동 정보를 생성하는 역할을 한다.The main function of the robot control unit 40 is to convert the motion information into a form that can be interpreted by the robot, convert it to a form that can interpret the sensor information of the robot, and calculate a fitness using the sensor information. In addition, it serves to generate the motion information of the robot for the initialization state.

통신부(50)는 로봇 제어부가 보낸 정보를 진화 하드웨어에 보내고, 진화 하드웨어부가 출력하는 운동 정보를 로봇 제어부로 보내는 역할을 한다.The communication unit 50 transmits the information sent by the robot control unit to the evolution hardware, and sends the motion information output by the evolution hardware unit to the robot control unit.

이외에 로봇 제어부의 적합도를 입력받아 적합도 그래프를 생성하며, 최고의 적합도를 나타내는 개체 정보를 저장하는 역할을 담당한다.In addition, it generates a fitness graph by receiving the fitness of the robot controller, and plays the role of storing the object information indicating the best fitness.

진화 하드웨어부(60)는 XILINX사의 xc6216 FPGA상에 위치한다. 상기 xc6216 FPGA는 V.C.C co의 H.O.T. 보드에 장치되어 있으며 host PC의 PCI 슬롯을 통하여프로그램과 통신한다.The evolution hardware unit 60 is located on the xc6216 FPGA of XILINX Corporation. The xc6216 FPGA is a H.O.T. It is installed on the board and communicates with the program through the PCI slot of the host PC.

진화 하드웨어부의 FPGA상에서 로봇 제어 프로그램이 들어있으며, 센서 정보의 해석과 운동정보의 결정을 담당하게 된다.The robot control program is included in the FPGA of the evolutionary hardware part, and it is responsible for the interpretation of the sensor information and the determination of the motion information.

도8, 9, 10은 본 발명에 따른 실시예의 결과 그래프를 보이고 있다.8, 9 and 10 show graphs of the results of an embodiment according to the present invention.

도8은 최적 개체의 적합도 그래프이다. 상기 그래프의 세로축은 적합도를 나타내고 가로축은 세대를 나타낸다. 상기 도8의 그래프를 보면 20세대 때부터 적합도가 낮아지는 것을 볼 수 있다. 그러나, 20 내지 60세대는 적합도의 편차가 있으나, 70세대 이후부터 안정화되는 것을 알 수 있다.8 is a graph of the fitness of the optimal individual. The vertical axis of the graph represents the goodness of fit and the horizontal axis represents the generation. Looking at the graph of FIG. 8, it can be seen that the suitability is lowered since the 20th generation. However, although 20 to 60 generations have deviations in the goodness of fit, it can be seen that after 70 generations, they are stabilized.

도9는 평균 적합도 그래프이다. 상당한 편차를 보이나 적합도 값이 꾸준히 작아지고 있음을 알 수 있다. 상기 도9로 미루어 볼 때 한 세대의 개체들이 정도의 차는 있으나 모두 어느 정도 학습을 진행하고 있음을 알 수 있다.9 is an average goodness of fit graph. Although there is considerable variation, it can be seen that the fitness value is steadily decreasing. 9, it can be seen that individuals of a generation have some degree of difference, but all of them are learning to some extent.

도10은 목표물까지의 근접회수 그래프이다. 상기 그래프에서 알 수 있듯 세대가 진행될수록 목적지에 근접하는 횟수가 증가한다.10 is a close-up graph to the target. As can be seen from the graph, as the generation progresses, the number of approaches to the destination increases.

이상, 실시예를 들어 본 발명을 설명하였으나, 본 발명은 이에 제한되지 않는다. 본 발명의 일실시예로 로봇제어를 예를 들어 설명하였으나, 본 발명이 적용된 진화 하드웨어의 산업적 응용분야는 다양하다. 행성 탐사체의 제어 프로세서, 유,무선통신에서 데이터 압축을 위한 프로세서 등 연산의 성능 향상을 위한 여러 가지 알고리즘이 차례로 사용되어야 하는 분야 또는 환경 변화에 독자적으로 적응할 필요가 있는 분야에 본 발명을 적용할 수 있다.As mentioned above, although this invention was demonstrated to the Example, this invention is not limited to this. Although robot control has been described as an embodiment of the present invention, there are various industrial applications of the evolutionary hardware to which the present invention is applied. The present invention can be applied to a field in which various algorithms for improving performance of operations, such as a control processor of planetary exploration, a processor for data compression in wired and wireless communication, must be used in sequence, or an area that needs to adapt independently to environmental changes. Can be.

본 발명에 따른 프로세스 분할을 이용한 유전자 프로그래밍법 및 그 이용시스템은 콘텍스트 전환(context switching)과 적합도 전환(fitness switching)을 함께 사용하여 복잡한 프로세스를 작고 단순한 서브 프로세스로 분할한 후, 분할 결과를 하드웨어 구현 가능한 형태로 변환하고, 계산순서에 따라 분할된 서브 프로세스들을 실행시키고, 중간계산결과를 합하여 최종결과를 구성하므로써, 환경 변화 또는 임무 변화에 적응할 수 있는 적응 시스템의 구현을 가능케 한다.Genetic programming using process partitioning and a system using the same according to the present invention divides a complex process into small and simple subprocesses using context switching and fitness switching together, and then implements the partitioning result in hardware. By converting to possible forms, executing subprocesses according to the calculation order, and combining the intermediate calculation results to form the final result, it is possible to implement an adaptation system that can adapt to environmental or mission changes.

즉, 본 발명에서 얻어낼 수 있는 수확은 다음과 같다.That is, the harvest which can be obtained by this invention is as follows.

첫째, 용량 문제로 인하여 주어진 하드웨어에 표현할 수 없었던 임무를 하드웨어에 표현할 수 있는 방법을 제시하며, 둘째, 제어 회로의 조정을 통하여 환경 변화에 적응할 수 있는 회로의 구현을 가능하게 한다.First, it proposes a way to express the tasks that could not be expressed in a given hardware due to capacity problems. Second, it is possible to implement a circuit that can adapt to environmental changes by adjusting control circuits.

또한, 진화 하드웨어의 동적 재구성 능력을 이용하여 적응 시스템을 개발할 수 있는 방법을 제시하고 있다.In addition, it proposes a method for developing an adaptive system using the dynamic reconfiguration capability of evolutionary hardware.

Claims (6)

프로세스 분할을 이용한 유전자 프로그래밍법에 있어서,In gene programming using process division, 사용 가능한 하드웨어 자원을 분석하는 단계;Analyzing available hardware resources; 트리를 구성할 함수노드와 종단노드를 선정하는 단계;Selecting a function node and an end node to form a tree; 서브 트리의 루트 노드로 사용되는 조건노드를 선정하는 단계;Selecting a condition node used as a root node of a subtree; 상기 함수노드와 종단노드를 이용하여 상기 트리를 진화시키는 단계;Evolving the tree using the function and end nodes; 상기 진화된 트리를 상기 하드웨어에 표현할 수 있는 크기의 서브트리로 분할하는 단계;Dividing the evolved tree into subtrees of a size that can be represented in the hardware; 상기 분할된 서브트리를 하드웨어 표현을 위한 형태로 변환하는 단계;Converting the partitioned subtree into a form for hardware representation; 상기 분할된 서브트리와 상기 서브트리를 위한 조건노드를 포함하는 하드웨어 회로를 구성하여 상기 하드웨어에 표현하는 단계;Constructing a hardware circuit including the divided subtree and a condition node for the subtree, and expressing the hardware circuit in the hardware; 중간결과를 합하여 최종결과를 계산하는 단계;를 통하여Calculating the final result by adding the intermediate results; 프로세스를 자동으로 분할하고 변환하는 콘텍스트(context) 전환단계;를 포함하는 것을 특징으로 하는 프로세스 분할을 이용한 유전자 프로그래밍법.A context switching step of automatically dividing and converting a process; Gene programming method using a process partition comprising a. 제1항에 있어서,The method of claim 1, 상기 콘텍스트 전환단계는,The context switching step, 탐색할 문제 공간을 위한 2개이상의 기본 행동을 정의하는 단계;Defining at least two basic behaviors for the problem space to explore; 상기 기본 행동의 결합을 통하여 문제 해결을 위한 마이크로 행동을 정의하는 단계;Defining a micro behavior for problem solving through combining the basic behavior; 상기 마이크로 행동을 위한 적합도(fitness)의 집합을 정의하는 단계;Defining a set of fitness for the microbehavior; 상기 문제 해결을 위한 목표 행동을 위한 마이크로 행동의 조합을 정의하는 단계;Defining a combination of micro actions for a target action for solving the problem; 2개이상의 서브 트리를 갖는 유전자프로그램을 정의하는 단계;Defining a gene program having two or more subtrees; 상기 유전자프로그램에 따라 상기 마이크로 행동의 조합을 진화시키는 단계;를 통하여 적합도 연산자를 개선시키는 적합도 전환단계를 추가로 포함하는 것을 특징으로 하는 프로세스 분할을 이용한 유전자 프로그래밍법.Evolving the combination of micro-actions according to the genetic program; and further comprising a fitness conversion step of improving a fitness operator. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 콘텍스트 전환단계는 매 깊이(depth)마다 교차점 선정확률에 기반하여 교차점을 선정하는 깊이연관 교차연산자(depth-dependent crossover)를 포함하며, 상기 교차점 선정확률은 사전에 고정시킨 후 계속 같은 확률값을 적용하는 것을 특징으로 하는 프로세스 분할을 이용한 유전자 프로그래밍법.The context switching step includes a depth-dependent crossover that selects the intersection point based on the probability of selecting the intersection point at every depth, and the probability of selecting the intersection point is fixed after applying the same probability value. Genetic programming using process partitioning characterized in that. 프로세스 분할을 이용한 유전자 프로그래밍법의 이용시스템으로서,As a system of using genetic programming using process partitioning, 프로세스를 자동으로 분할하고 변환하는 콘텍스트(context) 전환모듈;을 포함하는 것을 특징으로 하는 프로세스 분할을 이용한 유전자 프로그래밍법의 이용시스템.A context switching module for automatically dividing and converting a process; Genetic programming using system using a process partition comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 콘텍스트 전환모듈은,The context switching module, 미리 정의된 함수노드와 종단노드를 이용하여 주어진 프로세스를 표현하는 진화부(evolver)와;An evolver for expressing a given process using a predefined function node and an end node; 상기 진화부에서 진화된 트리를 입력으로 받아 서브 프로세스로 분할하고 분할결과를 하드웨어 구현가능한 형태로 표현하여 하드웨어 라이브러리(hardware library)를 구성하는 분할부(divider);를 포함하는 것을 특징으로 하는 프로세스 분할을 이용한 유전자 프로그래밍법의 이용시스템.A process division comprising: a divider configured to receive a tree evolved by the evolution unit as an input and divide the sub-process into a sub-process, and express the division result in a form that can be implemented by hardware to form a hardware library. Genetic programming using system. 제5항에 있어서,The method of claim 5, 상기 하드웨어 라이브러리는 분할된 서브 프로세스의 하드웨어 구현을 위한 정보를 저장하는 것을 특징으로 하는 프로세스 분할을 이용한 유전자 프로그래밍법의 이용시스템.And the hardware library stores information for hardware implementation of the divided sub-process.
KR1020000018817A 2000-04-11 2000-04-11 Genetic Programming Method and System using Process Decomposition KR20010095569A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000018817A KR20010095569A (en) 2000-04-11 2000-04-11 Genetic Programming Method and System using Process Decomposition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000018817A KR20010095569A (en) 2000-04-11 2000-04-11 Genetic Programming Method and System using Process Decomposition

Publications (1)

Publication Number Publication Date
KR20010095569A true KR20010095569A (en) 2001-11-07

Family

ID=19663304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000018817A KR20010095569A (en) 2000-04-11 2000-04-11 Genetic Programming Method and System using Process Decomposition

Country Status (1)

Country Link
KR (1) KR20010095569A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100459013B1 (en) * 2001-11-27 2004-12-03 주식회사 케이티 Genetic Evolution Method of Using Partial Problem Division
KR100863128B1 (en) * 2001-12-22 2008-10-15 주식회사 케이티 Method for Optimizing Wireless Network using the optimization of domain
KR20170025557A (en) 2015-08-28 2017-03-08 주식회사 케이티 Reduction and delivery apparatus for the genetic variant information and method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960015195A (en) * 1994-10-31 1996-05-22 배순훈 Tree structure binary operation coding device
JPH09179894A (en) * 1995-12-22 1997-07-11 Sony Corp Device and method for circuit design
KR19990049411A (en) * 1997-12-12 1999-07-05 윤종용 Coprocessor and its processing method using genetic algorithm
KR20000039405A (en) * 1998-12-12 2000-07-05 이계철 Method for arranging binary tree using genetic algorithm
KR20010011838A (en) * 1999-07-30 2001-02-15 정선종 Transformation method of centralized database to distributed database using the genetic algorithms

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960015195A (en) * 1994-10-31 1996-05-22 배순훈 Tree structure binary operation coding device
JPH09179894A (en) * 1995-12-22 1997-07-11 Sony Corp Device and method for circuit design
KR19990049411A (en) * 1997-12-12 1999-07-05 윤종용 Coprocessor and its processing method using genetic algorithm
KR20000039405A (en) * 1998-12-12 2000-07-05 이계철 Method for arranging binary tree using genetic algorithm
KR20010011838A (en) * 1999-07-30 2001-02-15 정선종 Transformation method of centralized database to distributed database using the genetic algorithms

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100459013B1 (en) * 2001-11-27 2004-12-03 주식회사 케이티 Genetic Evolution Method of Using Partial Problem Division
KR100863128B1 (en) * 2001-12-22 2008-10-15 주식회사 케이티 Method for Optimizing Wireless Network using the optimization of domain
KR20170025557A (en) 2015-08-28 2017-03-08 주식회사 케이티 Reduction and delivery apparatus for the genetic variant information and method thereof

Similar Documents

Publication Publication Date Title
CA3085653C (en) Evolution of architectures for multitask neural networks
Chen et al. Autostacker: A compositional evolutionary learning system
Laskey et al. Network fragments: Representing knowledge for constructing probabilistic models
Emami et al. Development of a systematic methodology of fuzzy logic modeling
Huizinga et al. Evolving neural networks that are both modular and regular: Hyperneat plus the connection cost technique
Mansor et al. Artificial Immune System Paradigm in the Hopfield Network for 3-Satisfiability Problem.
Coello Coello Evolutionary multi-objective optimization: basic concepts and some applications in pattern recognition
De Rainville et al. DEAP: enabling nimbler evolutions
Bagavathi et al. Evolutionary Mapping Techniques for Systolic Computing System
Ishibuchi et al. Interpretability issues in fuzzy genetics-based machine learning for linguistic modelling
KR20010095569A (en) Genetic Programming Method and System using Process Decomposition
Ababsa et al. Genetic programming-based self-reconfiguration planning for metamorphic robot
Lewis et al. Learning in hardware: architecture and implementation of an FPGA-based rough set machine
Seok et al. Genetic programming of process decomposition strategies for evolvable hardware
Meng et al. Evolution and Efficiency in Neural Architecture Search: Bridging the Gap Between Expert Design and Automated Optimization
Wang et al. Implementing multi-VRC cores to evolve combinational logic circuits in parallel
Younis et al. Approximated unimodal region elimination-based global optimisation method for engineering design
Medvet et al. GraphEA: a versatile representation and evolutionary algorithm for graphs
Lee et al. Behavior evolution of autonomous mobile robot using genetic programming based on evolvable hardware
Jahnke et al. Digital simulation of spiking neural networks
Garciarena et al. Redefining Neural Architecture Search of Heterogeneous Multinetwork Models by Characterizing Variation Operators and Model Components
Ong et al. Systematic review and open challenges in hyper-heuristics usage on expensive optimization problems with limited number of evaluations
Hidalgo et al. A hybrid evolutionary algorithm for multi-FPGA systems design
Perkowski et al. Learning hardware using multiple-valued logic-Part 1: introduction and approach
Selvaraj et al. Functional decomposition and its applications in machine learning and neural networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application