Программная разработка RNAFoldingAI/Архив

Архив Проекта | |

Пожалуйста, не редактируйте эту страницу! |






Здесь собраны материалы неудачных попыток, представляющий скорее исторический интерес, а так же выводы о том **„как делать не нужно“**.

## Содержание

## Версия RNAFoldingAI 0.1

Были созданы черновые версии модулей на основе реинжиниринга ПО Rosseta 2.3. Следующие устаревшие ревизии находятся в репозитории SVN: [1]

- №22 - Первая черновая версия проекта RNAFoldingAI. Создает .pdb файл стартового состояния по первичной структуре РНК.
- №23 - Черновая версия модуля RNARotate „Вращение 3-х мерной цепи РНК“
- №24 - Черновая версия модуля RNAEnergyСalc „Расчет энергетических характеристик РНК“
- №25 - Черновая версия модуля FoldingSearchRnd „Поиск структуры с минимальной оценкой энергии цепи случайным перебором“.

- Был выполнен
РНК расчетов из ПО Rosseta. Функциональность воспроизведена, но требует тестирования. Можно начинать думать об архитектуре и написании модуля ИИ. Но уже сейчас можно отметить улучшение ряда архитектурных решений: ПО разделено на предметные модули, убраны лишние ненужные связи между классами.**реинжиниринг**

- №28 - Черновая версия модуля FoldingSearchAI „Поиск структуры с минимальной оценкой энергии цепи применяя методы ИИ“ (Q-learning+)
- №31 - Рефакторинг: разделение AI библиотеки на независимую среду и агента, зависящего только от среды.
- №32 - Переход на реальные биологические тесты. Переделка Q - матрицы, на таблицу базы данных. Обобщение обновления Q-таблицы. + баги

### „Поиск структуры с минимальной оценкой энергии цепи применяя методы ИИ“ (Модуль *FoldingSearchAI*)

**Подход №1. Обучение с подкреплением**

- В основу было положено
*Обучение с подкреплением*. Вообще требуется создать новый более совершенный метод ИИ. Но для этого нужно найти слабые стороны и опробовать уже имеющиеся подходы. Начнем с Q-learning (хотя потенциально возможно использовать и генетические алгоритмы и искусственные нейронные сети ).

- Общие принципы реализации среды
- Постановка задачи в терминах Q-learning
- Программная реализация Q-learning+

### Зависимости между компонентами

На диаграмме компонентов видны все зависимости между динамическими библиотеками (.dll). Голова проекта (.exe) - это компонент RNAFoldingAI. Он зависит практически от всех остальных библиотек, и по сути лишь регулирует какие использовать компоненты в данный момент. Наоборот, ядро проекта (Core) не зависит ни от чего и содержит самую базовую логику, например, работу с векторами и матрицами, а так же различные константные определения.

Низкоуровневые библиотеки RNACreate, RNARotate, RNAEnergyCalc - зависят от ядра, а две последние от RNACreate. Таким образом, осуществление поворотов (RNARotate) и расчет энергии (RNAEnergyCalc) это независимые между собой модули.

Управляющие библиотеки FoldingSearchRnd, FoldingSearchAI - взаимозаменяемые. По сути FoldingSearchRnd - нужна лишь для сравнения с ПО Rosseta, т.к. осуществляет поиск траектории сворачивания принятым там (случайным поиском) подходом.

С точки зрения интеллектуальных методов интересны две библиотеки: RNAAgent, RNAWorld. Самое важное, что удалось добиться, это практически полная независимость работы среды от агента и агент, зависит только от среды. (детали см. Общие принципы реализации среды).