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 + ей можно спокойно наблюдать за эволюцией системы.
Столь подробное описание процесса построения модели дано лишь с той целью, чтобы читатель немного освоил электронные таблицы и понял, насколько легко могут быть построены значительно более сложные и реалистичные модели.
Ясно, что легко усложнить формулу расчета потенциала, изменить окрестность, ввести в расчет случайные факторы. Учет географических особенностей региона может заставить вас отказаться от простой квадратной решетки. В ней могут появиться дырки, а граница вполне может быть извилистой. Совершенно необязательна унификация правил поведения автоматов. Например, вы можете для центральных клеток задать одни правила, а для пери-ферийных — другие.
Еще по теме 14.2. Реализация моделей клеточных автоматов на ЭВМ:
- 14.3. Приложения клеточных моделей
- Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
- Игровые автоматы
- «автомат общественного мнения».
- 3. Продажа товаров с использованием автоматов
- Статья 703. Продажа товаров с использованием автоматов
- Н.В.СТРУМПЭ, В.Д.СИДОРОВ. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ, 2014
- В.Д.СИДОРОВ, Н.В.СТРУМП. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ, 2014
- 3. Использование программ для ЭВМ, баз данных и топологий ИМС третьими лицами
- § 6. Авторско-правовая охрана программ для ЭВМ, баз данных и топологий интегральных микросхем
- 1. Понятие программы для ЭВМ, базы данных и топологии интегральной микросхемы и основные правила их охраны
- 12.2.2. Правовое регулирование информационных отношений при производстве и распространении программ для ЭВМ и баз данных
- Модель личности журналиста: профессиональные, социально-гражданские, нравственные, психологические и социально-демографические характеристики. Модификация общей модели для разных специализаций (репортер, аналитик, расследователь, публицист, ведущий-модератор и т.п.).
- Глава 6. Реализация права
- 4.2. Реализация