birdwatcher (birdwatcher) wrote,
birdwatcher
birdwatcher

  • Mood:

Кстати

Я очарован идеей генетического программирования (Koza 1992, 1994 и далее).

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

Причин, кроме ограниченной производительности компьютеров, именно для такого трудоемкого подхода нет. Вообще же предлагается осознать, что конечным результатом этой деятельности (как и результатом решения всех остальных задач) будет компьютерная программа, правильно решающая квадратные уравнения. Соотвественно, ее поиск можно вести непосредственно в пространстве всевозможных компьютерных программ. А именно, надо составить набор из 10,000 квадратных уравнений с корнями (тренировочные данные, подготовленные экспертами), а дальше генерировать всевозможные программы (синтаксически корректные наборы разнообразных операторов типа goto, if-then-else, циклов, арифметических операций и проч.) случайным образом, и остановиться на той из них, которая решает тренировочные уравнения с наименьшей суммарной ошибкой. Обширный опыт применения этого метода в самых разнообразных предметных областях показывает, что она окажется ничтожно мала, а найденный таким образом алгоритм будет хорошо обобщаться на все остальные квадратные уравнения, которые может потребоваться решить в будущем.

Генерировать случайные программы друг из друга предлагается методами, аналогичными известным алгоритмам генетической оптимизации, но именно эта частность меня не очень заинтересовала.
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments