16.01.2013 Views

Rezümékötet 2008. - vmtdk

Rezümékötet 2008. - vmtdk

Rezümékötet 2008. - vmtdk

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

É L E T T E L E N T E R M É S Z E T T U D O M Á N Y O K<br />

É S M Û S Z A K I T U D O M Á N Y O K<br />

The evolution algorithm is the application of Darwin’s theory about natural selection to find the minimum of a<br />

function. It says that the more vital specimens survive and reproduce, while the less vital ones disappear. The algorithm<br />

is slow and it does not guarantee precise results however it is used quite often. Its advantage lies in the fact that<br />

it does not use complex mathematical calculations and it finds the minimum of the function with great probability.<br />

The program is written in Microsoft Visual Studio 2005 on C++ language, based on a simplified version of the<br />

evolution algorithm. In fact it is a multi-thread application. The birth and death of the specimens is represented by<br />

creating and destroying some threads. Each specimen represents the value of the function at a given point. Vitality of<br />

a specimen is determined by the value of the function at a given point. The smaller the function value the bigger the vitality.<br />

Those specimens that contain the smallest values (the most vital) survive and reproduce. This way we get to the<br />

minimum of the function.<br />

Keywords: minimum of a function, evolution, specimens, multi-thread application<br />

EVOLUTIVNI ALGORITAM<br />

Autor: Andraš MUHI III godina studija<br />

Mentor: Dr Arpad TAKAÈI profesor<br />

Institucija: Univerzitet u Novom Sadu, Fakultet tehnièkih nauka, odsek: Raèunarstvo i automatika, Novi Sad<br />

U optimizacionim problemima èesto susreæemo problem pronalaženja minimuma neke funkcije. U ovakvim sluèajevima<br />

najèešæe se radi o funkcijama više promenljive koji sadrže lokalne minimume, kojima pronalaženje globalnog<br />

minimuma zahteva složene matematièke operacije. Problem se još usložnjava ako se radi o funkcijama koji sadrže<br />

prekide.<br />

Evolutivni algoritam je u suštini primena Darvinovog principa o evoluciji za pronalaženje minimuma funkcije, koji<br />

kaže da najvitalnije jedinke ostaju žive, dok manje vitalne jedinke propadaju. Vitalne jedinke se razmnožavaju. Algoritam<br />

je spor i ne garantuje taène rezultate, ali ipak se èesto koristi. Prednost je u tome da ne upotrebljava složene<br />

proraèune i sa velikom verovatnoæom nalazi minimum funkcije.<br />

U razvojnom okruženju Microsoft Visual Studio 2005 sam isprogramirao jednu jednostavniju varijantu evolutivnog<br />

algoritma na jeziku C++. Ustvari, radi se o jednom konkurentnom programu koji se sastoji od više niti. Roðenje i<br />

umiranje jedinki simulirano je stvaranjem i poništavanjem niti. Svaka jedinka predstavlja vrednost funkcije u datoj taèki.<br />

Vitalnost jedinke je odreðena vrednošæu funkcije. Što je manja vrednost funkcije u datoj taèki to je vitalnost veæa.<br />

Jedinke koje sadrže najmanje vrednosti funkcije (tj. one najvitalnije), prežive i razmnožavaju se. Na ovaj naèin dolazimo<br />

do minimuma funkcije.<br />

Kljuène reèi: minimum fukcije, evolucija, jedinke, konkurentni program<br />

N Y O S D I Á K K Ö R I K O N F E R E N C I A<br />

101

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!