ideipro logotyp

Обезьяны напишут шедевр, если мы наложим ограничения и добавим тесты

Написал этот текст, чтобы зафиксировать объяснение возможности случайной генерации организмов в процессе эволюции.

Я согласен с утверждением, что если случайно генерировать последовательность из букв, то литературного произведения мы не получим и за миллиарды лет. Подробно о Теореме о бесконечных обезьянах. Но к эволюции это утверждение не имеет отношения, хотя и выглядит таковым. Почему? Если кидать случайно атомы, то мы не получим ДНК или клетку — слишком уж большую комбинацию мы ждём на выходе. Если же мы ограничим ожидаемую последовательность, например несколькими атомами, то вполне может выпасть небольшая молекула. Из них в случайном порядке мы складываем ещё большие молекулы. Что мы сделали? Мы увеличили вероятность выпадения чего-то осмысленного, задав ограничения. То же самое мы сделаем с текстом: ограничим орфографией конкретного языка допустимые комбинации букв и длины слов.

Код на Python:

from random import choice, randint letters = ‘абвгдеёжзийклмнопрстуфхцчшщъыьэюя,’ real_syllables = {‘пус’, ‘ть’, ‘он’, ‘зна’, ‘ет’, ‘,’, ‘что’, ‘ес’, ‘ли’, ‘по’, ‘доб’ ,’но’, ‘мне’, ‘стре’, ‘ми’, ‘тся’} real_words = {‘пусть’, ‘он’, ‘знает’, ‘,’, ‘что’, ‘если’, ‘подобно’, ‘мне’, ‘стремится’} real_word_combinations = {‘пусть’, ‘он знает’, ‘,’, ‘что если’, ‘подобно мне’, ‘он стремится’} real_sentences = {‘пусть он знает , что если , подобно мне , он стремится’} def rand_entity(min_length, max_length, alphabet, glue): rand_letters = [] for _ in range(randint(min_length, max_length)): rand_letters.append(choice(alphabet)) return glue.join(rand_letters) def guess_entities(max_iterations, min_length, max_length, subentities, real_entities, glue=»): guessed_entities = set() for index_iteration in range(max_iterations): entity = rand_entity(min_length, max_length, subentities, glue) if entity in real_entities: guessed_entities.add(entity) if len(guessed_entities) == len(real_entities): return True, index_iteration return False, index_iteration args_list = [ (10000000, 1, 5, letters, real_syllables), (100000, 1, 3, list(real_syllables), real_words), (1000, 1, 2, list(real_words), real_word_combinations, ‘ ‘), (10000000, 7, 8, list(real_word_combinations), real_sentences, ‘ ‘), ] for args in args_list: is_ready, index = guess_entities(*args) print(is_ready, index) if not is_ready: break

Программа генерирует случайные последовательности букв и проверяет их на возможность существования (наличие в списке), затем из полученных слогов генерирует слова, затем «словосочетания» и «предложения». Отображает 2 значения для каждого из 4 шагов: достигнута ли генерация всех шагов, на какой по счёту итерации были сгенерированы все комбинации. Например:

True 8054959
True 21551
True 342
True 5602084

На роль генерируемого текста взял фрагмент цитаты из перевода книги «Эгоистичный ген»:

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

Длину слогов ограничил 4 буквами, т. к. при большей длине вероятность выпадения слога снижается настолько, насколько снижается значимость её ожидания.

Вместо переменных real_* было бы лучше описать правила (алгоритм), по которым допустимо складывать буквы в слоги, а слоги в слова и т. д. И обучить искусственный интеллект на роль критика-читателя для тестирования генерируемого текста. Но это займёт много времени и, на мой взгляд, не требуется для понимания возможности случайной генерации организмов. В природе же нет эталонных организмов для тестирования, а только законы, задающие возможность комбинирования атомов и выживаемости организмов.

Скачать исходный код: https://github.com/syeysk/random-masterpiece-generator

Мир как контейнер для порождения сущностей

Подытожу описание системы мира, построение которой могло бы порождать сущности по некоему сценарию.

Абстрактная система:

  1. Сущность; составные части сущности, комбинации сущностей

  2. На выходе остаются те сущности, комбинации составных частей которых удовлетворяют неким правилам.

  3. Правила комбинирования составных частей

  4. Тестирование сущности на право существования

  5. Причина генерирования псевдослучайных комбинаций

Конкретизируем абстракцию для природы:

  1. Организм; клеточные культура, молекула, атом, элементарная частица и переносчик взаимодействия; популяция, сообщество, цивилизация.

  2. Остаются существовать копии гена тех организмов, оказавшиеся способными выжить и осуществить репликацию.

  3. Законы квантовой механики, физики, химии, биологии.

  4. Выживание и размножение в условиях окружающей среды.

  5. Флуктуация (блуждание) положения частиц, атомов. Радиация, влияющая на последовательность ДНК. Прочее.

Конкретизируем абстракцию для литературы:

  1. Слова; слоги, буквы; словосочетания, произведения, сборники

  2. Остаются существовать копии тех произведений, оказавшиеся интересными читателям, способных к их цитированию и распространению, признанию.

  3. Орфография, синтаксис, восприятие человека (иногда автор может нарушать орфографию и синтаксис, чтобы лучше донести эмоции или смысл)

  4. Одобрение массовыми читателями, литературными критиками и так далее

  5. Человек, имеющий должное воображение, глубину мышления и подобное. Генеративный искусственный интеллект, обученный на большом объёме текста.

Итого

Грубо говоря, атомы оказываются псевдослучайно в том или ином месте, но их комбинации складываются по законам. Или мутации в ДНК происходят псевдослучайно, но жизнеспособность получаемых организмов определена законом.

Что дальше?

Пока ничего, потому что у меня нет времени на создание программы, которая принимает описание мира и запускает генерацию сущностей. Оставлю это на будущее.

Для дополнительного чтения:

  • Гипотеза мира РНК

  • Программа Weasel, написанная Ричардом Доккинзом для демонстрации случайной генерации организма (последовательности ДНК) на примере фразы из произведения Шекспира. Моя программа демонстрирует генерацию молекул из атомов, т. е. обе программы как бы дополняют друг друга.

Источник: habr.com

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.
dummy-img
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
dummy-img
dummy-img
Взаимодействие человека и машины погружается под воду.
Взаимодействие человека и машины погружается под воду.
Дифференциально приватное машинное обучение в масштабе с использованием JAX-Privacy
Image Not Found
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Вкратце Опубликовано: Изображение предоставлено: Thos Robinson/Getty Images для The New York Times (откроется в новом окне) Джули Борт Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.…

Апр 21, 2026
dummy-img

Как почистить виниловые пластинки (2026): пылесос, ультразвук, чистящий раствор, щетка.

Эти щелчки и треск недопустимы. Приведите свою музыку в порядок с помощью этого удобного руководства. Источник: www.wired.com

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых