Ученые СФУ научили «цифровых муравьев» оптимизировать программные комплексы

05.12.2019

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

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

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

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

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

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

Нет комментариев