Еволюція як метод вирішення технічних завдань

Эволюция - от обезьяны к человеку

Ідея використовувати механізми природного відбору в області технічного конструювання вперше була висунута півстоліття тому. З тих пір вчені домоглися чималих успіхів.

Біологічна еволюція і механізми природного відбору зарекомендували себе в якості надзвичайно ефективного інструменту адаптації живих організмів до умов навколишнього середовища. Білий ведмідь чудово пристосувався до морозів Заполяр'я, рогата гадюка — до спеки пустелі Сахара. Півстоліття тому, на зорі комп'ютерної ери, програмістам прийшло в голову спробувати застосувати закони, відкриті Дарвіном, для вирішення технічних завдань. Так народилися еволюційні алгоритми. Про нинішній стан справ в області генетичного програмування і еволюційних стратегій можна було дізнатися, побувавши на минулій у Амстердамі міжнародної конференції GECCO (Genetic and Evolutionary Computation Conference).

Варіанти технічних рішень спаровуються і дають потомство

У боротьбі за існування виживає найсильніший, — так влаштована природа. Але тут зовсім не обов'язково мається на увазі фізична сила. Найсильніший — це може бути і найвищий або самий присадкуватий, найважчий або найлегший, самий товстий або самий худий, найшвидший або самий повільний, а також найхитріший або самий кмітливий … Все залежить від умов, в які поставила організм зовнішнє середовище.

На тих же принципах побудовано і еволюційне моделювання, тільки тут за виживання б'ються не тварини в дикій природі, а технічні рішення в комп'ютері. Скажімо, різні конструкції форсунки автомобільного двигуна. Марк Хармен (Mark Harman), професор інформатики лондонського Університетського коледжу, пояснює: «Зазвичай ми починаємо моделювання з випадкового набору рішень якийсь технічної проблеми. Так само, як у природі, наші варіанти рішень можуть злучатися і виробляти потомство, причому деякі з нащадків можуть виявитися досконаліше батьків. По мірі того, як змінюються покоління, можуть викристалізуватися одне-два вдалих рішення. Якщо мова йде про форсунках двигуна, то це можуть бути конструкції, що забезпечують вищу ступінь стиснення пального. У нашій програмі у них більше шансів дати потомство ».

Оптимізація технічного рішення відбувається сама собою

Критерії відбору задають, звичайно, люди. Це може бути, скажімо, коефіцієнт корисної дії форсунки: внаслідок найбільш ефективні конструкції виживають, а менш ефективні вимирають і відбраковуються комп'ютером. І кілька сотень поколінь потому комп'ютер, якщо пощастить, може раптом видати варіант оптимізованої форсунки — варіант, який міг би ніколи не прийти в голову живому інженеру-конструктору. Професор Хармен пояснює: «Величезна перевага еволюційних алгоритмів полягає в тому, що вдалі рішення викристалізовуються самі собою. Ми не знаємо точно, як народжується те чи інше рішення, ми можемо лише констатувати, що воно дійсно краще за інших. А всю роботу виконує за нас еволюція ».

Зрозуміло, що можливості цього методу не безмежні. Залежно від складності завдання, комп'ютерне моделювання на основі еволюційних алгоритмів може зажадати багатьох тижнів машинного часу, говорить учений: «Еволюції знадобилися мільярди років на те, щоб життя пройшло шлях від бактерії до людини. Але ми, природно, не можемо чекати так довго. Тому ми, приступаючи до моделювання, зазвичай намагаємося задати хорошу вихідну позицію. Фігурально висловлюючись, наша еволюція починається не з бактерій, а з мавп ».

Головне — правильно поставити граничні умови

Тут особливе значення набуває майстерність програміста і його почуття міри: якщо він задасть занадто загальні, невизначені граничні умови, цифрова еволюція може зайняти дуже багато часу, якщо ж умови виявляться занадто вузькими і жорсткими, еволюція може і зовсім «не піти». За словами професора Хармю, метод отримав вже досить широке поширення серед інженерів, особливо при вирішенні проблем оптимізації. Але вже через кілька років еволюційні алгоритми можуть зацікавити і розробників програмного забезпечення, вважає вчений: «Одна ідея, яка здається мені надзвичайно цікавою, полягає в тому, що такі алгоритми можуть виявляти і навіть самостійно усувати помилки в програмі — причому в той самий час, коли програма працює. Поки, правда, ця ідея перебуває на ранній стадії розробки, але років через два її, будемо сподіватися, вдасться реалізувати на практиці».

Можливо, вже в недалекому майбутньому підключений на ніч до зарядного пристрою смартфон зможе самостійно перевірити сумісність черговий актуалізації операційної системи з встановленими на ньому додатками. І у випадку виявлення конфлікту попередити про це власника, а ще краще — просто адаптувати нову версію операційної системи до наявних додатків.

Источник:  dw.de

©  Ноосфера