Как компьютеры учатся делать человеческое программное обеспечение более эффективным
Автор: flashmax537 • Апрель 25, 2019 • Доклад • 673 Слов (3 Страниц) • 422 Просмотры
Как компьютеры учатся делать человеческое программное обеспечение более эффективным
У компьютерных ученых есть история заимствования идей у природы, таких как эволюция. Когда дело доходит до оптимизации компьютерных программ, за последние пять или шесть лет появился очень интересный эволюционный подход, который может принести неисчислимые выгоды промышленности и, в конечном счете, потребителям. Мы называем это генетическим улучшением.
Генетическое усовершенствование предполагает написание автоматизированного "программиста", который манипулирует исходным кодом программного обеспечения методом проб и ошибок с целью повышения его эффективности. Это может включать в себя замену строк кода, удаление строк и вставку новых – очень похоже на человека-программиста. Затем каждая манипуляция проверяется с помощью некоторой меры качества, чтобы определить, является ли новая версия кода улучшением по сравнению со старой версией. Речь идет о том, чтобы взять большие программные системы и немного изменить их для достижения лучших результатов.
Выгода
Эти вмешательства могут принести множество преимуществ в области того, что программисты описывают как функциональные свойства части программного обеспечения. Например, они могут улучшить скорость запуска программы или удалить ошибки. Они также могут быть использованы для пересадки старого программного обеспечения на новое оборудование.
Потенциал на этом не останавливается. Поскольку генетическое улучшение работает с исходным кодом, оно также может улучшить так называемые нефункциональные свойства. Они включают в себя все функции, которые не связаны только с поведением ввода-вывода программ, например, объем полосы пропускания или энергии, потребляемой программным обеспечением. Это часто особенно сложно для человеческого программиста, учитывая уже сложную проблему создания правильно функционирующего программного обеспечения в первую очередь.
Мы видели несколько примеров генетического улучшения, которые начали признаваться в последние годы-хотя пока еще в университетах. Хороший ранний датируется 2009 годом, когда такой автоматизированный “программист”, построенный Университетом Нью-Мексико и Университетом Вирджинии, исправил 55 из 105 ошибок в различных видах программного обеспечения, начиная от медиаплеера до игры в Тетрис. Для этого он выиграл $5,000 (£3,173) и Золотой-то человечишку, которая присуждается за достижения производится путем генетических и эволюционных вычислений.
В прошлом году UCL в Лондоне курировал два исследовательских проекта, которые продемонстрировали потенциал области (полное раскрытие информации: в обоих участвовал соавтор Уильям Лэнгдон). Первая включала в себя программу генетического улучшения, которая могла взять большую сложную часть программного обеспечения с более чем 50 000 строк кода и ускорить ее функциональность в 70 раз.
Второй осуществил первую автоматическую оптовую пересадку одного программного обеспечения в другое, более крупное, взяв лингвистический переводчик Babel и вставив его в систему обмена мгновенными сообщениями Pidgin.
...