Изучение сложных систем с помощью Python |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-06-02 02:49 Наука о поведении сложных систем использует различные вычисления для изучения естественных и гуманитарных наук. В этой книге вы будете использовать графы, клеточные автоматы и агентные модели для изучения тем по физике, биологии и экономике. В издательстве ДМК Пресс готовится к выходу книга «Изучение сложных систем с помощью Python». Независимо от того, являетесь ли вы программистом на Python или изучаете компьютерное моделирование в университете, вы углубитесь в изучение сложных систем с помощью серии проработанных примеров, упражнений, случаев из практики и простых для понимания объяснений. К дополнительной главе, опубликованной к этой книге, публикуем отрывок из 5 главы о клеточных автоматах: «Клеточный автомат (КА) – это модель мира с очень простой физикой. «Клеточный» означает, что мир разделен на отдельные куски, называемые ячейками. «Автомат» – это машина, которая выполняет вычисления, – это может быть реальная машина, но чаще всего «машина» – это математическая абстракция или компьютерное моделирование. В этой главе представлены эксперименты, выполненные Стивеном Вольфрамом (Stephen Wolfram) в 80-х гг., демонстрирующие, что некоторые клеточные автоматы демонстрируют удивительно сложное поведение, в том числе способность выполнять произвольные вычисления. Клеточные автоматы регулируются правилами, которые определяют, как состояние ячеек изменяется со временем. В качестве тривиального примера рассмотрим клеточный автомат с одной ячейкой. Состояние ячейки во время временного шага i является целым числом, xi. В качестве начального условия предположим, что x0 = 0. Теперь все, что нам нужно, – это правило. Произвольно я выберу xi + 1 = xi + 1, что говорит о том, что на каждом временном шаге состояние клеточного автомата увеличивается на 1. Так что этот автомат выполняет простое вычисление: он считает. Но данный автомат нетипичен; обычно число возможных состояний ограничено. Например, предположим, что ячейка может иметь только одно из двух состояний: 0 или 1. Для клеточного автомата с двумя состояниями мы можем написать правило, например, xi + 1 = (xi + 1) % 2, где % – оператор деления по модулю. Поведение этого клеточного автомата простое: он мигает. То есть состояние ячейки переключается между 0 и 1 в течение каждого временного шага. Многие клеточные автоматы являются детерминированными, это означает, что в правилах нет случайных элементов; при одинаковом начальном состоянии они всегда дают одинаковый результат. Но некоторые автоматы являются недетерминированными; мы увидим примеры далее. У клеточного автомата в этом разделе есть только одна ячейка, поэтому мы можем рассматривать его как нульмерный. В оставшейся части этой главы мы исследуем одномерные клеточные автоматы (1D), а в следующей главе рассмотрим двумерные автоматы. Эксперимент Вольфрама: В начале 80-х гг. Стивен Вольфрам опубликовал серию работ, в которых систематически изучались одномерные клеточные автоматы. Он выделил четыре категории поведения, каждая из которых интереснее предыдущей. Вы можете прочитать одну из этих статей, «Статистическая механика клеточных автоматов», на странице https://thinkcomplex.com/ca В экспериментах Вольфрама ячейки расположены в решетке (которую вы, возможно, помните из раздела «Ваттс и Строгац» на стр. 24), где каждая ячейка связана с двумя соседями. Решетка может быть ограниченной, бесконечной или располагаться в кольце. Правила, которые определяют, как система развивается во времени, основаны на понятии «окрестности», которое представляет собой набор ячеек, определяющих последующее состояние данной ячейки. В экспериментах Вольфрама используется окрестность из трех ячеек: сама ячейка и два ее соседа. В этих экспериментах ячейки имеют два состояния, обозначенных как 0 и 1, поэтому правило можно суммировать с помощью таблицы, которая отображает состояние окрестности (кортеж из трех состояний) в последующее состояние центральной ячейки. В приведенной ниже таблице дается пример: prev 111 110 101 100 011 010 001 000 next 0 0 1 1 0 0 1 0 Первая строка показывает восемь состояний, в которых может находиться окрестность. Вторая строка показывает состояние центральной ячейки во время следующего временного шага. В качестве краткой кодировки этой таблицы Вольфрам предложил читать нижнюю строку как двоичное число; поскольку 00110010 в двоичном коде – это 50 в десятичном виде, Вольфрам назвал этот клеточный автомат «Правило 50». На рисунке к посту показано влияние Правила 50 на 10 временных шагов. Первая строка показывает состояние системы в течение первого временного шага; он начинается с одной ячейки «вкл», а остальные «выкл». Во второй строке показано состояние системы во время следующего временного шага и т. д. Треугольная форма, изображенная на рисунке, типична для этих клеточных автоматов; это следствие формы окрестности. За один временной шаг каждая ячейка влияет на состояние одного соседа в любом направлении. В течение следующего временного шага это влияние может распространяться на еще одну ячейку в каждом направлении. Таким образом, каждая ячейка в прошлом имеет «треугольник влияния», который включает в себя все ячейки, на которые она может воздействовать". Комментарии: |
|