Скачиваний:
0
Добавлен:
26.10.2025
Размер:
1.13 Mб
Скачать

Теоретические материалы

Пример кода на языке Prolog, реализующего возведение в степень с использованием рекурсии представлен в листинге 1.2.

Листинг 1.2. Реализация рекурсии

% Copyright implement main     open core, console class predicates     power : (integer, integer, integer [out]) nondeterm. clauses     power(X, 1, X).     power(X, Y, Z) :-         Y > 1,         Y1 = Y - 1,         power(X, Y1, Z1),         Z = Z1 * X.     run() :-         nl,         write("Power 1"),         nl,         power(5, 1, Z),         write(Z),         nl,         fail.     run() :-         nl,         write("Power 8"),         nl,         power(2, 8, Z),         write(Z),         nl,         fail.     run() :-         stdio::write("\nEnd"). end implement main goal     console::runUtf8(main::run).

Структура отчета по лабораторной работе

  1. Цель работы.

  2. Эксперимент 1.

    1. Код программы на языке Prolog, реализующей формальную логическую модель с подробными комментариями.

    2. Результаты выполнения программы.

  3. Задание на выполнение 2.

    1. Эксперимент 2.

    2. Задание на выполнение эксперимента 2.

    3. Формальная логическая модель.

    4. Код программы на языке Prolog, реализующей формальную логическую модель с подробными комментариями.

    5. Результаты выполнения программы (с учетом требований, содержащихся в индивидуальном задании).

Рекомендуемые интернет-ресурсы

Ссылки на рекомендуемые ресурсы представлены в табл. 1.3.

Таблица 1.3.

Рекомендуемые интернет-ресурсы

Название ресурса

Ссылка на ресурс (QR-код)

Ссылка на ресурс (текст)

Visual Prolog (официальный сайт)

https://www.visual-prolog.com/

Fundamental Visual Prolog (руководство по использованию)

https://wiki.visual-prolog.com/index.php?title=Fundamental_Visual_Prolog

Установка Visual Prolog 5.2 и разработка программы HelloWorld

https://www.youtube.com/watch?v=58bBbf-Y_lw

Логическое программирование на языке Visual Prolog Учебное пособие

https://ssau.ru/files/resources/sotrudniki/soldatova_lezina.pdf

Лабораторная работа № 2. «Программная реализация структур генетического алгоритма»

Цель работы: приобретение навыков разработки и программной реализации на C# структур и операторов генетических алгоритмов.

Трудоемкость: 4 академических часа.

Лабораторная работа выполняется в составе бригад по 2 человека. Номер варианта определяется по последней цифре студенческого билета (вариант №10 соответствует цифре 0) или задаётся преподавателем.

Задание на выполнение лабораторной работы

Разработать модель хромосомы, фитнес-функцию, операторы мутации и кроссинговера согласно своему варианту. Выполнить тестирование моделей и операторов с помощью xUnit.Net.

Варианты заданий

Варианты указаны в табл. 2.1.

Таблица 2.1.

Варианты заданий для лабораторной работы №2

Задание

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R ; разрядность гена (отдельного рабочего параметра) – 8; количество рабочих параметров задается специальным методом и может быть от 2 до N; целочисленное кодирование с помощью двоичных чисел; диапазон изменения вектора рабочих параметров от xmin до xmax.

Фитнес функция:

Функция сферы:

Глобальный минимум:

Оператор мутации:

Мутация у отдельной особи происходит с вероятностью 0,09 – 0,99. Выбирается случайным образом ген, и в нем инвертируется один бит, выбранный случайным образом.

Оператор кроссинговера:

Двухточечный кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R ; разрядность гена (отдельного рабочего параметра) – 16; количество рабочих параметров задается специальным методом и может быть от 2 до N; целочисленное кодирование с помощью кода Грея; диапазон изменения вектора рабочих параметров от от xmin до xmax.

Фитнес функция:

Функция Роземброка:

Глобальный минимум:

Оператор мутации:

Мутация у отдельной особи происходит с вероятностью 0,08 – 0,95. Выбирается случайным образом ген, и в нем инвертируется один бит, выбранный случайным образом.

Оператор кроссинговера:

Простой одноточечный кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R ; разрядность гена (отдельного рабочего параметра) – 16; количество рабочих параметров задается специальным методом и может быть от 2 до N; целочисленное кодирование с помощью кода Грея; диапазон изменения значений элементов вектора рабочих параметров от xmin до xmax.,

Фитнес функция:

Функция Экли:

Глобальный минимум:

Оператор мутации:

Мутация у отдельной особи происходит с вероятностью 0,09 – 0,0995. Выбирается случайным образом ген, и в нем инвертируется два бита, выбранные случайным образом.

Оператор кроссинговера:

Трехточечный кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R; разрядность гена (отдельного рабочего параметра) – 32; количество рабочих параметров задается специальным методом и может быть от 2 до N; целочисленное кодирование с помощью двоичных чисел; диапазон изменения элементов вектора рабочих параметров от – xmin до xmax.

Фитнес функция:

Функция Била:

Глобальный минимум:

Оператор мутации:

Мутация у отдельной особи происходит с вероятностью 0,08 – 0,001. Выбирается случайным образом два гена, которые меняются местами.

Оператор кроссинговера:

Простой двухточечный кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R ; разрядность гена (отдельного рабочего параметра) – 16; количество рабочих параметров задается специальным методом и может быть от 2 до N; целочисленное кодирование с помощью двоичных чисел; диапазон изменения вектора рабочих параметров от – xmin до xmax.

Фитнес функция:

Функция Бута:

Глобальный минимум:

Оператор мутации:

Мутация у отдельной особи происходит с вероятностью 0,08 – 0,001. Выбирается случайным образом ген, и в нем инвертируется два бита, выбранные случайным образом.

Оператор кроссинговера:

Простой двухточечный кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R; количество рабочих параметров задается специальным методом и может быть от 2 до N; вещественное кодирование; диапазон изменения значений элементов вектора рабочих параметров от xmin до xmax.,

Фитнес функция:

Функция МакКормика:

Глобальный минимум:

Оператор мутации:

Мутация с нормальным распределением (Random Mutation). Мутация у отдельной особи происходит с вероятностью 0,01 – 0,05. Выбирается случайным образом ген, и в нем генерируется случайное вещественное число x ϵ [xmin, xmax] с нормальным распределением, смещенным от текущего значения:

Оператор кроссинговера:

BLX-a-b кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R; количество рабочих параметров задается специальным методом и может быть от 2 до N; вещественное кодирование; диапазон изменения значений элементов вектора рабочих параметров от xmin до xmax.,

Фитнес функция:

Функция «подставка для яиц»:

Глобальный минимум:

Оператор мутации:

Случайная мутация (Random Mutation). Мутация у отдельной особи происходит с вероятностью 0,01 – 0,1. Выбирается случайным образом ген, и в нем генерируется случайное вещественное число x ϵ [xmin, xmax] с равномерным распределением вероятности:

Оператор кроссинговера:

BLX-a-b кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R; количество рабочих параметров задается специальным методом и может быть от 2 до N; вещественное кодирование; диапазон изменения значений элементов вектора рабочих параметров от xmin до xmax.,

Фитнес функция:

Функция Изома:

Глобальный минимум:

Оператор мутации:

Альтернативная случайная мутация (Alternate Random Mutation). Мутация у отдельной особи происходит с вероятностью 0,005 – 0,1. Выбирается случайным образом ген, и в нем генерируется случайное смещение Δ ϵ [xmin/5, xmax/5] с равномерным распределением вероятности:

Если после смещения текущее значение выходит за пределы интервала, то округляем до xmin или xmax.

Оператор кроссинговера:

BLX-a кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R; количество рабочих параметров задается специальным методом и может быть от 2 до N; вещественное кодирование; диапазон изменения значений элементов вектора рабочих параметров от xmin до xmax.,

Фитнес функция:

Функция Химмельблау:

Глобальный минимум:

Оператор мутации:

Мутация с нормальным распределением (Random Mutation). Мутация у отдельной особи происходит с вероятностью 0,01 – 0,05. Выбирается случайным образом ген, и в нем генерируется случайное вещественное число x ϵ [xmin, xmax] с нормальным распределением, смещенным от текущего значения:

Оператор кроссинговера:

BLX-a кроссинговер.

Хромосома:

вектор рабочих параметров для задач непрерывного нелинейного математического программирования X = {x1, x2, xn}, xi ϵ R; количество рабочих параметров задается специальным методом и может быть от 2 до N; вещественное кодирование; диапазон изменения значений элементов вектора рабочих параметров от xmin до xmax.,

Фитнес функция:

Функция трехгорбого верблюда:

Глобальный минимум:

Оператор мутации:

Альтернативная случайная мутация (Alternate Random Mutation). Мутация у отдельной особи происходит с вероятностью 0,005 – 0,1. Выбирается случайным образом ген, и в нем генерируется случайное смещение Δ ϵ [xmin/5, xmax/5] с равномерным распределением вероятности:

Если после смещения текущее значение выходит за пределы интервала, то округляем до xmin или xmax.

Оператор кроссинговера:

BLX-a-b кроссинговер.