Одною з перших моїх вправ у програмуванні на OCaml була реалізація алгоритма генетичної оптимізації (ГА). За посиланням приведено повний текст програми.
Особливістю мого варіанту є те, що він з самого початку задумувався, як ключова частина оптимізатора алгоритмів, представлених у вигляді програм на C, C++ або будь-якій іншій мові програмування, що дозволяє розбивати тексти програм на кілька файлів. Передбачалось, що цільова функція (ЦФ), представлена у прикладі елементарною функцією трьох змінних, буде замінена модулем, що буде генерувати частину тексту програми (у випадку C/C++ це був-би h-файлу з константами), компілювати код в бінарний модуль та виконувати його. Результати виконання програми мали повертатись в ГА для збереження в кеші.
Внутрішнє уявлення гена - ціле число, хромосоми, відповідно, - список цілих. Для того, щоби трохи спростити генерацію коду цільовій функції було введено концепцію дескриптора. Дескриптор - це список областей визначення кожного параметра ЦФ, за допомогою якого можна отримати з хромосоми список конкретних значень параметрів. Також, оскільки передбачалось, що вартість обчислення ЦФ набагато дорожче, ніж зберігання хромосоми з результатом обчислення, тож було введено кеш результатів обчислення.
Кодування коментарів в програмі - koi8-u.