3. Анализ и разработка моделей для выполнения лабораторных работ
Первая модель, которую будем анализировать, называется «Climatechange».
В данной модели рассматривается изменение климата, а в частности
температуры на планете в зависимости от количества облаков и углекислого газа.
Также на температуру влияет яркость солнца и отражающая способность поверхности
земли. Общий вид модели представлен на рисунке 3.1.
Рисунок 3.1 Общий вид модели
В базовой модели представлены следующие кнопки. Кнопка setupсоздает модель, кнопкаgo запускает модель. Кнопки addcloud и removecloud создают и удаляют облака в модели. Кнопки addCO2 и remove CO2 создают и удаляют молекулы СО2. Кнопка watcharay показывает путь от солнечного луча до инфракрасного излучения. Параметр sunbrightness отвечает за яркость солнца, и чем ярче солнце, тем больше солнечных лучей попадает на землю. Albedo- параметр, отвечающий за отражающую способность поверхности земли, и чем он выше, тем больше солнечных лучей отражается от земли.
При нулевом значении параметра sunbrightnessтемпература остается неизменной. Это показано на рисунке 3.2.
Рисунок 3.2 Модель при значении sunbrightness, равном нулю
При максимальном значении albedoтемпература так же остается неизменной.
Это обусловлено тем, что поверхность отражает все солнечные лучи, и,
следовательно, температура не растет. Это показано на рисунке 3.3.
Рисунок 3.3 Модель при максимальном значении albedo
Добавление облаков в модель влияет на изменение температуры, так как
облака не дают части солнечных лучей попасть на поверхность земли или же не
дают им покинуть землю. На рисунках 3.4 и 3.5 показано влияние облаков на
поведение модели.
Рисунок 3.4 Модель без облаков
Рисунок 3.5 Модель с облаками
Как видно из рисунков 3.4 и 3.5, температура выше там, где нет облаков, потому что в модели без облаков ничего не препятствует попаданию солнечных лучей на землю.
При добавлении CO2 инфракрасное излучение не покидает поверхность земли,
из-за чего температура сильно возрастает. Это показано на рисунке 3.6.
Рисунок 3.6 Модель с высоким содержанием СО2
Температура в данной модели высчитывается по формуле:
где countheats - количество тепла, полученное землей;- температура.
На параметр countheats влияетalbedo. Значение albedo, умноженное на 100, сравнивается со случайным числом. Если оно меньше, то солнечный луч оставляет инфракрасное излучение, а если больше, то отражается от поверхности земли. Если солнечных лучей много, то heatsсоздается при попадании луча в одну точку дважды.
Создание солнечных лучей происходит по формуле:
где sunbritness - яркость солнца.
Значение, полученное с помощью этой формулы, сравнивается со случайным числом в диапазоне от 1 до 50, и если оно окажется больше этого случайного числа, то создается один луч.
Для модификации данной модели разработаем и добавим в модель фабрики и деревья. Фабрики вырабатывают углекислый газ, который задерживает инфракрасное излучение и ведет к повышению температуры. Деревья, в свою очередь, убирают углекислый газ из атмосферы и препятствуют образованию барьера из углекислого газа. Общий вид модифицированной модели представлен на рисунке 3.7.
Рисунок 3.7 Общий вид модифицированной модели
Следующая модель для анализа называется «ElFarol».Farol - это модель, которая моделирует посещение бара ElFarol в NewMexico. Бар пользуется популярностью - особенно в четверг вечером, когда они предлагают ирландскую музыку, но иногда становится переполненным и неприятным.Каждый четверг посетители данного бара решают идти им сегодня в бар или остаться дома[10]. Данная модель входит в категорию SociealScience (социальная наука).
Данный выбор они делают на основе своего предыдущего опыта. Их выбор зависит от количества посетителей бара, которое было в предыдущие разы его посещения.
Общий вид базовой модели представлен на рисунке 3.8.
Рисунок 3.8 Общий вид базовой модели «ElFarol»
В базовой модели имеется несколько видов рычажков.
Рычажок memory-sizeотвечает за размер памяти посетителей, которая представляется массивом чисел, где каждый элемент - это количество посетителей в баре в определённый раз посещения. Размер памяти равен количеству элементов массива.
Рычажок number-strategiesопределяет количество стратегий, которыми руководствуются посетители бара, когда выбирают, идти им в бар или нет. Если это число меньше или равно параметру overcrowding-threshold, то человек идет в бар.threshold - параметр, который является ограничением. Как было сказано ранее, если число, полученное в результате выполнения стратегии меньше или равно данному параметру, то человек идёт в бар
Минус данной модели заключается в том, что выбор посетителей бара основывается только на предсказании числа посетителей бара. Получается так, что количество посетителей бара - это единственное, что влияет на выбор человека.
Для модификации модели добавим ещё два параметра: «Качество» и «Полиция».
В параметре «Качество» учитывается качество обслуживания в баре, качество
алкоголя и еды. Данный фактор является одним из ключевых в принятии решения
идти в бар или нет. Представим данный параметр в виде рычажка quality, значения
в котором будут меняться в диапазоне от 1 до 5 с шагом 1. Рычажок quality
представлен на рисунке 3.9.
Рисунок 3.9 Рычажок quality
У каждого бара есть свой определенный стандарт качества. Данный стандарт сравнивается с качеством заведения ElFarol. Если данное качество не удовлетворяет стандарту клиента, то он остается дома.
Параметр «Полиция» представляет из себя значение, равное количеству
визитов полицейскими данного заведения. Представим этот параметр так же в виде
рычажка the-number-of-police-visits, значения в котором будут меняться в
диапазоне от 1 до 5 с шагом 1. Рычажок the-number-of-police-visits представлен
на рисунке 3.10.
Рисунок 3.10 Рычажокthe-number-of-police-visits
Для визуализации влияния факторов на выбор клиента добавим график. На
этом графике будет отображаться, какое количество клиентов потеряно в
результате влияния параметров «Качество» и «Полиция». Данный график представлен
на рисунке 3.11.
Рисунок 3.11 График quanlityprediction
Общий вид модернизированной модели представлен на рисунке 3.12.
Рисунок 3.12 Общий вид модернизированной модели
Третья модель, которую будем анализировать, называется «Pagerank».
Эта модель демонстрирует два различных агентно-ориентированных метода для
расчета рангов взаимосвязанных веб-страниц. Задача модели - обеспечить более
глубокое понимание алгоритма ранжирования и его математики. Общий вид модели
представлен на рисунке 3.13.
Рисунок 3.13 Общий вид модели
В базовой модели имеется несколько видов переключателей и рычажков. Переключатель network-choiceпозволяет выбрать сеть, которую можно будет использовать для моделирования. Рычажок damping-factorпоказывает, как значения ранга влияют на ссылочную структуру. Рычажок number-of-surfersотвечает за количество пользователей, которые будут осуществлять переходы между сайтами по ссылкам. Работает только при случайном методе поиска. Переключатель watch-surfersпозволяет включить или выключить наблюдение за перемещениями пользователей. Переключатель show-page-ranksпозволяет включить или выключить показ числового ранга в модели. Переключатель calculation-methodпозволяет выбрать один из двух методов поиска: случайный или диффузионный.
Вычисление ранга страницы происходит по формуле:
где PR - ранг рассматриваемой страницы;коэффициент затухания (означает вероятность того, что пользователь, зашедший на страницу, перейдет по одной из ссылок, содержащейся на этой странице, а не прекратит путешествие по сети);i-ранг i-ой страницы, ссылающейся на рассматриваемую страницу;i- общее число ссылок на i-ой странице.
Модифицируем данную модель. В
базовой модели имеется всего три типа сети. Нас интересует третий тип, именно
его и используем для модификации и сделаем ещё один тип. В базовой модели он
реализуется с помощью функции create-network-preferential [ nk]. Данная функция
принимает два параметра. Первый отвечает за количество создаваемых страниц, а
второй за количество ссылок на сайтах, но эти параметры заданы в программе и
никак не изменяются. Отсюда можно сделать вывод, что есть возможность
реализовать функцию, которая позволит управлять количеством сайтов и связей
между ними. Для этого в модель добавим два новых рычажка:count-pages и
count-links. Они представлены на рисунке 3.14.
Рисунок 3.14
Count-pagesиcount-links
Также реализуем возможность
управлять первоначальным значением рейтинга страниц. Для этого создадим
переключатель pr-control, который будет отвечать за возможность управлять
рейтингом, а также создадим рычажок pr-page, который будет отвечать за
первоначальное значение рейтинга. Если переключатель pr-controlвключен, то ранг
устанавливается в зависимости от значения рычажка pr-page, в противном случае
ранг страниц определяется по стандартной формуле. Эти элементы представлены на
рисунке 3.15.
Рисунок 3.15
Pr-controlиpr-page
Общий вид модифицированной модели представлен на рисунке 3.16.
Рисунок 3.16 Общий вид модифицированной модели
Следующая модель для анализа называется «TuringMachine».
Это модель многоголовой машины Тьюринга на двумерной ленте (2D MTM), которая является продолжением оригинальной машины, предложенной Тьюрингом в 1936 году.
Машина Тьюринга - простая вычислительная машина, способная делать все, что может сделать современный компьютер. Традиционная машина Тьюринга имеет один процессор или «головку» с ограниченным числом внутренних состояний, которые изменяются в зависимости от данных, которые считывает голова. Когда машина Тьюринга вычисляет, голова движется вперед и назад по ленте, меняя ее внутреннее состояние и значение текущей ячейки [11].
Многоголовую машину Тьюринга на двумерной ленте (2D MTM) можно эмулировать на одноглавой одномерной машине Тьюринга (TM), но правила 2D MTM могут быть значительно проще, чем правила традиционной ТМ, имитирующей 2D MTM. В модели может быть до 256 «головок», которые следуют одному и тому же набору основных правил. В этом двухмерном 2D MTM голова может изменять свое состояние, значение его текущей ячейки и перемещаться либо на север, на восток, на запад, либо на юг, в зависимости от того, включена или выключена текущая ячейка и ее текущее состояние.
Эта модель демонстрирует, как несколько процессоров могут взаимодействовать друг с другом для выполнения сложных задач обработки. Это также показывает, что эти машины могут сильно зависеть от количества обрабатывающих агентов. В дополнение к изучению сложности параллельных вычислений эта модель также демонстрирует некоторые из требований параллельных алгоритмов.
Общий вид базовой модели представлен на рисунке 3.17.
Рисунок 3.17 Общий вид базовой модели
В данной модели используются несколько видов кнопок, рычажков и переключателей.
Рычажок headsпозволяет выбрать количество головок машины Тьюринга.
Переключатель color-pathsпозволяет выбрать, будут ли агенты белыми или разноцветными.
Рычажок newheadstateзадает новое состояние головки машины Тьюринга. Переключатель newcellstateзадает новое состояние ячейки. В выпадающем списке turnвыбирается в каком направлении повернется агент.
Кнопка setupexampleустанавливает параметры модели, заданные в различных примерах, которые можно выбрать, передвигая ползунок example. В модели всего пять примеров.Также специально для модифицированной модели были разработаны две модели, которые были заданы вместо предустановленных примеров 1 и 2.
Общий вид модернизированной модели представлен на рисунке 3.18.
Рисунок 3.18 Общий вид модернизированной модели
4. Разработка алгоритмов реализации выбранных моделей
В лабораторной работе «Climatechange» используются различные алгоритмы
движения объектов в пространстве. Главным является алгоритм движения солнечного
луча. Его поведение зависит от выбранных начальных параметров модели, а также
от объектов, размещенных в этой модели. Блок-схема для алгоритма движения
солнечного луча представлена на рисунке 4.1.
Рисунок 4.1 Алгоритм движения луча солнца
Также важным является алгоритм движения инфракрасного излучения. На его
поведение влияют те же объекты, что и на движение солнечного луча. Блок-схема
для алгоритма движения инфракрасного излучения представлена на рисунке 4.2.
Рисунок 4.2 Алгоритм движения инфракрасного излучения
В лабораторной работе «ElFarol» главным является алгоритм решения о посещении бара. На это решение влияют значенияустановленных внешних параметров. Решение производится на основе сравнения случайных чисел с числами, установленными на внешних параметрах. Блок-схема для алгоритма решения о посещении бара представлена на рисунке 4.3.
Рисунок 4.3 Алгоритм решения о посещении бара
Для лабораторной работы «Pagerank» главным является то, как пользователи
перемещаются по страницам. В зависимости от того, как они двигаются идет расчет
ранга той или иной страницы. Блок-схема для алгоритма движения при случайном
методе вычисления показана на рисунке 4.4.
Рисунок 4.3 Алгоритм решения о посещении бара
5. Разработка и реализация программных модулей
Рассмотрим процедуры и функции, используемые в модели для лабораторной работы «Climatechange».
В при помощи оператора globalsопределяются глобальные переменные. Рассмотрим объявленные переменные и их значения.top - определяет координату верхней точки неба. Earth-top - определяет координату верхней точки земли. Temperature - общая температура.
Далее с помощью оператора breed задается несколько подмножеств. Breed [ raysray ] - множество солнечных лучей, breed [ IRsIR ] - множество инфракрасного излучения, breed [heats heat] - множество тепловой энергии, breed [CO2s CO2] - множество углекислого газа, breed [trees tree] - множество деревьев, breed [factories factory] - множество фабрик, breed [clouds cloud] - множество облаков. Фрагмент кода с объявлением переменных представлен ниже.