Ученые научили цифровых «муравьев» определять оптимальные алгоритмы для программного обеспечения

                            Исследователи из  совместно с коллегами предложили оптимизировать состав мультиверсионных программных комплексов, используя для этого алгоритм ной колонии. Разработка будет востребована при создании программного обеспечения, контролирующего работу приборов и систем на атомных электростанциях, в энергетической отрасли и космической промышленности. 

Группа ученых из Сибирского федерального университета и Сибирского государственного университета науки и технологий имени академика М. Ф. Решетнева предложила оптимизировать состав мультиверсионных программных комплексов, используя для этого алгоритм муравьиной колонии. Основные результаты исследования опубликованы в издании Lecture Notes in Computer Science.

Мультиверсионные программные комплексы широко используются в системах, где надежность и бесперебойная работа оборудования являются основополагающими требованиями, а вероятность ошибок должна быть сведена к минимуму – в атомной, энергетической и космической отраслях.

«Создавая (ПО) для сложных приборов и систем, мы должны предусмотреть множество алгоритмов поведения, чтобы максимально застраховать какой-то прибор или комплекс от возможных опасных ситуаций. Например, нам придется «научить» луноход справляться с каменистым грунтом и объезжать препятствия несколькими способами, а искусственный спутник — эффективно избегать горящих космических частиц.

Но в мультиверсионном ПО доступных версий может быть от трех и до бесконечности в каждом модуле — их изначально в разы больше, чем мы можем включить в прошивку. Если в луноход мы, к примеру, поместим слишком много алгоритмов — пусть даже очень надежных — они будут «съедать» дикое количество вычислительных мощностей, а нам это совсем не нужно. Необходимо выбрать оптимальные версии для каждого модуля, чтобы программный комплекс в целом был или супернадежный, или максимально дешевый, либо представлял собой что-то среднее при заданных ограничениях. А осуществить этот выбор нам помогут муравьи», — сообщил доцент кафедры информатики СФУ Михаил Сарамуд.



Исследователь уточнил, что нашел новое применение хорошо известному в среде it-специалистов алгоритму муравьиной колонии (Ant Colony Algorithms). Первую версию муравьиного алгоритма предложил ученый Марко Дориго в начале 1990-х годов. Известно, что муравьи выбирают наиболее проходимые и короткие маршруты следования от источника пищи до муравейника. Как крохотные и слепые насекомые это делают? Дело в особых пахучих феромонах, которые они выделяют.

Муравьи распознают «следовой» феромон даже в очень низкой концентрации и по его запаху могут определить не только вид предмета, но и его размеры и форму. Ориентируясь на помеченную феромоном дорогу, насекомые легко находят еду, обнаруженную соседями по муравейнику и, в свою очередь, обновляют феромоновый след. Как только пища заканчивается — давно не обновляемые «душистые» метки выветриваются и постепенно исчезают.

«Дориго создал математическую модель поведения муравьев, ищущих оптимальные пути от колонии к источнику пищи. По такой же схеме мы можем воздействовать на граф. Граф — это абстрактный математический объект, его можно представить в качестве множества узлов (вершин), соединенных ребрами. Если первый узел — условный «муравейник», то дальше нас ждет множество переходов к цели (условной «еде»). Какой путь выбрать?

В случае нашего исследования каждый узел — это состав конкретного модуля. Допустим, есть десять версий для каждого модуля. Чтобы мультиверсионное ПО заработало, нужно выбрать из этого множества версий хотя бы три. Необходимо перебрать все возможные составы версий. Между этими составами и бродит наш виртуальный «муравей-выбиратель».

На выходе он получает конкретный состав первого модуля, второго, третьего и так далее — а еще цифровой агент определяет, какие переходы между узлами оптимальны для достижения поставленной цели. После работы «муравьев» мы получаем полное представление о надежности и фактической стоимости реализации системы ПО на данном оборудовании. Дальше идет прошивка оборудования, для которого виртуальная муравьиная колония выбрала оптимальный, грамотно скомбинированный состав программного комплекса», — продолжил ученый.

Отмечается, что для виртуальных «муравьев» совершенно неважно, чем будет заниматься программируемое оборудование в дальнейшем — вычислять или распознавать образы. Главное, на что «агенты» обращают внимание при прохождении своего пути — надежность, ресурсоемкость, стоимость и вероятность успешной реализации алгоритмов, которые войдут в «оптимальный набор».

«В новой статье мы отдельно рассмотрели методику множественных стартов. У алгоритма муравьиной колонии есть существенный недостаток — если первые пущенные нами «муравьи» пройдут по неоптимальной траектории, но при этом удовлетворят заданным условиям по стоимости и надежности, то этот проход будет засчитан как адекватный — следующие агенты пойдут по этому же маршруту. Но есть более оптимальный путь.

Зачем вам идти, скажем, в магазин через все пустыри района, если можно пройти напрямую по освещенной дороге? Что мы предлагаем: есть ресурсы на 500 проходов, например. Запускаем первых 50 «муравьев», а всех последующих отправляем только по лучшему пути, который найдет кто-то из первой партии «разведчиков». Вот так мы оптимизировали алгоритм, сделав его менее случайным и более подходящим для построения оптимального состава мультиверсионного комплекса», — резюмировал исследователь.   

                                                            Сибирский федеральный университет — высшее учебное заведение, расположенное в Красноярске. Первый в России федеральный университет. Крупный научно-исследовательский и образовательный центр в России. Крупнейший университет восточной части России.















            Скопировать ссылку