Генератор фантазий методом ГА

Станислав Бук
Генератор фантазий или плагиат методом генетических алгоритмов

Ироническая проза.

     Мы  видели, как тема для фантазии - отправная точка рассказа – возникла из  одного-единственного  слова.  Но  то  был,  скорее,  оптический обман. В действительности   для  возникновения  искры  одного  электрического  заряда недостаточно  -  нужно,  чтобы их было два. Одно слово ("Буффало. И название сработало..."  -  говорит  Монтале)  оживает лишь тогда, когда оно встречает другое,  его  провоцирующее, заставляющее сойти с рельсов привычки, раскрыть новые  смысловые  возможности.
Джанни Родари "Грамматика фантазии"

Сначала – популярно о ГА – методе генетических алгоритмов, придуманных математиками для решения таких задач, которые обычными способами решить нельзя, либо затруднительно.
Делается это так.
 Берутся "с потолка" два совершенно несуразных решения. Каждое из них состоит из цифр, чисел, или иного набора элементов, в зависимости от характера задачи. Эти элементы названы генами. Одно решение объявляется хромосомой мамы, другое – хромосомой папы. "Мама" и "папа" – это первое поколение.
Затем случайным образом (выстрелом издалека) каждая хромосома разбивается на две части. Берём одну часть от хромосомы папы и одну часть – от хромосомы мамы, соединяем их и получаем хромосому второго поколения. Таких вариантов может быть четыре. Подставляем их в задачу и выбираем из четырех два наиболее подходящих.
Если они далеки от желаемого решения, то мы случайным образом изменяем компоненты – "гены".  Получаем "мутантов".
Из двух хромосом и двух мутантов, выбираем два наиболее подходящих и объявляем их мамой и папой. Затем производим новое деление, новое "совокупление". Получаем третье "поколение". Затем -  новый отбор, новые мутации и т.д., пока не получим устраивающий нас результат.

Вернёмся к фразе эпиграфа, а вернее – к методу Джанни Родари. Этот метод фактически является "генератором идей", "топливом" для которого явились два случайных слова.  Применительно к методу ГА это уже "мама" и "папа".  Но Родари о методе ГА ещё не знал.

Используя метод ГА, примем за "хромосому" – случайно взятое откуда-то предложение. "Генами" здесь будут слова. Произвольное изменение, удаление, или добавление слова (гена) в предложении (хромосоме) назовём мутацией.

Покажем генерацию идеи на примере. Для чистоты эксперимента я воспользуюсь ГСЧ - генератором случайных чисел*. Вы можете поступить так: взять с полки две случайно попавшиеся книги и каждую открыть там, куда попадёт палец. Напишите на бумажках номерки по числу строк на странице и вытаскивайте случайный номер. Итак, Вы выбрали два предложения. Это и будут хромосомы  "мамы" и "папы" первого поколения.

Я выбрал  первую книгу – "Солярис" Станислава Лема. Включил ГСЧ – Генератор Случайных Чисел (т.е. – "заложил палец") Выпала страница 178. Опять включаю ГСЧ и попадаю на строку номер 9. Вот она:
В КАБИНЕ КЛУБИЛСЯ ПАР, ПРЕВРАЩАЮЩИЙ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА.

Пока что оставляю эту хромосому и снимаю с полки "Белые ночи" Достоевского. Таким же образом я получаю вторую "родительскую" хромосому:
НЕ ЗНАЮ ОТЧЕГО, МНЕ ВДРУГ ПРЕДСТАВИЛОСЬ, ЧТО КОМНАТА МОЯ ПОСТАРЕЛА ТАК ЖЕ, КАК И СТАРУХА

Теперь каждое предложение (хромосому) надо разрезать на две части (два генома).
В первой хромосоме 9 слов – генов. ГСЧ (жеребьёвка) вынуждает разрезать её после 4-го слова-гена. Так же разрезана вторая хромосома – после 5-го слова-гена.
Теперь имеем второе "поколение" предложений-хромосом, каждое из которых пока что представлено двумя "геномами", - по одному из материнской и отцовской хромосом:

1-я хромосома:
В КАБИНЕ КЛУБИЛСЯ ПАР
НЕ ЗНАЮ ОТЧЕГО, МНЕ ВДРУГ

2-я хромосома:
В КАБИНЕ КЛУБИЛСЯ ПАР
ПРЕДСТАВИЛОСЬ, ЧТО КОМНАТА МОЯ ПОСТАРЕЛА ТАК ЖЕ, КАК И СТАРУХА

3-я хромосома:
ПРЕВРАЩАЮЩИЙ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА.
НЕ ЗНАЮ ОТЧЕГО, МНЕ ВДРУГ

4-я хромосома:
ПРЕВРАЩАЮЩИЙ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА.
ПРЕДСТАВИЛОСЬ, ЧТО КОМНАТА МОЯ ПОСТАРЕЛА ТАК ЖЕ, КАК И СТАРУХА

На этом месте математик выбрал бы решение, наиболее удовлетворяющее условию задачи.
Автор будущей фантастики  (сказки) должен выбрать такие "хромосомы", которые ему больше нравятся.

Я выбрал 1-ю и 4-ю хромосомы. Переставляя "отцовский" и "материнский" геномы и введя "мутации",  – изменённые слова, слова-связки и т.д., получаю новую "родительскую" пару". Это – "выжившие" хромосомы 2-го поколения:

"Папа":
НЕ ЗНАЮ ОТЧЕГО, МНЕ ВДРУГ СТАЛО СТРАШНО: В КАБИНЕ КЛУБИЛСЯ ПАР

"Мама":
МНЕ ПРЕДСТАВИЛОСЬ, ЧТО КОМНАТА МОЯ ПОСТАРЕЛА ТАК ЖЕ, КАК И СТАРУХА, ПРЕВРАЩАЮЩАЯ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА.

Здесь можно и остановиться, так как мы получили сразу две идеи для будущей фантазии.

Ради спортивного интереса, попытаемся перейти к 3-му поколению идей (хромосом), используя тот же способ.
Я получил точки деления: 7 и 8 соответственно для хромосом "папа" и "мама". Так же получаются 4 пары геномов для дочерних хромосом:

НЕ ЗНАЮ ОТЧЕГО, МНЕ ВДРУГ СТАЛО СТРАШНО:
МНЕ ПРЕДСТАВИЛОСЬ, ЧТО КОМНАТА МОЯ ПОСТАРЕЛА ТАК ЖЕ

НЕ ЗНАЮ ОТЧЕГО, МНЕ ВДРУГ СТАЛО СТРАШНО:
КАК И СТАРУХА, ПРЕВРАЩАЮЩАЯ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА

В КАБИНЕ КЛУБИЛСЯ ПАР
МНЕ ПРЕДСТАВИЛОСЬ, ЧТО КОМНАТА МОЯ ПОСТАРЕЛА ТАК ЖЕ

В КАБИНЕ КЛУБИЛСЯ ПАР
КАК И СТАРУХА, ПРЕВРАЩАЮЩАЯ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА

Теперь безо всяких ГСЧ напрашивается "выжившая" после "совокупления", "деления" и "мутаций" единственная "хромосома" 4-го "поколения":

МНЕ СТАЛО СТРАШНО: В КАБИНЕ ВСЕ ПРИБОРЫ ПОСТАРЕЛИ, ПОКРЫЛИСЬ НАЛЁТОМ РЖАВЧИНЫ, ПОВСЮДУ  КЛУБИЛСЯ ПАР, И ВИНОЙ ТОМУ СТАРУХА, ПРЕВРАЩАЮЩАЯ ДЫХАНИЕ В ХЛОПЬЯ СНЕГА.

Остальное – дело вкуса: кабина самолёта, танка, подводной лодки или космолёта и откуда тут старуха со странными способностями.

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



*). Пример работы ГСЧ в программе MathCad - представлен на рисунке перед текстом.
Здесь:
s - количество страниц, строк на странице, или слов в предложении,
r - случайное число