Группа учёных Сибирского федерального университета и Сибирского государственного университета науки и технологий имени академика М. Ф. Решетнёва предложила оптимизировать состав мультиверсионных программных комплексов, используя для этого алгоритм муравьиной колонии.
Разработка будет востребована при создании программного обеспечения, контролирующего работу приборов и систем на атомных электростанциях, в энергетической отрасли и космической промышленности. Основные результаты исследования опубликованы
в издании Lecture Notes in Computer Science.
Мультиверсионные программные комплексы широко используются в системах, где надёжность и бесперебойная работа оборудования являются основополагающими требованиями, а вероятность ошибок должна быть сведена к минимуму — в атомной, энергетической и космической отраслях.«Создавая программное обеспечение (ПО) для сложных приборов и систем, мы должны предусмотреть множество алгоритмов поведения, чтобы максимально застраховать какой-то прибор или комплекс от возможных опасных ситуаций. Например, нам придётся „научить“ луноход справляться с каменистым грунтом и объезжать препятствия несколькими способами, а искусственный спутник — эффективно избегать горящих космических частиц. Но в мультиверсионном ПО доступных версий может быть от трёх и до бесконечности в каждом модуле — их изначально в разы больше, чем мы можем включить в прошивку. Если мы в луноход, например, поместим слишком много алгоритмов — пусть даже очень надёжных — они будут „съедать“ дикое количество вычислительных мощностей, а нам это совсем не нужно. Необходимо выбрать оптимальные версии для каждого модуля, чтобы программный комплекс в целом был или супернадёжный, или максимально дешёвый, либо представлял собой что-то среднее при заданных ограничениях. А осуществить этот выбор нам помогут муравьи!», — сообщил доцент кафедры информатики СФУ Михаил Сарамуд.
Исследователь уточнил, что нашёл новое применение хорошо известному в среде ИТ-специалистов алгоритму муравьиной колонии (Ant Colony Algorithms). Первую версию муравьиного алгоритма предложил учёный Марко Дориго в начале 90-х годов. Известно, что муравьи выбирают наиболее проходимые и короткие маршруты следования от источника пищи до муравейника. Как крохотные и слепые насекомые это делают? Дело в особых пахучих феромонах, которые они выделяют. Муравьи распознают «следовой» феромон даже в очень низкой концентрации и по его запаху могут определить не только вид предмета, но и его размеры и форму. Ориентируясь на помеченную феромоном дорогу, насекомые легко находят еду, обнаруженную соседями по муравейнику и, в свою очередь, обновляют феромоновый след. Как только пища заканчивается — давно не обновляемые «душистые» метки выветриваются и постепенно исчезают.«Дориго создал математическую модель поведения муравьёв, ищущих оптимальные пути от колонии к источнику пищи. По такой же схеме мы можем воздействовать на граф. Граф — это абстрактный математический объект, его можно представить в качестве множества узлов (вершин), соединённых рёбрами. Если первый узел — условный „муравейник“, то дальше нас ждёт множество переходов к цели (условной „еде“). Какой путь выбрать? В случае нашего исследования каждый узел — это состав конкретного модуля. Допустим, есть десять версий для каждого модуля. Чтобы мультиверсионное ПО заработало, нужно выбрать из этого множества версий хотя бы три. Нужно перебрать все возможные составы версий. Между этими составами и бродит наш виртуальный „муравей-выбиратель“. На выходе он получает конкретный состав первого модуля, второго, третьего и так далее — а ещё цифровой агент определяет, какие переходы между узлами оптимальны для достижения поставленной цели. После работы „муравьёв“ мы получаем полное представление о надёжности и фактической стоимости реализации системы ПО на данном оборудовании. Дальше идёт прошивка оборудования, для которого виртуальная муравьиная колония выбрала оптимальный, грамотно скомбинированный состав программного комплекса», — продолжил Михаил Сарамуд.
Отмечается, что для виртуальных «муравьёв» совершенно неважно, чем будет заниматься программируемое оборудование в дальнейшем — вычислять или распознавать образы. Главное, на что «агенты» обращают внимание при прохождении своего пути — надёжность, ресурсоёмкость, стоимость и вероятность успешной реализации алгоритмов, которые войдут в «оптимальный набор».«В новой статье мы отдельно рассмотрели методику множественных стартов. У алгоритма муравьиной колонии есть существенный недостаток — если первые пущенные нами „муравьи“ пройдут по неоптимальной траектории, но при этом удовлетворят заданным условиям по стоимости и надёжности, то этот проход будет засчитан как адекватный — следующие агенты пойдут по этому же маршруту. Но есть более оптимальный путь! Зачем вам идти, скажем, в магазин через все пустыри района, если можно пройти напрямую по освещённой дороге? Что мы предлагаем: есть ресурсы на 500 проходов, например. Запускаем первых 50 „муравьёв“, а всех последующих отправляем только по лучшему пути, который найдёт кто-то из первой партии „разведчиков“. Вот так мы оптимизировали алгоритм, сделав его менее случайным и более подходящим для построения оптимального состава мультиверсионного комплекса», — резюмировал Михаил Сарамуд.