Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Семинар 13 и 14.docx
Скачиваний:
9
Добавлен:
24.11.2018
Размер:
169.91 Кб
Скачать

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

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

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

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

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

В данном случае подсчитывается число живых клеток в окрестности клетки В2 (окрестность по Муру). Закончив ввод этой формулы нажатием клавиши Enter, установим курсор на правый нижний угол клетки Н2 и размножим формулу (14.1) сначала до ячейки L2, а затем вниз, заполнив всю таблицу Н2 : L6. (Обратите внимание на то, как следует учитывать состояние клеток, граничных с таблицей В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, и на экране возникнет кнопка "Остановить макрос". Выполним указанные выше операции (шаги 1-4) и нажмем кнопку "Остановить". Запись макроса будет закончена.

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

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

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