Генетическое улучшение (информатика)
В компьютерного программного обеспечения разработке генетическое улучшение — это использование методов оптимизации и машинного обучения , в частности методов разработки программного обеспечения на основе поиска, таких как генетическое программирование, для улучшения существующего программного обеспечения . [1] [2] Улучшенная программа не обязательно должна вести себя идентично исходной. Например, автоматическое исправление ошибок улучшает программный код за счет уменьшения или устранения ошибок . [3] В других случаях улучшенное программное обеспечение должно вести себя идентично старой версии, но оно лучше, потому что:например:он работает быстрее, [4] он использует меньше памяти , [5] он потребляет меньше энергии [6] илион работает на другом типе компьютера. [7] GI отличается, например, от формального перевода программы тем, что он в первую очередь проверяет поведение новой мутантной версии, запуская как новое, так и старое программное обеспечение на тестовых входах и сравнивая их выходные данные и производительность, чтобы увидеть, сможет ли новое программное обеспечение по-прежнему делаю то, что требуется от исходной программы, и теперь это лучше.
Генетическое улучшение можно использовать для создания нескольких версий программ, каждая из которых адаптирована лучше для конкретного использования или для конкретного компьютера.
Генетическое улучшение можно использовать вместе с многоцелевой оптимизацией, чтобы рассмотреть возможность улучшения программного обеспечения по нескольким направлениям или рассмотреть компромисс между несколькими целями, например, попросить GI разработать программы, в которых скорость будет зависеть от качества ответов, которые они дают. Конечно, можно найти программы, которые работают быстрее и дают лучшие ответы.
В основном Genetic Improvement обычно вносит небольшие изменения или правки (также известные как мутации программы ) в исходный код , но иногда мутации вносятся в ассемблерный код , байт-код. [8] или двоичный машинный код . [9]
Ссылки
[ редактировать ]- ^ Лэнгдон, Уильям Б. (2015). «Генетически улучшенное программное обеспечение». Справочник по приложениям генетического программирования . стр. 181–220. дои : 10.1007/978-3-319-20883-1_8 . ISBN 978-3-319-20882-4 .
- ^ Юстина Петке, Самундур О. Харальдссон, Марк Харман, Уильям Б. Лэнгдон, Дэвид Р. Уайт и Джон Р. Вудворд (2018). «Генетическое улучшение программного обеспечения: комплексное исследование» (PDF) . Транзакции IEEE в эволюционных вычислениях . 22 (3): 415–432. дои : 10.1109/TEVC.2017.2693219 . hdl : 1893/25358 . S2CID 30314751 .
- ^ Веймер, Уэстли; и др. (2010). «Автоматическое восстановление программ с помощью эволюционных вычислений». Коммуникации АКМ . 53 (5): 109–116. CiteSeerX 10.1.1.170.188 . дои : 10.1145/1735223.1735249 . S2CID 7408151 .
- ^ Лэнгдон, Уильям Б.; Харман, Марк (2015). «Оптимизация существующего программного обеспечения с помощью генетического программирования». Транзакции IEEE в эволюционных вычислениях . 19 : 118–135. дои : 10.1109/TEVC.2013.2281544 . S2CID 9891830 .
- ^ Ву, Фан; Веймер, Уэстли; Харман, Марк; Цзя, Юэ; Кринкке, Йенс (2015). «Глубокая оптимизация параметров». Материалы ежегодной конференции по генетическим и эволюционным вычислениям 2015 года . стр. 1375–1382. дои : 10.1145/2739480.2754648 . ISBN 9781450334723 . S2CID 17820784 .
- ^ Брюс, Бобби Р.; Петке, Юстина; Харман, Марк (2015). «Снижение энергопотребления с помощью генетического улучшения». Материалы ежегодной конференции по генетическим и эволюционным вычислениям 2015 года . стр. 1327–1334. дои : 10.1145/2739480.2754752 . ISBN 9781450334723 . S2CID 207224618 .
- ^ Лэнгдон, Уильям Б.; Харман, Марк (2014). «Генетически улучшенное программное обеспечение CUDA C++». Генетическое программирование . Конспекты лекций по информатике. Том. 8599. стр. 87–99. дои : 10.1007/978-3-662-44303-3_8 . ISBN 978-3-662-44302-6 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Орлов, Михаил; Сиппер, Моше (2011). «Полет ЗЮРАКА через пустыню Явы». Транзакции IEEE в эволюционных вычислениях . 15 (2): 166–182. CiteSeerX 10.1.1.298.6272 . дои : 10.1109/TEVC.2010.2052622 . S2CID 14616802 .
- ^ Шульте, Эрик М.; Веймер, Уэстли; Форрест, Стефани (2015). «Восстановление прошивки COTS-маршрутизатора без доступа к исходному коду или наборам тестов». Материалы сопутствующей публикации Ежегодной конференции по генетическим и эволюционным вычислениям 2015 года . стр. 847–854. дои : 10.1145/2739482.2768427 . ISBN 9781450334884 . S2CID 14772346 .
Внешние ссылки
[ редактировать ]- Открытое учебное пособие PhD http://phdopen.mimuw.edu.pl/index.php?page=z15w1 (также охватывает SBSE и CIT, но последней из трех тем является генетическое улучшение программного обеспечения).
- Международные семинары по генетическому улучшению: веб-страницы http://www.geneticimprovementofsoftware.com включают страницы сообщества GI http://geneticimprovementofsoftware.com/learn/about