<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Гизата Маханова: заметки с тегом computer science</title>
<link>https://gizat.kz/tags/computer-science/</link>
<description>Блог Гизата Маханова о бизнесе, продуктовом менеджменте, акваскейпинге и других интересах</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Блог Гизата Маханова о бизнесе, продуктовом менеджменте, акваскейпинге и других интересах</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Клеточный автомат</title>
<guid isPermaLink="false">9</guid>
<link>https://gizat.kz/all/ca/</link>
<pubDate>Fri, 01 Mar 2019 09:09:00 +0500</pubDate>
<author></author>
<comments>https://gizat.kz/all/ca/</comments>
<description>
&lt;h2&gt;Введение&lt;/h2&gt;
&lt;p&gt;Если отбросить часть теории эволюции, где обезъяна превращается в человека, то у этой теории есть интересные применения.&lt;/p&gt;
&lt;p&gt;Поколение за поколениями, все биологические объекты (животные, растения, бактерии) прошли через какие-то изменения. С каждым изменением биологический вид лучше приспосабливался к  изменениям в окружающей среде, соответственно учился выживать. В результате нашу планету населяют сильные, натренированные биологические объекты, поведения которых мы можем имитрировать при создании технологий и поиска ответов на разные социальные феномены.&lt;/p&gt;
&lt;p&gt;Например, изучая принципы работы мозга человечество создало искуственные нейронные сети, которые используются для таргетирования рекламы на вашей ленте. Другой пример — летающие роботы, которых создали изучая поведения летучих мышей.&lt;/p&gt;
&lt;p&gt;Сегодня хочу рассказать подробнее про то, как компьютерная наука имитирует функции клеток.&lt;/p&gt;
&lt;h2&gt;Клеточный автомат&lt;/h2&gt;
&lt;p&gt;Клеточный автомат — это модель; попытка человечества имитировать поведение клеток.&lt;/p&gt;
&lt;p&gt;Возьмем некий отрезок биологической ткани и разложим на сетке. Представим, что в каждой ячейке этой сетки сидит клетка. У каждой этой клетки есть соседи — другие клетки. Также у каждой клетки есть свое состояние — живая (1) или мертвая (0).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/grid.jpg" width="776" height="602" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;На примере выше мы смотрели на двухмерную сетку, но эти сетки могут быть многомерными. Но для простоты мы далее рассмотрим одномерную сетку.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/grid-1d-full.jpg" width="970" height="216" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Как и в примере выше, у каждой клетки в одномерной сетке есть соседи — клетка справа и слева (за исключением самых крайних двух). Также состояние каждой клетки мы обозначим 1 (живая клетка) или нулем (мертвая клетка).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/grid-1d-full-neighbors.jpg" width="977" height="214" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Чтобы проследить как эти клетки меняются со временем (эволюционируют), нам необходимо внедрить понятие времени. Все клетки в нашей первичной сетке живут в одном и том же времени; принадлежат одному поколению. Значит новое поколение мы можем показать другой сеткой такой же длины и вставить ниже. Так мы создадим несколько поколений.&lt;/p&gt;
&lt;p&gt;Итак, мы разобрались с приницпами существования клеток в пространстве компьютерных битов. &lt;b&gt;Оставется важный вопрос: как меняются новые поколения?&lt;/b&gt;&lt;/p&gt;
&lt;h2&gt;Правило 184&lt;/h2&gt;
&lt;p&gt;Это, пожалуй, самая важная часть клеточных автоматов. Представим, что состояние (0 или 1) одной клетки в поколении определяется тремя соседствующими клетками предыдущего поколения.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/grid-1d-full-neighbors-evolution.jpg" width="2214" height="926" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Таким образом, чтобы определить состояние каждой клетки в поколении, нам необходимо посмотреть на состояние каждой тройки клеток из предыдущего поколения. Это правило называется «Правилом 184» или «Правилом дорожного движения».&lt;/p&gt;
&lt;p&gt;Представим отрезок одностороней дороги, где могут поместиться три автомобиля. Все они едут слева на право. Автомобиль может занять только свободную ячейку впереди. Таким образом мы можем представить восемь сценариев:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/rule184.jpg" width="1793" height="914" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Это и есть «Правило 184».&lt;/p&gt;
&lt;p&gt;Есть множество таких правил, которые можно применить для имитации разных феноменов. Например, одно из таких правил создает узоры как у улиток.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/bio-snail.jpg" width="800" height="600" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Применение&lt;/h2&gt;
&lt;p&gt;Закончим с теорией и перейдем к программированию и визуализации клеточных автоматов по правиле 184. Мы нарисуем мертвую клетку белым цветом, а живую черным. Каждая строка — это одно поколение.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/example-1.png" width="468" height="482" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;На картинке видно как скопление клеток в первых поколениях (верхняя строка) «движется» налево. Если представить мир автомобилей, то это скопление автомобилей переходит назад, или другими словами, дорожная пробка притормаживает движение автомобилей сзади.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gizat.kz/pictures/examples-many.png" width="477" height="482" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Это конечно не идеальное отражение сложных механзимов дорожных пробок, но помогает симулировать разные сценарии развития пробок.&lt;/p&gt;
&lt;h2&gt;Эпилог&lt;/h2&gt;
&lt;p&gt;Мы рассмотрели самый простой пример клеточного автомата. С более сложными моделями можно создать целый мир клеток, которые могут существовать «сами по себе» — размножаться, питаться, и умирать.&lt;/p&gt;
</description>
</item>


</channel>
</rss>