<<
>>

14.2. Реализация моделей клеточных автоматов на ЭВМ

Чтобы убедить читателя в том, что, используя возможности электронных таблиц Excel, любой начинающий пользователь может заниматься клеточным моделированием, рассмотрим одну из реализаций игры "Жизнь".

Клетки в исходной таблице Excel слишком велики для нашей задачи. Поэтому придадим им вид небольших квадратов. В качестве примера возьмем игровое поле 5x5, хотя увеличение размера в несколько раз не требует никаких усилий. Отведем для игры клетки В2 : F6.

Если клетка жива, то в ячейку запишем 1, если мертва, то О. Зададим произвольное начальное состояние. Далее нам понадобятся две вспомогательные таблицы. В ячейках Н2 : L6 будет хра-ниться "потенциал" клеток. Для вычисления потенциала клетки В2 введем в ячейку Н2 следующую формулу:

= СУММ(А1 : СЗ) - В2 (14.1)

В данном случае подсчитывается число живых клеток в окрестности клетки В2 (окрестность по Муру). Закончив ввод этой формулы нажатием клавиши Enter, установим курсор на правый нижний угол клетки Н2 и размножим формулу (14.1) сначала до ячейки L2, а затем вниз, заполнив всю таблицу Н2 : L6.

(Обратите внима-

266

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

Сложнее всего задать правило поведения клеточного автомата. Запишем в ячейку BlO правило поведения автомата В2, используя логические функции:

= ЕСЛИ (ИЛИ (Н2 >3; Н2 <2); О; ЕСЛИ (Н2 = 3; 1;

ЕСЛИ(Н2 = 2;В2;-1))) (14.2)

Первое ЕСЛИ в (14.2) означает, что клетка будет мертва при потенциале Н2 = О, 1, 4, 5, 6, 7; второе ЕСЛИ — что при потенциале 3 клетка будет живой, третье ЕСЛИ — что при потенциале 2 состояние автомата в клетке В2 не меняется. Наконец, выраже-ние (-1) означает, что при невыполнении всех предыдущих условий в ячейку BlO будет записано значение (-1).

(Заметим, что в данном случае этот вариант невозможен.)

Запись логической функции требует аккуратности. Однако следует учесть, что для освоения Excel необходимо умение работать с логическими функциями.

Функция (14.2) записывается только в одну ячейку BlO, далее она размножается вправо до ячейки FlO, а затем вниз, заполняя всю таблицу B10:F14. Таким образом, если в таблице B2:F6 мы имеем состояние системы в момент t, то в таблице B10:F14 вычисляется состояние системы в следующий момент t + 1. Теперь необходимо скопировать таблицу B10:F14 в таблицу B2:F6. Делается это следующим образом.

Шаг 1. Выделяем таблицу BlO: F14.

Шаг 2. В меню "Правка" выбираем команду "Копировать".

Шаг 3. Устанавливаем курсор в ячейку В2.

Шаг 4. В меню "Правка" выбираем команду "Специальная вставка". В раскрывшейся дополнительной вкладке следует из первого столбца "Вставить" выбрать строку "Значения" и нажать кнопку OK. В итоге в таблице B2:F6 появится картинка нового состояния системы.

Процедуру копирования можно существенно ускорить, если подготовить соответствующий макрос. Делается это очень просто. В Excel 2000 в меню "Сервис" выбираем "Макрос", а затем команду "Начать запись". В раскрывшейся вкладке можно дать имя макросу либо оставить предлагаемый вариант "Макрос 1". Назначаем макросу клавишу быстрого вызова, например Ctrl + е. Нажимаем OK. Появится таблица Excel, и на экране возникнет

267

кнопка "Остановить макрос". Выполним указанные выше операции (шаги 1-4) и нажмем кнопку "Остановить". Запись макроса будет закончена.

Теперь переход к следующему временному такту будет происходить после каждого нажатия комбинации клавиш Ctrl + ей можно спокойно наблюдать за эволюцией системы.

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

Ясно, что легко усложнить формулу расчета потенциала, изменить окрестность, ввести в расчет случайные факторы. Учет географических особенностей региона может заставить вас отказаться от простой квадратной решетки. В ней могут появиться дырки, а граница вполне может быть извилистой. Совершенно необязательна унификация правил поведения автоматов. Например, вы можете для центральных клеток задать одни правила, а для пери-ферийных — другие.

<< | >>
Источник: Ю.М. Плотинский. Модели социальных процессов. 2001

Еще по теме 14.2. Реализация моделей клеточных автоматов на ЭВМ:

  1. 14.3. Приложения клеточных моделей
  2. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
  3. Игровые автоматы
  4. «автомат общественного мнения».
  5. 3. Продажа товаров с использованием автоматов
  6. Статья 703. Продажа товаров с использованием автоматов
  7. Н.В.СТРУМПЭ, В.Д.СИДОРОВ. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ, 2014
  8. В.Д.СИДОРОВ, Н.В.СТРУМП. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ, 2014
  9. 3. Использование программ для ЭВМ, баз данных и топологий ИМС третьими лицами
  10. § 6. Авторско-правовая охрана программ для ЭВМ, баз данных и топологий интегральных микросхем
  11. 1. Понятие программы для ЭВМ, базы данных и топологии интегральной микросхемы и основные правила их охраны
  12. 12.2.2. Правовое регулирование информационных отношений при производстве и распространении программ для ЭВМ и баз данных
  13. Модель личности журналиста: профессиональные, социально-гражданские, нравственные, психологические и социально-демографические характеристики. Модификация общей модели для разных специализаций (репортер, аналитик, расследователь, публицист, ведущий-модератор и т.п.).
  14. Глава 6. Реализация права
  15. 4.2. Реализация