С О Ц И Н Т Е Г Р У М

цивилизационный форум
     На главную страницу сайта Социнтегрум      Люди и идеи      Организации      Ресурсы Сети      Публикации      Каталог      Публикатор_картинок
                       
 
Текущее время: Чт мар 28, 2024 10:43 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 12, 2006 1:34 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
3.2 Простой пример

«Привет, Мир» является очень простым примером, который можно привести для любого языка программирования. Этот пример, однако, не даёт никакого понимания, как писать на Стиве модели-программы для трёхмерного мультиагентного моделирования. В этом разделе представлен программный код для трёхмерного мультиагентного моделирования.

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


Приведённая ниже модель-программа очень подробно прокомментирована – все строки, начинающиеся с символа #, представляют собой комментарии, которые не производят выполнение программного кода, а разъясняют для пользователя, что делает модель-программа. Комментарии описаны более подробно ниже.
Данная ниже простая модель-программа показывает множество агентов, которые демонстрируют «случайное блуждание» в трёхмерном пространстве. То есть на каждом шаге моделирования агенты двигаются в случайном направлении.
#
# RandomWalker – это модель-программа, в которой шарики совершают
# случайные блуждания. Это очень простая модель-программа, которая
# может быть использована как каркас для более сложных моделей-программ.
#

# включение нескольких необходимых файлов, содержащих классы breve
@use Control.
@use Mobile.

# Прежде всего, сообщаем механизму breve имя нашего класса Контроллера

Controller myControl.

# Подкласс "Control" и определение нашего объекта "myControl".

Control : myControl {
# Здесь мы определяем класс variables.

+ variables:
walkerShape (object).

# Затем мы определяем метод, названный init. Метод init вызывается
# автоматически, когда создаётся наш класс. Так как это класс
# Контроллера, данный экземпляр класса создаётся, когда мы запускаем
# модель-программу,
# так что это точка входа для нашей модели-программы.

+ to init:
print "Установки модели-программы.".

self point-camera at (0, 0, 0) from (0, 60, 0).

# установка формы (Shape), которую будут использовать все объекты RandomWalker.

walkerShape = (new Sphere init-with radius 1).

# Создание совокупности объектов RandomWalkers. Вы можете создать их так мало
# или так много, как Вы пожелаете...

200 new RandomWalker.

# get-walker-shape – это метод, который позволяет другим объектам
# видеть переменную walkerShape. Мы осуществляем это так, чтобы каждый
# объект RandomWalker мог многократно использовать один и тот же объект Shape.
# Вообще говоря, это не обязательно – каждый RandomWalker мог бы создавать
# свою собственную копию того же самого Shape, но меньшее число объектов означает
# меньший объём используемой памяти и более эффективное моделирование, так что это -
# хорошая практика программирования.

+ to get-walker-shape:
return walkerShape.
}

# Объект "RandomWalker" – это физический объект в модели-программе,
# который осуществляет случайное блуждание. Это подкласс класса "Mobile".

Mobile : RandomWalker {
+ to init:
# Во время init, данный объект запрашивает контроллер относительно shape,
# которая должна использоваться. Затем она устанавливает для себя случайный цвет.

self set-shape to (controller get-walker-shape).
self set-color to random[(1.0, 1.0, 1.0)].

+ to iterate:
# Установка новой случайной скорости на каждом шаге моделирования.

self set-velocity to random[(60, 60, 60)] - (30, 30, 30).
}


Последний раз редактировалось Artashir Чт май 24, 2007 12:13 am, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 12, 2006 1:40 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
Мой комментарий. Данная модель может рассматриваться как простейшая модель идеального газа. В связи с предельной простотой ней отсутствуют такие традиционные составляющие моделей САС, как взаимодействие агентов друг с другом и изменение агентами своего поведения в процессе обучения.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 12, 2006 1:40 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
3.2.1 Комментарии
При записи программного кода на любом языке обычно бывает полезным включать в него комментарии, которые поясняют, какие действия производятся в соответствии с этим программным кодом. В Стиве имеется два способа включения комментариев в программный код. «Однострочный» комментарий начинается с символа "#" и продолжается до конца строки; «многострочные комментарии» пишутся, начиная с "#!", и заканчивая "!#". Несколько примеров обоих видов комментариев показаны ниже:

