Компьютерное моделирование в проектной деятельности

доцент факультета ВМК, МГУ имени М.В. Ломоносова, Москва

Компьютерное моделирование является одним из эффективных средств современной науки, применяется как в естественных науках, так и в гуманитарных. Школьники, изучающие программирование, вполне могут применять этот аппарат в своей проектной деятельности, причем, оказывается, для построения вполне серьезных моделей достаточно навыков и умений, приобретаемых в процессе обычного, «неуглубленного» изучения одного из «школьных» языков программирования.

Во-первых, программирование любой формулы из физики, математики может рассматриваться как построение компьютерной модели явления, описываемого формулой. Вывод таблицы значений функции (с помощью собственной программы или с помощью электронных таблиц), решение уравнений и интерпретация результатов – типичные задачи, которые могут служить основой проекта. Заинтересованность в работе, желание представить результаты более наглядно может побудить школьника изучить дополнительные возможности используемых средств программирования для построения графиков, диаграмм, движущихся моделей и т.п.

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

1. «Моделирование жизни колонии бактерий». Игра «Жизнь» была придумана английским математиком Джоном Конвеем в 1970 году. Несмотря на название, это не игра в общепринятом понимании, ход процесса здесь никак не зависит от игрока, он лишь расставляет «фишки» и в дальнейшем является только наблюдателем. Игровое поле может представлять собой прямоугольную таблицу, разделенную на одинаковые клетки. Клетка может быть пустой, либо в ней может жить некий организм. Клетка окружена соседями (их может быть от 3 у угловых клеток до 8 у серединных). Если соседей слишком много, организм умирает от «перенаселенности», если мало – от «одиночества». При надлежащем количестве соседей в пустой клетке может зародиться жизнь. Классические правила игры можно посмотреть, например, в Википедии [1], мы здесь посмотрим, как их запрограммировать. Игровое поле – это матрица из нулей и единиц. Понадобятся процедуры ввода и вывода матрицы, функция подсчета количества соседей. Главная процедура – создание нового поколения, построение новой матрицы на основе существующей. При определенном подборе параметров получаем математическую модель развития колонии организмов (например, как это происходит в питательном бульоне в чашке Петри).

А теперь попробуем придумать свои правила. Для начала можно определить, что все события происходят с некоторой вероятностью. Задавая эту вероятность, «игрок» может в какой-то мере управлять процессом. Можно «заселить» матрицу не нулями и единицами, а положительными числами. Пусть число означает количество единиц времени, отпущенное организму для «жизни». Обработка матрицы несколько усложняется, но модель становится более реальной. А если «организмы» в клетках будут обладать некоторыми характеристиками? Например, будут больными, здоровыми и заразными. При этом, естественно, больные и заразные будут заражать здоровых соседей, а больные могут выздороветь или умереть. Получаем модель развития эпидемий в густонаселенной местности.

Полет фантазии здесь может быть неисчерпаем: «организмы» могут быть двуполыми (изменяются правила рождения) или вообще принадлежать к разным видам и контактировать между собой по сложным социальным правилам. Если вместо цифр выводить графические символы, получается интересная и наглядная картинка.

2. Генетические исследования. Начнем с примера: опишем очень простую модель. Пусть кролик может быть только черным или белым, и за его цвет отвечают 2 гена. Причем белый цвет – рецессивный признак, а черный – доминантный. Это означает, что при наличии двух белых генов кролик будет белым, любая другая пара генов даст черную окраску. Выпишем «формулы» формирования цвета по паре генов – обнаруживаем, что при замене названия цветов на «истину» и «ложь» получается таблица значений логической операции OR. В нашей компьютерной модели кролик – это массив из двух генов. Популяция кроликов будет размножаться: скрещиваясь, особи дают потомку каждый по одному гену. Несмотря на простоту этой модели, она достаточно точно описывает биологические процессы (например, с ее помощью можно убедиться, что у черных родителей могут рождаться белые дети и внуки, можно подсчитать процентное соотношение особей разного цвета). Возможности для усложнения модели здесь неисчерпаемы: признаков может быть множество, они могут комбинироваться по различным законам. Данная модель особенно интересна не только тем, что дает возможность проследить развитие и эволюцию популяции живых организмов, она еще и побуждает юного исследователя к изучению одного из современных методов решения некоторых вычислительных задач – генетических алгоритмов. Это алгоритмы, использующие методы естественной эволюции (отбор, наследование, мутацию) для задач оптимизации и искусственного интеллекта.

Список литературы: 

1. Википедия. Свободная энциклопедия. Жизнь (игра). - http://ru.wikipedia.org

Код публикации: 

2046

Издание: 

Страница в издании: 

17