Объектно-ориентированное программирование. 2

Содержание:

Введение 3

1. Понятие объектно-ориентированного моделирования…. 5

1.1. Общее понятие модели и агентного моделирования. 5

1.2. Сущность объектно-ориентированных моделей. 10

1.3. Моделирование социальных процессов 12

2. Модель «Распределение богатства» 16

2.1. Теория распределения богатства. 16

2.2. Характеристика модели распределения богатства. 18

2.3. Анализ модели распределения богатства. 19

Заключение 26

Список использованных источников 27

 

Введение

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

В таких условиях  особенно возрастает потребность в эффективном  инструменте анализа и прогнозирования  экономических ситуаций.

При рассмотрении социально-экономических  процессов в качестве базовой  системы принимается, как правило, конкретная социальная общность. Реальные системы, как правило, сложны для непосредственного анализа. К тому же есть социального характера, которые из-за своей сложности, по причинам нравственного свойства и в силу иных обстоятельств не могут стать объектом привычных в других случаях методов исследования. При исследовании объектов такого рода затруднена и воспроизводимость начальных и граничных условий, а значит, и результата. Все это дает части ученых основание для предвзятого отношения к применимости научных методов познания к обществу.

Социальные системы, сложные по сути и трудные для объективного исследования из-за невозможности взглянуть на них «со стороны», представляют особую сложность и для моделирования.

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

Одним из выходов из сложившейся  ситуации является компьютерное экспериментирование (computer simulation), то есть эксперименты проводятся не с группами реальных, живых людей, а с их компьютерными аналогами. Вместо реального общества объектом исследования становится "искусственное общество", состоящее из агентов - компьютерных моделей резольных людей.

Компьютерное моделирование  является новым инструментом в теоретическом арсенале социологов и психологов.

В этой работе используется программный продукт NetLogo, а также модель распределения богатства в обществе. NetLogo является продолжением языка Лого, который получил очень широкое распространение и популярность благодаря работам Сеймрура Пейперта и его группы Media MIT. Уже середине 90-х годов Мич Резник и его группа разработали продукт StarLogo, в котором действовали множество черепашек. Продукт был нацелен именно на изучение закономерностей и феноменов, в которые вовлечено множество агентов. В конце 90-х Ури Виленский отделился от StarLogo с отдельным проектом NetLogo1, который наследовал многие свойства StarLogo.

 

  1. Понятие объектно-ориентированного моделирования….

    1. Общее понятие модели и агентного моделирования.

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

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

Модели выполняют следующие  функции:

  • познавательную (даёт возможность заглянуть в суть изучаемых явлений, лучше понять их);
  • прогнозирования (позволяет в некотором смысле предсказать будущее, ожидающее реальный объект, модель которого исследуется);
  • принятие решений с целью (социального) планирования и управления (социальными) процессами;
  • совершенствования измерения.

Моделирование – это изучение объектов познания с помощью их моделей. При этом исследователь имеет дело не с реальным объектом, а с его моделью. Иначе говоря, при моделировании осуществляется построение и изучение моделей реально существующих объектов или явлений.[1]

Агентное моделирование (agent-based model (ABM))— метод имитационного моделирования, исследующий поведение децентрализованных агентов и то как такое поведение определяет поведение всей системы в целом. В отличие от системной динамики аналитик определяет поведение агентов на индивидуальном уровне, а глобальное поведение возникает как результат деятельности множества агентов (моделирование «снизу вверх»).

Агентное моделирование  включает в себя элементы теории игр, сложных систем, мультиагентных систем и эволюционного программирования, методы Монте-Карло, использует случайные  числа.[2]

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

Агентное моделирование  не обладает такими ограничениями, поскольку  оно предполагает сосредоточение непосредственно  на отдельных объектах, их поведении  и коммуникации.

Агентное (мультиагентное) моделирование (“agent-based modeling”) возникло совсем недавно и имеет свои особенности. Агентная модель – это ряд взаимодействующих активных объектов, которые отражают объекты и отношения в реальном мире.

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

Задачи имитационного  моделирования – строить простые  модели

сложных реальных систем. С  середины 80-х годов прошлого века на кафедре ИУС С.Петербургского Политехнического Университета, а затем  на кафедре РВКС этого Университета научная группа, работавшая над проблемой  анализа параллельных взаимодействующих  процессов, разрабатывала систему  моделирования сложных систем именно как программную среду, в которой  удобно и быстро можно было бы создать  модель из многих параллельных активностей, взаимодействующих друг с другом и с внешней средой, а потом  проводить анализ поведения получившейся системы. Многие реальные системы обладают этой особенностью: мы можем очень  хорошо понимать поведение каждого  активного объекта из связанной  системы таких объектов, но понять их поведение совокупности таких  параллельно функционирующих объектов, взаимодействующих друг с другом и со средой, никто не в состоянии.

Существует множество  определений понятия агента. Общим  во всех этих определениях является то, что агент — это некоторая  сущность, которая обладает активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, может взаимодействовать с окружением и другими агентами, а также может изменяться (эволюционировать). Цель агентных моделей — получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. Рост производительности компьютеров и достижения в информационных технологиях, сделали возможным реализацию агентных моделей, содержащих десятки и даже сотни тысяч активных агентов.

Многоагентные (или просто агентные) модели используются для  исследования децентрализованных систем, динамика функционирования которых  определяется не глобальными правилами  и законами, а наоборот, эти 

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

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

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

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

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

Участники цепочки поставок (компании-производители, оптовые торговцы, розничные продавцы) могут быть представлены как агенты с индивидуальными  целями и правилами. Агенты могут также быть проектами или продуктами в пределах одной компании, при этом обладать собственной динамикой и внутренними состояниями, конкурировать за ресурсы компании.[3]

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

цели моделирования можно  в рамках различных парадигм [3].

Моделирование агентов и  многоагентных систем не представляет сложностей ни в концептуальном, ни в техническом аспекте: все указанные  выше свойства агентов легко реализуются  в разных системах.[5] Основной концепцией является та, что модель состоит из активных объектов, имеющих каждый свои правила поведения и взаимодействующих через явно определенные интерфейсы. Поэтому агентный подход к построению моделей является совершенно естественным: можно быстро создавать модели с агентами, взаимодействующими как друг с другом, так и со средой. Таким образом, агентное моделирование делает шаг вперед в понимании и управлении совокупностью сложных социальных и бизнес процессов. [6]

    1. Сущность объектно-ориентированных моделей.

Агентно-ориентированные  модели (АОМ)  –  специальный класс  вычислительных моделей, основанных на индивидуальном поведении множества  агентов, и создаваемых для компьютерных симуляций. Эти компьютерные симуляции  тесно взаимосвязаны со следующими понятиями: вычислимая экономика, сложные  системы, метод Монте-Карло, вычислительная социология, системы с множеством агентов и эволюционное программирование.

В основе агентно-ориентированных  моделей лежат три основные идеи:

  • объектная ориентированность;
  • обучаемость агентов (или их эволюция);
  • сложность вычислений.

Доминирующим методологическим подходом является подход, при котором  вычисляется равновесие или псевдоравновесие системы, содержащей в себе множество  агентов. При этом, сами модели, используя  простые правила поведения, могут  выдавать весьма интересные результаты. АОМ состоят из динамически взаимодействующих  по определённым правилам агентов. Среда, в которой они взаимодействуют, может быть достаточно сложной.

Основные свойства агентов  АОМ:

  • Интеллектуальность. В то же время, это свойство должно быть умеренным для того, чтобы агенты не могли познать нечто большее, выходящее за рамки правил игры.
  • Наличие жизненной цели. Расположение во времени и пространстве. Имеется ввиду некоторая «среда обитания», которая может быть представлена и в виде решетки (как в игре «Жизнь»), так и в виде гораздо более сложной структуры. Иногда, результат взаимодействия агентов в «среде обитания» - равновесие, иногда – непрекращающийся процесс эволюции, а иногда – бесконечный цикл без определённого решения.

С середины 1990-х годов, АОМ  стали использовать для решения  множества коммерческих и технологических  проблем. Примерами могут послужить задачи:

  • оптимизации сети поставщиков и логистика;
  • моделирования потребительского поведения (в том числе социальные сети);
  • распределенных вычислений;
  • менеджмента трудовых ресурсов;
  • управления транспортом;
  • управления инвестиционными портфелями.

Одной из программ для разработки АОМ является бесплатно распространяемое приложение NetLogo. Изначально NetLogo был разработан как учебный инструмент, однако сейчас им пользуются не только студенты, но и тысячи исследователей. Это программа часто применяется в ВУЗах для обучения студентов основам АОМ. Схожей функциональностью обладает программа StarLogo. Инструментов для реализации более широкого спектра задачи в области АОМ является программа Swarm. В ней используется язык программирования Objective-C и она может быть рекомендована программистам, пишущих на C, причем не только профессионалам, но и новичкам. Программировать в среде Swarm можно так же и на языке Java. Отметим также ещё несколько программ: MASON, Repast (используется Java), EcoLab (используется C++), [1] Cormas (используется SmallTalk).[7]

 

    1. Моделирование социальных процессов

Под социальным процессом понимается:

а) последовательное изменение  состояний или элементов социальной системы и ее подсистем любого социального объекта;

б) любая поддающаяся идентификации, повторяющаяся модель социальных взаимодействий - конфликт, кооперация, конференция, дифференциация и т.д.

Переход от гуманитарных методов  изучения социальных систем, в которых  основную роль играет интуиция самого исследователя, когда угадываются неповторимые, индивидуальные черты исследуемого объекта или явления, к методам рациональным, при которых объекту стараются найти место в ряду ему родственных, стирая при этом его индивидуальные черты и акцентируя внимания только на общих для них всех сторонах, происходит посредством процесса формализации [37, с.6].

Моделирование в социологии - это метод исследования социальных явлений и процессов на их моделях, т.е. опосредованное изучение социальных объектов, в процессе которо-го они воспроизводятся во вспомогательной системе (модели), замещающей в познавательном процессе оригинал и позволяющей получать новое знание о предмете исследования [43].

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

При глобальном подходе рассматривается  весь социум (этнос, государство, все человечество), исследуются общие для всех характеристики (например политическая система). Как правило, при глобальном подходе исследуются большие промежутки времени (несколько десятков или сотен лет), так как тогда на динамике социума менее сказывается поведение отдельного человека, партии и т.п. Для изучения выбирается объект исследования, выделяется его структура (элементы, функциональные зависимости), определяется интервал времени (век, тысячелетие).

Использование компьютерного  моделирования в социальных науках довольно новая идея, хотя первые работы в этом направлении были осуществлены в 1960-х, а широкое использование компьютеров началось в 1990-х. Эта идея имеет огромный потенциал потому, что моделирование представляет собой превосходный путь прогнозирования и понимания социальных процессов. Компьютерное моделирование предоставляет возможность реализовать идею рождения сложного социального поведения из сравнительно простых действии индивидов.

Процесс компьютерного моделирования  социальных процессов включает в себя следующие этапы:

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

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

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

Таким образом, компьютерные модели социальных процессов и вычислительные эксперименты с этими моделями являются важным средством управления социальными процессами. Сам процесс воплощения теоретических представлений в виде модели позволяет глубже вникнуть в суть моделируемых явлений, а верификация модели (проведение на ней вычислительных экспериментов и сопоставление полученных результатов с данными эмпирических исследований) является фактически и проверкой теории, положенной исследователем в основу модели [36].

Компьютерное моделирование  дает возможность исследовать сложные системы, части которых описаны различными математическими методами. Использование компьютерного моделирования для изучения социальных процессов позволяет выявить:

  • внешние параметры того или иного процесса;
  • закономерности, которые не доступны наблюдению в естественных условиях,
  • связи имитируемых явлений с теми параметрами, которые автоматически задаются программой;
  • поиск параметров, оптимизирующих протекание имитируемого процесса, и т.д.

Одним из самых успешных результатов использования компьютерного  моделирования явилось предсказание возникновения так называемой ядерной зимы как неизбежного следствия мировой войны с задействованием всех запасов атомного оружия. Оставшиеся в живых люди, даже проживающие в странах или на континентах, не подвергшихся нападению, погибнут в течение 2-3 лет от холода, поскольку пепел от сгоревших городов закроет солнце, а температура на Земле упадет до —70°, и это будет продолжаться сотни лет. Важно отметить что модели последствий атомной мировой войны были независимо построены и подвергнуты вычислительным экспериментам как в СССР, так и в США. Выводы были одинаковыми. Отношение политиков этих стран к нахождению взаимопонимания за столом переговоров стало более ответственным.[1]

  1. Модель  «Распределение богатства»

    1. Теория распределения богатства.

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

Индивидуальное распределение  означает определение доходов отдельных  лиц, семей, домашних хозяйств и т.п., а также факторов, определяющих их уровень.

На микроэкономическом уровне анализ индивидуального распределения  позволяет выявить элементы, образующие доход отдельного человека. Сюда относятся: различного рода вознаграждения за свой вклад в производство, т.е. заработная плата, проценты за ссуженный капитал, дивиденды, выплачиваемые за акции  компаний, промышленные, торговые и  сельскохозяйственные прибыли, а также  полученные доходы, не связанные с  вкладом в производство (пенсии, пособия по безработице, помощь семьи, наследство и др.). Величина вознаграждения зависит от объема производимых услуг, нормы их оплаты; обстоятельств, регулирующих распределение различных источников производительных услуг среди членов общества (например, частной собственности  на средства производства); обстоятельств, влияющих На политику перераспределения  доходов.

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

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

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

Неравенство доходов критиковалось  и осуждалось во все времена. В  начале XX в. во всех странах получила развитие политика перераспределения  доходов, направленная на более справедливое распределение национального дохода. [8]

    1. Характеристика модели распределения богатства.

Эта модель исходит из модели Epstein & Axtell "Sugarscape". В ней используется зерно вместо сахара. Каждое пятно имеет конкретное количество зерен и их свойства (количество зерна  может расти). Люди собирают зерна с пятен и едят их, чтобы выжить. Количество зёрен, которое каждый человек съедает, является его богатством.

Модель начинается с примерно равного распределения богатства. Люди блуждают по земле и собирают столько зерна, сколько возможно. Каждый человек пытается двигаться в направлении, где находится большинство зёрен. Каждый временной промежуток каждый человек ест определенное количество зерна. Это количество называется метаболизмом. У людей также есть время жизни. Когда их продолжительность жизни заканчивается или они исчерпывают всё зерно, они умирают и производят потомство. Потомство имеет случайный метаболизм и случайное количество зерна, в пределах от количества зерна, которым обладает самый бедный человек к количеству зерна, которым обладает самый богатый человек. (Нет никакого наследования богатства).

Чтобы наблюдать справедливость (или несправедливость) распределения богатства, используется графический инструмент, названный кривой Lorenz. Мы ранжируем население по его богатству и затем составляем график процента населения, которму принадлежит каждый процент богатства (например, 30 % богатства принадлежат 50 % населения). Следовательно диапазоны на обоих осях от 0 % до 100 %.

Для числового измерения  неравномерности распределения богатства используется индекс Джини (или коэффициент Джини), полученный из кривой Лоренца.

 

 

Элементы управления моделью.

percent-best-land определяет начальную плотность пятен, на которых посажено максимальное количество зкрна. Этот максимум изменяется через переменную MAX-GRAIN  в процедуре SETUP в окне процедур. grain-growth-interval определяет, как часто зерно растет. num-grain-grown устанавливает, какое количество зерна растёт за интервал, который определяется сдвигом GRAIN-GROWTH-INTERVAL. NUM-PEOPLE определяет начальное число людей. life-expectancy-min – минимальная продолжительность жизни населения. life-expectancy-mAX – максимальная продолжительность жизни населения. metabolism-max устанавливает максимально возможное количество зерна, которое человек может съесть за определённый момент времени. MAX-VISION - самое далекое возможное расстояние, на которое может видеть человек.

Объектно-ориентированное программирование. 2