# Это простой однолинейный комментарий.

print "Это не комментарий..." # А это именно он.

#!
Это -
мультилинейный
комментарий
!#


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 12, 2006 1:41 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
3.3 Объект «Контроллер»
Объект «Контроллер» – это основа программирования в breve. Объект «Контроллер» – это единственный экземпляр, который действует как «босс» для модели-программы. Когда модель-программа стартует, это означает фактически – объект «Контроллер», который является ответственным за формирование и установки остальной части процесса моделирования. Объект контроллер – это единственный объект, который автоматически получает управление, когда модель-программа начинает выполняться. Если Вы привыкли программировать на C или на C++, Контроллер напоминает main function этих языков.
Первый шаг в написании модели-программы для breve – это создание класса контроллера, который будет задавать установки модели-программы и управлять процессом её выполнения. Классом контроллера, который Вы создаёте, должен быть подкласс класса Control или одного из его подклассов. Подробно о том, как это сделать, говорится в остальной части данной главы.
Как было показано в предыдущем разделе, объект контроллера располагается в начале Вашего программного файла с использованием слова controller:
Controller myControllerClass
Так системе breve сообщается, что нужно создать экземпляр класса myControllerClass, когда модель-программа начнёт выполняться. Этот объект контроллера будет создавать и делать установки для остальных объектов модели-программы. Данный объект контроллера делает это, реализуя установки модели-программы, заданные в методе init. Особенности построения классов и использования метода init описаны более подробно в остальной части этой главы.
В дополнение к установкам модели-программы, объект контроллера используется также как связка между объектами моделирования, механизмом breve и пользователем. В то время как другие экземпляры могут приходить и уходить, объект контроллера имеется в наличии всегда. Класс контроллера включает большое число методов для управления поведением модели-программы, графическим дисплеем и взаимодействием с интерфейсом пользователя. См. документацию по классу Control для более подробной информации. Как и с некоторыми из других вопросов, рассматриваемых в данном разделе, значения этих терминов станут более понятными при изучении остальной части документации.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 13, 2006 11:17 am 
Не в сети
Модератор
Модератор

Зарегистрирован: Сб сен 04, 2004 8:18 pm
Сообщения: 4431
Откуда: Санкт-Петербург
Здравствуйте, Artashir.

Такой вопрос - что Вы думаете о возможностях breave в плане "воплощения" принципов МСП-моделирования? Возможна ли алгоритмизация отношений "целое-часть" в обе стороны: 1) целое как состоящее из частей и 2) часть как конкретное проявление (определенная форма) целого. Я называю это - отношением "субстанциальности". Его примеры - системные качества на уровне отдельных агентов (например, сознание у человека). У Гегеля субстанциальное отношение представлено в виде диалектических триад, вложенных друг в друга. Так вот - как Вы полагаете - можно ли будет формализовать субстанциальное отношение? Так называемые эмерджентные свойства САС - лишь одна из сторон субстанциального отношения.

Меня это интересует, поскольку идеология МСП-моделирования опирается на алгоритмизацию субстанциального отношения.

Материал, который Вы даете - это очень интересно. Спасибо.

Григорий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн янв 16, 2006 3:05 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
Здравствуйте, Григорий.
Пока я нахожусь лишь на начальном этапе изучения языка Стив, и знаю только некоторые из его возможностей. Пока могу сказать лишь то, что всякая система представляется в breve состоящей из множества автономных агентов (целое как состоящее из частей). Кроме того, каждый агент может нести некоторые качества, присущие всей системе. Однако система в целом может проявлять и качества, не присущие ни одному из агентов.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 20, 2006 4:06 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
3.4 Формирование классов
Все объекты моделируемого мира соотносятся с программными объектами языка Стив. Чтобы определить агента моделируемого мира, Вы должны создать программный объект, или класс. Этот класс будет служить шаблоном, который определяет поведение агента. Этот раздел описывает, как создавать и использовать такие классы.
Раздел «Определение классов» (3.4.1) описывает, как определить пустой класс.
Все классы имеют два главных компонента: методы, которые определяют поведение класса, и переменные, которые определяют данные, относящиеся к данному классу. Эти данные могут содержать как информацию о состоянии агента, так и информацию, необходимую для вычислений. Раздел «Определение переменных» экземпляра (3.4.2) детализирует, как переменные можно добавить к объектам, в то время как раздел «Определение методов класса» (3.4.3) показывает, как определяются методы.
Два специальных метода являются ключевыми для поведения агентов: один, который вызывается автоматически при создании агента, init, и другой, который выполняется автоматически на каждом шаге моделирования, iterate. Эти методы, а также несколько других специальных методов, обсуждаются в разделе «Специальные имена методов (3.4.5).
Даже после того, как класс определён, он всё еще не будет присутствовать в процессе моделировании. Это потому, что класс – не что иное, как «шаблон» для агента. Чтобы включить агенты в процесс моделирования, Вы должны использовать форму создания экземпляров класса. Раздел «Создание и удаление экземпляров» (3.4.6) описывает, как экземпляры классов могут быть созданы и удалены.

3.4.1 Определение классов
При создании класса Вы обычно не начинается с нуля – вместо этого, Вы создаете новый класс как отпрыск существующего класса. Это называется созданием подкласса. При выделении подкласса, новый подкласс наследует все методы и переменные своего родительского класса. Такой подход означает, что большинство трудной работы будет проделано уже существующими классами breve, и мы можем просто исключить и настроить те аспекты поведения агента, которые нам необходимы.
Например, если мы формируем объект, который должен перемещаться в трёхмерном мире, мы хотели бы иметь объект, который понимает отношения между координатами, скоростью и ускорением. Вместо того, чтобы создавать такой класс самостоятельно, мы можем создать подкласс класса Mobile.tz, который включён в breve. Выбранный нами подкласс будет включать те действия, которые мы хотим в него заложить, в том время как родительский класс поддерживает подробности поведения.
При построении класса Вы должны прежде всего выбрать имя класса и его родительский класс. Родительский класс – это тот класс, от которого новый класс будет наследовать аспекты своего поведения. Классы, которые должны будут использоваться преимущественно для вычислений, и не требовать никаких специальных унаследованных аспектов поведения, будут обычно использовать универсальный корневой класс Object. Классы, которые перемещаются в пространстве, наследуют своё поведение от Mobile, в то время как неподвижные объекты в пространстве наследуют поведение от Stationary. Полный список классов дан в Приложении A.
Пустой класс обычно определяется следующим программным кодом на Стиве:
parent_class_name : class_name {

}
Поскольку мы часто имеем дело с классами в их множественной форме (подобно созданию многих экземпляров объекта), может быть полезным дать классу псевдоним, который позволит нам обращаться к классу в его множественной форме. Это не обязательно, но может сделать программу более лёгкой для чтения. Это псевдоним определяется путём добавления текста (aka alias_name) после имени класса.
В качестве примера определения класса, как с псевдонимом, так и без, рассмотрим класс, названный myMobile, который будет потомком класса Mobile:
# Сначала без псевдонима.

Mobile : myMobile {

}

# а теперь с псевдонимомом.

Mobile : myMobile (aka myMobiles) {

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

3.4.2 Определение экземплярных переменных класса
Экземплярная переменная – переменная, связанная с классом. Каждый экземпляр класса будет иметь свои частные копии экземплярных переменных класса.
Как только было написано объявление пустого класса, можно добавлять переменные, используя заголовок + variables, за котором следует список экземплярных переменных. Переменные перечисляются в формате variable_name (variable_type).
Имя переменной должно начинаться с символа, но последующие символы могут быть любыми алфавитно-цифровыми символами, так же как и символами _ и -.
Несколько переменных одного и того же типа могут быть также объявлены в одной и той же строке:
variable1, variable2, variable3, ... (variableType).
Типы переменных подробно описаны в разделе «Типы» (3.5).
В качестве примера, мы добавим несколько переменных к простому классу, который мы создавали в предыдущем разделе:
Mobile : myMobile {
+ variables:
myInt, myOtherInt (int).
myObject (object).
myFloat (float).


3.4.3 Определение методов
Самый простой метод, который можно вызвать в Стиве, – это вызвать метод, не имеющий никаких аргументов. Определить такой метод очень просто. Для этого мы создаём строку:
+ to methodName:
Операторы, которые следуют за этой строкой, будут частью только что определённого метода, и так до конца определения объекта, или до определения следующего метода.
Чтобы определить метод, который использует аргументы, мы должны будем записать ключевое слово, имя переменной и тип каждого аргумента. Ключевое слово идентифицирует переменную, когда она вызывается, в то время как имя переменной – то, как на переменную будут ссылаться внутри метода. Наконец, тип – это просто тип переменной, который будет ей придан. Данная информация располагается в следующем виде: keyword variable_name (type), так что метод, который имеет одну переменную, может быть определён следующей строкой:
+ to set-velocity to-value theValue (float):
Если метод использует две переменные, мы добавляем другую тройку ключевое слово/имя/тип:
+ to set-rotation of-joint theJoint (Object) to-value theValue (float):
Программный текст, связанный со вторым методом, тогда бы использовал переменные theJoint и theValue: "of-joint" и "to-value" – не действительные переменные, а применяемые вместо них ключевые слова, которые указывают, какие переменные следуют за ними.
Синтаксис вызова этого метода прост. После имени экземпляра и имени метода, мы даём список ключевых слов и значений, которые будут переданы им. Порядок следования пар ключевых слов / значений не влияет на то, как выполняется программа, хотя он может способствовать улучшению удобочитаемости программы. Следующие строки вызывают метод set-rotation, который мы определили выше:


# следующие строки эквивалентны

myObject set-rotation of-joint myJoint to-value 200.
myObject set-rotation to-value 200 of-joint myJoint.
Методы могут иметь также локальные переменные, связанные с ними. Вид определения таких переменных такой же, как и у определения переменной класса, за исключением того, что они следуют после строки определения метода, но не после строки определения переменной. Переменные метода автоматически обнуляются всякий раз, когда вызывается метод. Объявления переменных в методе должны предшествовать всем операторам в методе.
Например, вот простой метод, который использует локальные переменные:
+ to find-closest-creature in creatureList (list):
item (object).
closestItem (object).
distance (float).

# мы начинаем с необоснованного высокого значения"closestDistance" so that
#для того, чтобы мы были уверены, что найдётся что-нибудь ближе.

closestDistance = 1000000.

foreach item in creatureList: {
distance = |(self get-location) - (item get-location)|.

if distance < closestDistance: {
closestItem = item.
closestDistance = distance.
}
}

return closestItem.
Только для разработчиков
При изучении встроенных классов, включённых в поставку breve, Вы могли бы обратить внимание на некоторые методы, определённые с использованием знака «–», вместо знака «+»:
- to methodName:
Этот синтаксис просто означает, что метод должен считаться непубличным и что метод не должен быть задокументирован. Хотя эти методы функциональны, как и все остальные методы, их использование в пользовательских программах исключается.

3.4.4 Дополнительные аргументы методов
Определения методов могут также включать в себя спецификацию дополнительных аргументов. Дополнительные аргументы – это аргументы, которые имеют значения, присвоенные по умолчанию, и поэтому их необязательно описывать при вызове метода. Дополнительные аргументы могут очень упростить запись программы на Стиве.
Чтобы сделать аргумент дополнительным, Вы должны снабдить их значением, принимаем по умолчанию. Для этого Вы будете должны изменить определение аргумента, включив текст «= value» после имени аргумента. Например, переменной, названной theHeight с ключевым словом with-height можно было бы присвоить значение по умолчанию так: with-height theHeight = 100 (int). Значения по умолчанию для дополнительных аргументов должны быть литеральными (конкретными) значениями (а не выражениями или переменными).
Ниже – пример метода, определённого с набором дополнительных аргументов:
# Создание нового агента, с несколькими значениями по умолчанию.

+ to create-new-agent with-color color = (1, 0, 0) (vector)
with-energy energy = 100 (int)
with-radius radius = 10 (int)
with-name name = "agent" (string):
Метод, приведённый выше, можно вызвать множеством способов, произвольно включая или исключая каждый из аргументов:


# нет аргументов
self create-new-agent.

# некоторые из аргументов
self create-new-agent with-energy 10 with-name "Becky".

# все аргументы
self create-new-agent with-color (1, 1, 1)
with-energy 100
with-radius 20
with-name "Robert".

3.4.5 Специальные имена методов
Некоторые имена методов имеют специальное значение в Стиве, так как они вызываются автоматически в специальные моменты времени в ходе моделирования. Эти методы, в особенности init и iterate, являются ключевыми, поскольку они – точка входа для того, как Ваши агенты будут инициализированы и как они будут себя вести. Эти специальные имена методов выделены ниже:
init, если он существует, вызывается автоматически, когда создаётся экземпляр класса. Метод вызывается не только для класса, для которого создаётся экземпляр, но также и для его суперклассов и всех других предков вплоть до корневого объекта. Хотя Вы должны запускать метод init для Вашего класса, для которого устанавливается экземпляр, метод init не может быть вызван вручную.
iterate, если он существует, автоматически вызывается на каждой итерации breve-машины. Если Ваш класс должен решать задачу на каждой итерации, то Вы можете выбрать запуск метода iterate. Порядок, в соответствии с которым объекты в программе проходят каждую итерацию, не может контролироваться – если Вам необходимо контролировать порядок, в соответствии с которым выполняются действия, то используют iterate совместно с методом post-iterate, который описывается ниже.
В отличие от методов init и destroy, iterate не вызывается автоматически для суперклассов экземпляра. Это означает, что Ваш метод iterate должен вызывать iterate более высокого порядка, если Вы хотите присоединить метод iterate родительского класса. Это абсолютно необходимо для подклассов Control.
post-iterate, если он существует, автоматически вызывается на каждой итерации breve-машины после того, как метод iterate для всех объектов был вызван. Иногда желательно выполнять действия на каждой итерации, которые требуют данных, сформированных на той же самой итерации другими объектами. Если эти действия выполняются в методе iterate, то объект А не может быть уверен в том, что объект Б уже провёл соответствующие вычисления (и наоборот). Чтобы решить эту проблему, объекты могут запускать метод post-iterate, который автоматически вызывается, когда все объекты прошли итерацию. Демонстрационный пример PatchLife использует этот приём.
destroy, если он существует, вызывается автоматически, когда класс освобождается. Однако, в отличие от init, и так же, как для iterate, Вы должны явно вызывать метод destroy для класса более высокого порядка, если Вы хотите, чтобы он тоже был вызван. Если Ваш класс должен выполнить некоторые задачи прежде, чем быть аннулированным, Вы жолжны вызвать этот метод. Учтите, что Вам необходимо быть осторожными, чтобы не освободить объект, на который ссылаются в основном классе, если он необходим для метода destroy основного класса.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 20, 2006 11:39 am 
Не в сети
Модератор
Модератор

Зарегистрирован: Сб сен 04, 2004 8:18 pm
Сообщения: 4431
Откуда: Санкт-Петербург
Здравствуйте, Artashir.

Все это очень интересно. Существует ли возможность фиксировать тот факт, что каждый агент "видит" Мир по своему - раскладывает его своим способом, присущим только ему (по своему структурирует) и реагирует на базе именно такого разложения? Есть ли такая возможность в breve? Речь идет о моделировании "монадологического" подхода, предложенного Лейбницем. Тогда согласование монад - "предустановленная гармония" Лейбница - должно быть дополнительным блоком, который обеспечивает самосогласованность программы.

Цитата:
Чтобы определить агента моделируемого мира, Вы должны создать программный объект, или класс.


Цитата:
Этот класс будет служить шаблоном, который определяет поведение агента.


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


Как Вы полагаете - можно ли в этих рамках фиксировать структуру типа "множество монад" взаимосогласованных через некий набор правил "предустановленной гармонии"?

Григорий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн янв 30, 2006 4:46 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
Здравствуйте, Григорий.
На Ваш вопрос можно ответить кратко: можно в той мере, в какой вообще умозрительные философские построения переложимы на сухой язык математики...


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн янв 30, 2006 4:49 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
3.4.6 Создание и удаление экземпляров
Создание нового экземпляра объекта называется instantiating the object (русского эквивалента в виде одного слова термину instantiating нет). Создание нового экземпляра в Стиве осуществляется командой new. Она создаёт единичный новый объект, если (перед ней) не указано никакого числа, или столько объектов, сколько указано в целом числовом значении, стоящем перед данной командой. Синтаксис следующий:
new тип объекта.
целое число new тип объекта.
Если создаётся единичный объект, команда new возвращает тип объекта, если создаётся несколько объектов, они выдаются как список. Например:
myBird (object).
myBugs (list).

myBird = new Bird.
myBugs = 100 new Bugs.
Метод init автоматически вызывается для класса и всех его классов-предков (классов более высокого порядка), когда создаётся экземпляр класса.
Удаление экземпляров легко осуществить, используя команду free:
free instance.
Команда free применима как к единичным экземплярам, так и к спискам экземпляров.
Если экземпляр освобождает сам себя, то выполнение программного кода останавливается немедленно, как если бы за командой free следовала команда return.
Когда объект освобождается, автоматически вызывается метод destroy ждя данного экземпляра. До версии 1.9 метод destroy автоматически вызывался бы для всех классов более высокого порядка (суперклассов). Это больше не поддерживается – Вы должны вызывать «супер destroy», если Вы хотите, что был выполнен метод destroy для конкретного суперкласса.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 25, 2006 7:30 pm 
Не в сети
Модератор
Модератор

Зарегистрирован: Сб сен 04, 2004 8:18 pm
Сообщения: 4431
Откуда: Санкт-Петербург
Здравствуйте, Artashir.

Как продвигается Ваша работа в этой области? Я скачал breve но совсем не имею свободного времени. Удачи Вам в поисках.

Григорий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 26, 2006 4:10 am 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
Здравствуйте, Григорий !
К сожалению, моё изучение возможностей системы breve пока совсем не продвигается из-за недостатка времени. В ближайший месяц исходя из моего графика я вряд ли что-нибудь смогу делать именно с breve, потому что это требует довольно много времени на то, чтобы в ней вникать. С конца марта думаю продолжить.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 26, 2006 2:13 pm 
Затронутая здесь тема крайне интересна и полезна. Я по образованию экономист. Имел опыт программирования на нескольких языках. Попал сюда перекапывая интернет в поисках информации о компьютерном моделировании САС. Больше всего интересует потенциальная возможность подобных моделей для практического применеия (моделирование товарных рынков). Особенно интересует возможности и методы обработки "на лету" большого объёма поступающей информации. Какие подходы возможны при обработке и учёте постоянно возникающих косвенных факторов (новости, слухи, комментарии)?


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 28, 2006 8:17 pm 
Не в сети
Администратор форума
Администратор форума
Аватара пользователя

Зарегистрирован: Ср авг 25, 2004 12:26 am
Сообщения: 1050
Откуда: Москва
Методология САС предназначена для описания взаимодействия большого числа отдельных (локальных) систем. Каждая локальная система описывается примерно таким же образом, как это делается при обычном имитационном моделировании динамических объектов. Соль методологии САС - именно в том, что описывается взаимодействие нескольких систем или же большого числа систем (десятки, сотни, тысячи).
Поэтому методологию САС для моделирования товарных рынков считаю вполне применимой. Ведь рынок по определению - это система, состоящая из многих продавцов и многих покупателей. В традиционных микроэкономических моделях все продавцы объединены в некое абстрактное "предложение", а все продавцы - в абстрактный "спрос". А модель САС позволяет описать отдельного продвца или отдельного покупателя, а затем описать, к чему приводит взаимодействие многих продавцов и многих покупателей.
Цитата:
Особенно интересует возможности и методы обработки "на лету" большого объёма поступающей информации.

О какой именно информации идёт речь и что значит "обрабатывать на лету" ?
Цитата:
Какие подходы возможны при обработке и учёте постоянно возникающих косвенных факторов (новости, слухи, комментарии)?

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 29, 2006 4:39 pm 
Не в сети
Модератор
Модератор

Зарегистрирован: Сб сен 04, 2004 8:18 pm
Сообщения: 4431
Откуда: Санкт-Петербург
Здравствуйте, Алексей.

Практическое поле применения методологии САС, я убежден, огромное. Особенно, если традиционные методы моделирования САС по принципу "снизу-вверх" (на базе многоагентного моделирования, где закономерности макроуровня возникают из симулирования поведения агентов) - дополнить противоположным "сверху-вниз" подходом, опирающимся на МСП, в котором некоторые универсальные регулярности динамики САС как единого целого переносятся на уровень подсистем-САС, из которых рассматриваемая САС сама состоит.

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

Григорий.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron






Powered by phpBB2
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB