The Unexpected Complexity of Simple Rules | 22 октября 2023 года, 13:01

Сейчас начал читать “Determined” Роберта Сапольски. Смотрю, у него там в какой-то главе впереди (еще не дочитал до туда) есть отсылка к Cellular automata. И я понял, что я забыл поделиться интересной находкой — книжкой “Новый вид науки” Стивена Вольфрама. Я еще в начале года ее купил и где-то на 60% прочитал.

“Новый вид науки” — это объемный том более тысячи страниц, рассматривающий все, от физики до биологии и нейронауки. Его автор, Стивен Вольфрам, доктор физико-математических наук, является создателем и основным автором научного ПО Mathematica ну и wolframalpha тоже его. Став почти невероятно богатым, он посвятил свою интеллектуальную карьеру исследованию того, что происходит, когда простые правила применяются к ячейкам на плоскости или пространстве.

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

По сути, в нас так ДНК работает. Ведь ДНК это программа, которая на вход получает а) собственно программный код — последовательность аминокислот б) результат предыдущего выполнения (ферменты, плавающие в клетке и подавляющие некоторые фрагменты программного кода, а также некоторое начальное состояние ферментов, плавающее в яйцеклетке мамы). В итоге, через 10 итераций один и тот же программный код рождает структуры, которых до десяти итераций просто не существовало. А условной на сотой итерации включается что-то еще. И рассчитать, что там включится, если в начале что-то пойдет слегка не так — какого-то фермента в нужный момент не будет в клетке, вообще нереально. Это делает генетику очень сложной областью.

У Вольфрама есть для таких штук целая система. Например, дял простого алгоритма – выбираем цвет клетки в следующей итерации на основе цвета клетки текущей итерации и цветов клеток-непосредственных соседей. Такие правила формулируются как 8 трансформаций три бита в один, что дает по сути программу, которой достаточно 8 бит для полного описания ее логики. Эти 8 бит и определяют программу. Например, правило Rule 22, которое может быть сформулировано так: каждая клетка в следующем поколении будет черной, если ровно одна из её двух соседних клеток или она сама черные в текущем поколении. Так вот, если запустить это правило супротив некоторого начального состояния, то строка за строкой на протяжении миллионов и миллиардов поколений будет формироваться случайный узор, состоящий из больших и маленьких треугольников, которые одновременно и случайны, и нет. Самое интересное, что предсказать это по начальному состоянию и по правилу нельзя — по крайней мере, наука не знает как, и сделать какие-то выводы можно только запустив симуляцию и разглядывая результат. Например, может оказаться, что где-то на миллиардном поколении узор начнет повторяться. Или не начнет. Или вылезет какая-то хитрая трапеция в узоре, которой еще не было. Или вообще после определенного шага все схлопнется в полностью белый или черный фон.

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

Кстати, почти 100% из находок Вольфрама поняли бы даже в древней Греции, и ничего не мешало в той же Древней Греции это сформулировать и передать следующим поколениям. Но только почему-то за тысячи лет не было ни одной попытки. Только в 20 веке стали потихоньку копать тему. Ну вот попробуйте придумать любую другую ветвь науки, которая теоретически могла бы быть придумана в Древней Греции, а придумана только сейчас.

Вот в книге он анализирует биологию этих получившихся существ, и даже неплохо их систематизирует. Выделяет какие-то общие характеристики — те же треугольники в паттерне, хотя ни он, ни другие не могут объяснить откуда они там берутся.

В общем, книжка очень занимательная.

Теперь про странности.

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

Еще немного раздражает стиль речи “одно из самых важных открытий, которое я сделал”. Это практически в каждой главе. Нужно признать, что тема, которую Вольфрам запустил в 2002 что-ли году этой книжкой, уже давно была в ходу, но никто ее так, как он не систематизировал. И нужно признать, что с 2002 года она тоже особо не популярна среди ученых. Возможно, что глубже, чем Вольфрам, копать там особо нечего, а может быть его так все не любят, что никто не хочет ее трогать 🙂

Так что, без сомнения, эта книга должна безумно раздражать практиков индустрии, которые, читая её, кажется, практически не существуют по сравнению с самопровозглашенным великолепным умом господина Вольфрама. Иногда это почти переходит в пародию. Я еще со школьных времен помню программирование “Игры жизни” Конвея и конечно тогда был поражен, откуда, черт возьми, берется информация для описания всего этого. Но согласно г-ну Вольфраму, он был первым, кто так подумал. То есть, конечно он ссылается на Конвея, но так, неохотно, обложив все ссылки хвалебными стейтментами про себя самого. Возможно, Вольфрам действительно самостоятельно совершил множество открытий и помог оживить этот предмет, но даже если это так, он должен больше признавать заслуги других в своих текстах и не хвастаться тем, какой он умный парень.

Книжка, кстати, лежит в публичном доступе — Вольфрам ее выложил на своем вебсайте, хорошо приспособив для веба. В бумажной версии она тоже удивительно недорогая. Так что если вдруг интересуетесь — советую глянуть и составить собственное мнение.

From Fungi to Filth: A Shocking Statistic | 21 октября 2023 года, 22:53

Читаю книжку про грибы, внезапно интересный факт. В 1997 году использованные подгузники составляли 6% городских отходов, теперь этот показатель увеличился до 15% в некоторых районах (источник – Instituto Nacional de Estadística y Geografía, 2010).

iPHONE 15 PRO MAX: HOW THE 5-CAMERA SYSTEM WORKS TO SAVE THE DAY (AND YOUR TRANSIT TICKET)! | 20 октября 2023 года, 15:08

Как работает 5х камера на iPhone 15 pro max. У меня ветер унес билетик на метро, и бросил на рельсы. Чтобы не платить на выходе я сделал с одной точки две фотки. Обычную и 5х. На увеличенной читается номер и дата

Камень, Ножницы, Бумага: Мечтания о победе в Америке | 20 октября 2023 года, 10:40

Я сейчас в Атланте, где на этой неделе мы большой толпой планировали работу на следующие три месяца. И чтобы разбудить с утра народ, ради фана организовали зал поиграть в камень-ножницы-бумага и найти абсолютного победителя зала. Где я понял, что я не умею играть в американские камень-ножницы-бумага. В США чаще играют так: бьют кулаком по ладони на “rock”, затем бьют на “scissors”, затем бьют на “paper”, а затем говорят слово “shoot” и в это время показывают. В целом у нас тоже четыре счета “камень, ножни, цыбу, мага), но быстро это не сообразишь, потому что слова точно три и никакого shoot нет. (Ну еще у нас есть длинная версия “камень, ножни, цыбу, мага, цу, е, фа”; впрочем, в США тоже в ходу вариант без shoot встречается)

Понятно, что против генератора случайных чисел какую стратегию не бери, вероятность 30%. Но смотрю есть интересное исследование на то, как играть против живых людей. Вот его выводы:

1) winners repeat: люди, склонны повторять то, что помогло им выиграть последний раз. Если вы показали камень, и выиграли против ножниц, то с повышенной (относительно 1/3) вероятностью вы покажете камень снова.

2) loosers change: при проигрыше люди склонны менять стратегию (показали камень, проиграли, зачем тогда его показывать еще раз)

Отсюда некоторые хинты как выигрывать:

1) если вы проиграли, в следующем раунде показывайте то, чего не было в этом (если в этом были камень и ножницы, показывайте бумагу)

2) если вы победили, то в следующем раунде показывайте то, чем проиграл оппонент в предыдущем

3) если ничья, то выбирайте случайно

Кстати, есть робот, который вигрывает в “Камень-ножницы-бумага” в 100% случаев. Но правда он нечестно это делает – он смотрит на микродвижения вашей руки и опережает показывая противоположное. Гуглите по Janken Robot