LINUX.ORG.RU

Имитационное моделирование в MapSim

 , ,


0

0

По свободной лицензии LGPL вышел симулятор MapSim, который позволяет моделировать динамические системы. MapSim использует собственный высокоуровневый язык моделирования, который поддерживает многие стандартные математические функции, а также оперирует такими элементами как интегралы (резервуары), конвейеры, потоки и т.п. Этот язык подходит для описания задач системной динамики (System Dynamics).

В комплект входит библиотека, написанная на .NET/Mono. Есть очень простой клиент для WinForms, который запускается в Windows и Linux. Этот клиент позволяет загружать модели, интегрировать их, а затем сохранять результаты симуляции в виде CSV файла.

В реальности возможности библиотеки гораздо шире – ее использует полноценная среда моделирования с удобным графическим интерфейсом. Поэтому приветствуются желающие доработать существующий клиент WinForms. Также очень интересен порт клиента на Gtk#, чтобы приложение выглядело как родное для среды Gnome.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

Так это не замена GPSS, это для других целей, насколько я понял

anonymous
()
Ответ на: комментарий от anonymous

Это же самодельный язык программирования. А на чём кроме .NET можно так легко и непринуждённо клепать самодельные языки?

anonymous
()
Ответ на: комментарий от anonymous

Язык самодельный, но создан на основе имеющихся (Berkeley-Madonna, Stella, Vensim, ...).

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymous

.NET используется по историческим причинам... (движку MapSim более четырех лет), но он оказался очень кстати. MapSim генерирует симуляции, которые выполняются очень быстро. Фактически по исходной задаче создается симулятор на .NET, который затем компилируется и исполняется. Дальше JIT делает свое дело. Скорость симуляции высокая.

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

Ну, я и говорю - .net - идеальная VM для таких задач. Устал уже убеждать местных красноглазых дурачков, у которых на .net аллергия.

anonymous
()

> В комплект входит библиотека, написанная на .NET/Mono

Здесь об этом лучше не упоминать.

> приветствуются желающие доработать существующий WinForms клиент

Вы действительно ошиблись сайтом!

anonymous
()
Ответ на: комментарий от anonymous

Gtk# имеет к линуксу самое прямое отношение.

dave ★★★★★
() автор топика

а теперь благородные доны позвольте прервать ваши поцелуи, и один маленький вопрос...

как это запустить в дебиане?

крайне желательна инструкция, раз вы все жаждете что бы кто то что то сказал про ваше творчество.

anonymous
()
Ответ на: комментарий от anonymous

>Ну, я и говорю - .net - идеальная VM для таких задач. Устал уже убеждать местных красноглазых дурачков, у которых на .net аллергия.

ну я так понимаю можно например использовать всё, что умеет генерить конечные автоматы... тот же autofsm
а атк же можно любую VM использовать

anonymous
()
Ответ на: комментарий от anonymous

> всё, что умеет генерить конечные автоматы...

Надо не просто генерить, а динамически вгружать и выполнять.

> а атк же можно любую VM использовать

Их, "любых", не так уж и много. Есть LLVM, но она сложная, есть JVM, она убогая. .NET конечно же не венец творения, но как минимум хороший баланс возможностей предоставляет. И, что важно, для практически любых задач Mono более чем достаточно, так что вопли про "зависимость от микрософта" красноглазая плесень может оставить при себе.

anonymous
()
Ответ на: комментарий от anonymous

> крайне желательна инструкция, раз вы все жаждете что бы кто то что то сказал про ваше творчество.

Я запускал в Ubuntu. Требуется gmcs-mono и поддержка winforms. Запускается командой

mono MapSim.WinForms.exe

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Вот точные названия убунтовских пакетов:

---

mono-gmcs (для движка)

libmono-winforms2.0-cil (для клиента)

---

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

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

Понял, спасибо за идею

Вообще-то там в PDF написано, что MapSim - это движок уже существующей системы. То есть графическое представление как бы есть. Но идея сделать графвиз беспорно интересна.

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> Ну, я и говорю - .net - идеальная VM для таких задач. Устал уже убеждать местных красноглазых дурачков, у которых на .net аллергия.

Ну а ява чем плоха для этого? Или тот же parrot в перспективе?

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

> Ну а ява чем плоха для этого?

Убожеством VM, существенно ограничивающим класс языков, которые можно эффективно компилировать. Вот, например, те же автоматы - их так удобно изобразить в виде одного большого куска кода с кучей goto. На .net элементарно, на jvm быстро упираешься в идиотское ограничение на размер метода.

> Или тот же parrot в перспективе?

Эта херня вообще для динамических языков, никакого интереса не представляет для вычислительных задач.

anonymous
()
Ответ на: комментарий от dave

Это то ли он и есть, то ли его клон (довольно удачный).

sv75 ★★★★★
()
Ответ на: комментарий от dave

Не, там был гон про хвостовые вызовы. Как раз хвостовые вызовы в .net бесполезны, поскольку производительность у них никакая, кривая реализация с трамплином и CPS будет в разы быстрее.

.net рулит простотой байткода (никаких тебе swap-ов и прочих ужасов), боксингом/анбоксингом (value types) и switch-ем.

.net не рулит отсутствием class gc, но это не всегда страшно.

anonymous
()
Ответ на: комментарий от anonymous

Приветствую!

Про goto тоже было. Почему-то это и запомнилось.

Кстати, отсутствие class gc для данной задачи вызывает некоторый напряг. В случае MapSim это не так актуально, так как не ее ответственность, а вот в случае родительского приложения дела обстоят не так хорошо. Хотя для десктопного, т.е. несерверного, приложения вполне терпимо смериться с тем, что каждая новая генерация будет понемногу уменьшать память. А иначе получили бы оверхед из-за пересылки данных между разными application domain.

dave ★★★★★
() автор топика
Ответ на: комментарий от sv75

>У вас тоже преподаватели не открыли для себя SimPy?

зато они открыли написание калькулятора с помощью визуал студии и mfc :)
куда им yacc, bison и т.д. прочитали для галочки, потом отправят на практику к корешам... будешь за маленькие деньги заниматься описанием бизнеспроцессов и прочей ерундой(и никуда не денешься, практических знаний мало, теоритических мало, только самостоятельное изучение) :(

p.s. самые полезные лекции про mpi и сети Петри
p.p.s. стыдно дипломом обладать, глядя на курсовые от товарища sv75 :)

dimon555 ★★★★★
()
Ответ на: комментарий от sv75

>> в универе использовал GPSS

> Windows-only (в настоящий момент) коммерческую систему, о которой помнят только в РФ (http://en.wikipedia.org/wiki/GPSS)? У вас тоже преподаватели не открыли для себя SimPy?

Куда катится этот мир. А ведь GPSS как язык раза так в два постарше, чем Windows.

Судя по материалам вузовской конференции, "свободный GPSS" пытаются сделать в Российском университете дружбы народов: http://www.telesys.pfu.edu.ru/science/prez_2008.html По ссылке можно найти кое-какие тезисы в PDF. Ничего более конкретного пока нет.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

> Куда катится этот мир. А ведь GPSS как язык раза так в два постарше, чем Windows.

И что с того? Пропиетарное, и видимо никому не нужное (с момента появления Simula) поделие.

> Судя по материалам вузовской конференции, "свободный GPSS" пытаются сделать в Российском университете дружбы народов

На Haskell? Ъ, респект, молодцы. Вот это и есть полезное применение GPSS -- написание его свободной реализации на haskell :)))

sv75 ★★★★★
()
Ответ на: комментарий от dave

> mono MapSim.WinForms.exe

Виндузятникики неискоренимы. Казалось бы, да и фиг с ними. Но почему они непрерывным потоком лезут сюда???

anonymous
()
Ответ на: комментарий от anonymous

Выше явно написано, что интересует Gtk# клиент. Или просто красная тряпка под названием WinForms.exe так мешает жить?

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Кстати, у меня была попытка самостоятельно осилить Gtk# клиент, но я так и не разобрался, как в TextView поставить курсор в заданную позицию. Это нужно для указания места ошибки.

А вообще, даже WinForms клиент очень примитивный. Библиотека позволяет значительно больше. Полный интерактив.

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

RichText и выделять цветом?

Дёргать почём зря юзерский курсор - как бы малость нехигово.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.