- •Моделирование арифметического вектора
- •Моделирование комплексного числа. Решение уравнений
- •Моделирование вещественной матрицы и очереди линейных операторов
- •Моделирование комплексной матрицы и стека линейных операторов
- •Моделирование игры «Техасский Холдэм» (1-2 чел.)
- •Моделирование игры «Сапёр»
- •Моделирование игры «Blackjack»
- •Моделирование комплексной матрицы. Решение слау
- •Моделирование вещественной матрицы, состоящей из дробей. Решение слау
- •Моделирование строки
- •Построение приложения для чтения книг
- •Моделирование калькулятора (1-2 чел.)
- •Приложение для поиска кратчайшего пути
- •Поиск решения задачи «7 мостов Кёнигсберга»
- •Моделирование шахматной задачи о «8 ферзях»
- •Моделирование динамической системы (электродинамика, гравитация)
- •Моделирование численности животных в экосистеме («хищник-жертва»)
- •Моделирование сбалансированного дерева
- •Построение нейронной сети Хопфилда
- •Построение карты Кохонена (1-2 чел.)
- •Моделирование двунаправленного списка
- •Реализация генетического алгоритма
- •Моделирование задачи о «многоруком бандите»
- •Задача об ограблении банка
Построение нейронной сети Хопфилда
Реализовать класс «Нейрон», который вычисляет взвешенную сумму своих входов и применяет к ней пороговую функцию активации.
Реализовать класс «Сеть», которая содержит один слой нейронов, отправляющих свои выходы на входы сети.
Реализовать любой алгоритм обучения сети (синхронный или асинхронный).
Реализовать сохранение/извлечение состояния сети в/из файла.
Конкретная задача из предметной области согласуется между преподавателем и студентом.
Построение карты Кохонена (1-2 чел.)
Реализовать класс «Нейрон», который вычисляет взвешенную сумму своих входов и применяет к ней пороговую функцию активации.
Реализовать класс «Сеть», которая содержит один двумерный слой нейронов.
Реализовать любой алгоритм обучения сети.
Реализовать сохранение/извлечение состояния сети в/из файла.
Конкретная задача из предметной области согласуется между преподавателем и студентом.
Моделирование двунаправленного списка
Для хранения некоторой (произвольной) информации реализовать класс двунаправленного списка.
Реализовать набор необходимых конструкторов (пустой или сразу – из массива), деструктор.
Перегрузить операции “+”, “-” – добавить и извлечь элемент из списка.
Перегрузить операцию “>>” – вывод одного элемента списка, вывод всего списка.
Обеспечить возможность поиска и фильтрации в списке, сохранения списка в файл и извлечения его оттуда; реализовать функцию, проходящую по списку и применяющую некоторую функцию, передаваемую по указателю, ко всем элементам списка.
Перегрузить оператор индекса [].
*Реализовать независимую от типа данных реализацию списка
Реализация генетического алгоритма
Построить класс, который включает (бинарный?) вектор, имитирующий генетический код. Он представляет собой некоторое решение задачи из предметной области.
Реализовать операции мутации, скрещивания и размножения, искусственного отбора (вероятность выживания зависит от приспособленности «организма», построенного на некотором генетическом коде), функцию приспособленности (определяет, насколько хорош код для решения задачи).
Следует ли сохранять в виде отдельного множества «хорошо приспособленные особи», не включая их в процесс дальнейшего отбора?
Следует ли продолжать скрещивание внутри такого множества (сравнить с философией «построения сверхсущества»)?
Решить некоторую задачу из предметной области. Например, диофантово уравнение.
Моделирование задачи о «многоруком бандите»
Построить класс агента, действующего в некоторой среде. В наличии произвольное поле, каждая клетка которого может обладать некоторыми свойствами, оцениваемыми агентом. Переходя на новую клетку, агент может получать поощрение или штраф. Максимизировать полученные поощрения.
Первый пример: агент – модель животного. У каждой клетки есть параметры: сложность движения по ней, опасность (хищники), количество ресурсов, которые можно с неё получить.
Второй пример: в наличии цены на мировые валюты и ценные металлы, а также прогноз на некоторое время вперёд. За обмен валют полагается некоторый штраф. В наличии стартовый капитал. Представить стратегию по накоплению капитала. Предоставить возможность вносить изменения в прогноз цен (кризис, резкие скачки), уметь оптимизировать стратегию в этом случае.
