С О Ц И Н Т Е Г Р У М http://socintegrum.ru/forum/ |
|
Software для моделирования сложных адаптивных систем http://socintegrum.ru/forum/viewtopic.php?f=6&t=92 |
Страница 1 из 3 |
Автор: | Artashir [ Вт янв 10, 2006 2:09 am ] |
Заголовок сообщения: | Software для моделирования сложных адаптивных систем |
Как оказалось, в настоящее время программное обеспечение для моделирования сложных адаптивных систем разрабатывается в мире весьма многими организациями. Эту тему я открыл специально для обсуждения отдельных программных продуктов. Прежде всего, дам ссылки на два обзора программных продуктов: http://www.geosimulation.org/geosim/abm ... rogramming и (новая ссылка): https://business-asset.com/eng/wiki-blo ... -3769.html а потом перейду к собственному опыту по работе с этими продуктами. Сразу хочу отметить, что большинство указанных в этих обзорах продуктов относятся либо к ПО с открытым кодом, либо к freeware. Это значит, что их можно совершенно бесплатно скачать из сети и установить на свой компьютер. Также хочу отметить, что большинство этих продуктов написаны на JAVA, и следовательно, для их работы необходима предварительная установка на свой компьютер виртуальной машины JAVA. Это можно сделать, зайдя по ссылке: http://www.java.com/en/ |
Автор: | Artashir [ Вт янв 10, 2006 2:35 am ] |
Заголовок сообщения: | |
Итак, первый продукт, который я загрузил, был Repast: http://repast.sourceforge.net/tutorials.html В качестве реализации адаптивного поведения используются клеточные автоматы, генетические алгоритмы и регрессионная модель. Программа Repast, судя по отзывам в Интернете, является весьма распространённой ввиду того, что она реализует несколько разных алгоритмов. Программный комплекс работает на основе Java. Демонстрационные примеры работают прекрасно, но ... техдокументацию я не понял. Разделы техдокументации How to Run a Simulation и How to use the GUI абсолютно понятны, но, начиная с раздела How ti Build a Model -1 у меня начались трудности. Описано, как написать программные строки, подключающие те или иные классы объектов, но я не нашёл то место, куда это всё следует записывать. Вроде как это само собой разумеется ... Я просмотрел все кнопочки на панелях этого программного продукта, но не нашёл места, куда записывается текст программ. Где именно там писать программный текст модели, я так и не разобрался. Пришлось переключиться на другие программные продукты ... Продолжение следует ... |
Автор: | Григорий [ Вт янв 10, 2006 11:53 am ] |
Заголовок сообщения: | |
Здравствуйте, Artashir. Это очень хорошая новость - то, что Вы начали эту тему. Я давно ищу пути компьютерного воплощения идеологии САС-МСП - моделирования. Первый шаг - это как раз выбор той платформы, в рамках которой наиболее удобно выразить принципы работы таких систем. Есть три трудности: 1) разработка алгоритмов функционирования таких Систем применительно к целям их компьютерной симуляции, 2) необходима хорошая квалификация в области программирования, 3) необходимо иметь время, чтобы всем этим заниматься. Я не являюсь профессиональным программистом. Конечно, это восполнимо, но нужно время, которого нет. Поэтому Ваше участие могло бы сдвинуть эту тему из области теоретических рассчетов в область компьютерного моделирования. Реализация такого проекта, я полагаю, очень полезное дело. Мое мнение - чтобы сдвинуть этот проект, нужно сформировать целую команду - коллектив профессионалов в разных областях (экономисты, математики, программисты, компьютерщики, статистики, историки...). Григорий. |
Автор: | Artashir [ Ср янв 11, 2006 12:35 am ] |
Заголовок сообщения: | |
Здравствуйте, Григорий. На сегодняшний день я твёрдо решил освоить моделирование САС именно в практической плоскости, так как это направление исследований меня очень заинтересовало. Дело в том, что ещё до того, как впервые услышал (от Вас) о наличии этого направления, я предполагал, что нечто подобное рано или поздно будет разработано - идея буквально носилась в воздухе. Причём к ней подходили одновременно специалисты совершенно разных направлений - экономисты, биологи и программисты. Оставалось лишь соединить разрозненные идеи разных наук в единое целое - и вот появилась методология САС. Однако задача стоит в том, чтобы не просто повторять методологические принципы данного направления, а строить модели на практике. А для этого нужно освоить какую-либо программную среду моделирования САС. Как я уже писал, к счастью, в настоящее время во всём мире такое программное обеспечение весьма активно разрабатывается и, что не менее важно, выкладывается в Сети. Короче, жизнь бьёт ключём. Я нашёл в Интернете около двух десятков соответсвующих программных продуктов, и начал их потихонечку исследовать. Как я уже отметил, Repast освоить мне не удалось - из-за того, что в техдокументации пропущены некоторые важные вещи, без которых ни одну собственную программу не запустить. Поэтому я перешёл к исследованию других пакетов. Цитата: Я не являюсь профессиональным программистом. Конечно, это восполнимо, но нужно время, которого нет. Поэтому Ваше участие могло бы сдвинуть эту тему из области теоретических рассчетов в область компьютерного моделирования. Реализация такого проекта, я полагаю, очень полезное дело. Я несколько лет работал именно программистом (на обычных алгоритмических языках). Кроме того, у меня есть опыт работы со специальными программными пакетами для реализации метода системной динамики (причём опыт давнишний). А системная динамика во многом похожа на методологию исследования САС. Так что освоить программный комплекс по моделированию САС для меня вполне возможно, и я полагаю, что совместными усилиями мы с Вами могли бы реализовать задумки, о которых Вы писали Выше. Цитата: Мое мнение - чтобы сдвинуть этот проект, нужно сформировать целую команду - коллектив профессионалов в разных областях (экономисты, математики, программисты, компьютерщики, статистики, историки...).
Надеюсь, что когда когда-нибудь найдутся люди, которым это было бы интересно. В какой-то степени здесь мог бы сыграть роль этот форум, если бы удалось привлечь к этой теме ещё людей. ... Григорий, к Вам вопрос по переводу. Вы не знаете, как перевести аббревиатуру GUI, которая встречается при описании практически любого программного продукта для моделирования САС. Ни в одно словаре не смог найти перевод, хотя по смыслу догадываюсь, что это нечто вроде главного меню программы. |
Автор: | Artashir [ Ср янв 11, 2006 12:57 am ] |
Заголовок сообщения: | |
Продолжаю обзор программных средств для моделирования САС. Вторым продуктом, который я исследовал, был swarm, сайт http://www.swarm.org На целом ряде сайтов очень хвалили эту систему, говорили, что она одна из самых известных, в частности, Repast заимствовал ряд идей Swarm. Проводятся даже периодические смотры-конкурсы программ для моделирования САС под эгидой swarm - так называемые SwarmFest. Увы, в практической плоскости здесь у меня дела обстояли у меня ещё хуже, чем с Repast - там, по крайней мере, удалось запустить программный комплекс, здесь же во всей совокупности файлов я нашёл лишь один исполняемый (на Java), и тот не инициировал каких-либо действий. К сожалению, я так и не смог разобраться с технической документацией, и поэтому не смог запустить программу. Скорее всего, как и в случае с Repast, я не понял каких-то самых простейших вещей. Поэтому пришлось пока отложить знакомство с этим интересным программным продуктом. |
Автор: | Artashir [ Ср янв 11, 2006 1:22 am ] |
Заголовок сообщения: | |
Третьей программой, которая привлекла моё внимание, была Sesam. http://www.simsesam.de/ Она вначале меня приятно удивила, так как к ней прилагалось подробнейшее техническое руководство, где по шагам было расписано, на какие кнопки в какой последовательности нажимать, чтобы произвести те или иные действия. Следует сказать, что составление модели в Сезаме построено на принципе визуального программирования. Это означает, что модель-программа создаётся путём выбора с помощью мыши отдельных пунктов меню на экране, а не через написание программного текста. Такой способ программирования в настоящее время считается более "прогрессивным" и удобным, хотя лично я предпочитаю просто писать текст на некотором языке и считаю для себя это гораздо более удобным. Ну ладно, к этой особенности продукта можно было бы приспособиться, дело не в этом. Просто, когда я начал строить модель в среде Сезам в строгом соответствии с приложенной инструкцией, в один прекрасный момент то, что я увидел на экране, стало отличаться от того, что изложено в инструкции. А именно, я строил агента - бегающую мышь (настоящую мышь, а не компьютерную), и не обнаружил в списке открывающихся функций - функции ChangeSpeedTo, которая должна была там быть, судя по руководству. Опять я что-то сделал не так. В итоге бедного мыша я так и не запустил . Хотя система, безусловно, красивая, и задумана как простая в использовании, так как не требует специальных программистских знаний. |
Автор: | Artashir [ Ср янв 11, 2006 2:01 am ] |
Заголовок сообщения: | |
Так я "прошёлся" более чем по десятку разных программных продуктов. Некоторые из них мне просто не удалось запустить, в некоторых техдокументация была недостаточно подробной, в некоторых я на определённом этапе сталкивался с препятствиями в их освоении, которые я не мог самостоятельно преодолеть, некоторые запускались нормально и были более-менее понятны, но не нравились мне по тем или характеристикам. Что ж, благо было из чего выбирать В итоге я по ряду признаков остановился на системе breve. Её сайт: http://www.spiderland.org/breve/ Пока я решил изучить более подробно именно эту систему, и начать штудировать её уже капитально. Обращаю также внимание, что на сайте breve есть форум, где можно задать вопросы по тем или иным техническим вохможностям программы, а также поделиться с другими участниками форума своими разработанными моделями. География участников форума самая широкая - Великобритания, Бельгия, Аргентина ... России нет. Адрес форума: http://www.spiderland.org/forums В ближайшее время я напишу об этой системе более подробно. |
Автор: | Гость [ Ср янв 11, 2006 7:58 pm ] |
Заголовок сообщения: | |
Спасибо, Artashir. Самая нужная и ценная информация - это как раз та, которую приобретаешь на собственном опыте. Вы делаете очень нужное и полезное дело - я в этом уверен. Рассказывайте, пожалуйста, подробно, в деталях, что получается и какие возникают проблемы. Это будет интересно всем, кто загладывает на наш форум. Относительно аббревиатуры GUI (Graphical User Interface) возможно, могут помочь эти ссылки: http://ods.com.ua/win/eng/program/java/ ... l/gui.html http://www.usability.ru/Articles/GUI_Term_Table.htm Удачи. Григорий. |
Автор: | Artashir [ Ср янв 11, 2006 11:18 pm ] |
Заголовок сообщения: | |
Григорий, спасибо за разъяснения про GUI. Теперь понятно, о чём идёт речь. Теперь, подробнее о программе breve. Программа breve разработана в 2001-2005 годах Джонатаном Клейном, сотрудничающим с Хэмпширским колледжом (штат Массачесетс, США) и Группой исследования сложных систем (Гётеборг, Швеция). Слово "бреве" означает или краткое папское послание, или значок краткости над гласными, или обозначение тактового размера в музыке... Программа предназначена, как сказано в техописании, для моделирования сложных многоагентных систем. Задаются правила поведения агентов в трёхмерной среде, а затем производится моделировние. В breve нашли применение следующие теоретические идеи: 1) Многоагентные системы (МАС); 2) "Искусственная жизнь", в том числе клеточные автоматы; 3) Эволюционные вычисления, в том числе генетические алгоритмы. 4) Нейронные сети. Это полный "джентльменский набор", который используется при моделировании САС. breve концептуально подобна таким известным пакетам для многоагентного моделирования, как Swarm и StarLogo. Черты программы breve, общие для неё и для других аналогичных систем МАС: 1) Задаются правила поведения агентов в некотором пространстве, включающие обучение, адаптацию к среде, взаимодействие друг с другом и т.д. 2) Используется несколько разных типов агентов, называемых классами. 3) В процессе моделирования перемещение агентов в пространстве и их взаимодействие друг с другом отображаются графически на специальном экране. Конкретные особенности программы breve, отличающие её от других подобных систем: 1) Агенты перемещатся в трёхмерном пространстве (во многих других системах пространство двухмерное). 2) И пространство, и время непрерывны (существует ряд систем, где они дискретны). 3) Используется не технология визуального программирования, когда пользователь выбирает с помощью мыши отдельные элементы графического интерфейса, а классическая технология программирования, когда пользователь просто пишет текст программы на некотором специальном языке. В качестве такого языка используется объектно-ориентированный язык steve, разработанный специально для применения в breve. 4) Для реализации эволюционных вычислений, в том числе генетических алгоритмов, используется ещё один специальный язык программирования - Push. 5) В отличие от многих других подобных систем, не используется язык JAVA. 6) Пользователь, являющийся опытным программистом, имеет возможность расширить возможности программы breve, добавляя в неё свои собственные программные модули, написанные на языках C или C++. 7) В систему встроены все три возможные технологии моделирования САС - искусственная жизнь, генетические алгоритмы и нейронные сети. В других системах могут быть встроены одна или две из этих технологий. 8) Дополнительно добавлены возможности моделирования различных процессов, происходящих с физическими телами, детектор взаимодействий агентов и ряд других специальных алгоритмов. |
Автор: | Artashir [ Ср янв 11, 2006 11:47 pm ] |
Заголовок сообщения: | |
Установка системы на компьютер. breve относится к программному обеспечению с открытым исходным кодом. Бесплатно загрузить версии программы для WINDOWS, LINUX Mac OS можно здесь: http://www.spiderland.org/breve/download.php Версия для WINDOWS поставляется в виде zip-файла. После скачивания на компьютер его нужно просто распаковать - и программа полностью готова к работе. Никаких дополнительных инсталляций не требуется. После распаковки zip-файла в корневой распакованной папке находится файл breveIDE.exe Программа запускается двойным щелчком мыши на этом файле. Техническая документация к программе находится в подпапке docs распакованной папки, и открывается при двойном щелчке мыши на файле index.html. Кроме того, необходимо скачать с сайта breve обзорный файл техдокументации http://www.spiderland.org/breve/breve.pdf |
Автор: | Artashir [ Чт янв 12, 2006 12:20 am ] |
Заголовок сообщения: | |
Азы работы с программой breve. При запуске программного файла breveIDE.exe появляется главное окно breve с горизонтальной строкой меню вверху, при нажатии на отдельные пункты этого меню открываются вертикальные подменю, как в WORD или EXCEL. Никаких пиктограмм и прочих элементов графического интерфейса - суровый аскетичный дизайн для программиста-профессионала. Для запуска демонстрационных примеров служит пункт главного меню Demos. В открывающемся списке вертикального меню открываются тот или иной демонстрационный пример. При выборе того или иного демонстрационного примера вначале открывается окно с текстом файла на языке steve, в котором находится данный демонстрационный пример. Чтобы запустить демонстрационный пример на выполнение, нужно нажать кнопку с треугольником в нижней части главного окна breve, чтобы окончить выполнение - кнопку с чёрным квадратом там же, чтобы сделать паузу - кнопку с двумя вертикальными полосками там же. Дополнительно могут быть открыты ещё два окна: Окно ObjectInspector открывается при выборе пункта ObjectInspector в разделе WINDOWS главного меню. Если окно не открывается, надо нажать на пункт меню ObjectInspector ещё раз. В данном окне отображается информация о текущем состоянии переменных и объектов программы во время моделирования. Окно Log WINDOWS открывается при выборе пункта Log WINDOWS в разделе WINDOWS главного меню. Если окно не открывается, надо нажать на пункт меню Log WINDOWS ещё раз. В данном окне содержится весь вывод программы, то есть вся алфавитно-цифровая (не графическая) информация, которая выдаётся операторами вывода, записанными в тексте программы на steve. В это же окно выдаётся сообщения об ошибках или предупреждения системы breve. Вся эта информация сохраняется в окне как в ходе выполнения программы, так и после окончания её выполнения. Если в тексте программы на steve нет операторов вывода и не было сообщений об ошибках или предупреждений системы breve, то окно Log WINDOWS может остаться чистым. |
Автор: | Artashir [ Чт янв 12, 2006 12:40 am ] |
Заголовок сообщения: | |
Азы работы с программой breve (продолжение). Создание собственных файлов с текстами программ на breve и их выполнение. Для создания собственного файла с текстом модели-программы на языке steve необходимо в пунке главного меню главного окна File выбрать подпункт New. После этого открывается окно текста модели-программы, куда и вводится весь текст программы на steve. После окончания ввода текста программы нужно в меню файл данного окна (не главного окна) выбрать пункт Save. Модель-программа сохраняется на винчестере в виде файла с расширением .tz . Кстати, в виде файлов с тем же расширением хранятся и файлы демонстрационных примеров. После того, как файл с нашей моделью-программой сохранён на винчестере, окно текста модели-программы можно закрыть. После того, как файл с нашей моделью-программой сохранён на диске, его можно в любой момент открыть, выбрав в главном меню главного окна breve пункт Open. Когда файл с текстом нашей модели-программы открыт, модель-программу можно запускать на выполнение, делать паузу, останавливать, просматривать содержимое окон ObjectInspector и Log WINDOWS точно так же, как и при выполнении демонстрационных примеров. |
Автор: | Artashir [ Чт янв 12, 2006 1:12 am ] |
Заголовок сообщения: | |
Ниже даётся перевод отрывка из техдокументации по программе breve, с моими краткими комментариями. При переводе специальных терминов использовались следующие значения слов: simulation - модель-программа (а не моделирование); instance - экземпляр (имеется в виду экземпляр класса объектов, одно из базовых понятий объектно-ориентированного программирования); bunch - совокупность. |
Автор: | Artashir [ Чт янв 12, 2006 1:13 am ] |
Заголовок сообщения: | |
Глава 3. Справочник по языку "Стив" Модели-программы в breve пишутся с использованием языка, который называется «Стив». Стив – это простой язык, который позволяет быстро создавать продвинутые модели-программы, избегая многих проблем, связанных с построением программ на других языках. ! Не отчаивайтесь ! Запись моделей-программ в Стиве в конечном счете весьма проста. Однако, из-за большого числа возможностей (features), предусмотренных системой программирования, эта документация может показаться время от времени чрезмерно трудной. Не паникуйте – смело используйте демонстрационные модели-программы, входящие в пакет, и не бросайте, если некоторые из возможностей, обсуждаемых здесь, будут трудны для понимания. «Стив» – объектно-ориентированный язык. Это значит, что программирование на «Стиве» представляет собой работу с компонентами, называемыми объектами, которые содержат данные (переменные) и действия (методы). В breve объекты могут быть либо real, что означает, что они имеют соответствие в моделируемом мире; либо abstract, что означает, что они используются для обработки данных или осуществления вычислений, но не имеют прообраза в моделируемом мире. Чтобы определить агенты и их действия, необходимо создать эти объекты и действия, используя язык "Стив". Язык описан в этой главе. Сначала рассматривается создание на Стиве классической программы «Привет, Мир» (Раздел 3.1). Затем приведена простая модель-программа трёхмерного мультиагентного моделирования, написанная на Стиве (Раздел 3.2). Этот пример демонстрирует основные идеи относительно того, что представляет собой моделирование в среде breve. Как отмечено выше, все агенты в моделируемом мире представляются через программные объекты. Эти объекты определяются в терминах объектных шаблонов, называемых классами. Самый важный объект, называемый Контроллером описан в разделе «Объект Контроллер» (Раздел 3.3). Раздел «Построение классов» (Раздел 3.4) описывает, как создавать основные классы в Стиве. Чтобы определять данные и действия для Ваших классов, Вы должны познакомиться с типами (Раздел 3.5) и выражениями (Раздел 3.6). В разделе «Управляющие конструкции моделей-программ» (Раздел 3.7) обсуждаются циклы и условные операторы. 3.1. Привет, Мир Традиционное введение в любой язык программирования – программа, которая многократно распечатывает текст «Привет, Мир!». Ниже это описывается на Стиве: @include "Control.tz" Controller HelloWorld. Control : HelloWorld { + to iterate: print "Привет, Мир!". } Спецификация будет рассмотрена более подробно в оставшейся части этой главы. Кратко, сначала мы объявляем, что объект «Контроллер моделирования» будет классом, который называется HelloWorld (строка 3). Затем мы создаём класс HelloWorld (строки 5-8), и как часть этого класса, мы определяем метод, названный iterate, (строка 6), который будет печатать текст «Привет, Мир!». Строка «include» (строка 1), просто сообщает breve, что нужно загрузить файл с именем «Control.tz», который включен в поставку пакета breve. Этот файл встроенного класса содержит описание класса, который является родительским классом для нашего контроллера «HelloWorld». Когда эта программа будет запущена, объект «Контроллер» будет создан, и метод iterate будет выполняться автоматически на каждом шаге моделирования. Итак, «Привет, Мир!». |
Автор: | Artashir [ Чт янв 12, 2006 1:15 am ] |
Заголовок сообщения: | |
Мой комментарий: текст "Привет, Мир" будет выдаваться в окне «LOG WINDOW». |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |