0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
1 | |
Создание временной диаграммы20.03.2016, 13:22. Показов 2396. Ответов 13
Метки нет (Все метки)
Мне для диплома необходимо создать модель функционирования объекта, состоящая из 29 состояний и порядка 260 переходов. Переход между ними я решил реализовать посредством Exit - Enter (для меня так показалось проще, т. к. изучаю программу самостоятельно)
Однако возник вопрос - как создать график вероятности нахождения объекта в одном из состоянии?! Суть в том, что состояния все разноплановые и вероятности определяются различными законами распределения. Можно ли создать базу данных для каждого состояние типа "Время - вероятность", а после эту базу перенести на временной график?
0
|
20.03.2016, 13:22 | |
Ответы с готовыми решениями:
13
Программа для создания временной диаграммы Создание круговой диаграммы брать данные для диаграммы из dataGridView1 ? Создание временной таблицы Создание временной страницы |
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
20.03.2016, 21:00 | 2 |
Добрый день.
Хорошо бы уточнить задачу. Что такое график вероятности? плотность вероятности вы имеете ввиду? Вам нужно узнать стационарные вероятности нахождения заявок в состояниях модели? Для этого как вы написали нужно узнать доли времени пребывания модели в каждом состоянии. Отношение времени в состоянии к общему времени моделирования и выдаст вероятность состояния. Лучше всего хранить данные по времени в состоянии в простом одномерном массиве. Могут понадобиться побочные массивы или переменные для хранения времени входа в состояние, чтобы можно было вычислить по выходу время пребывания. после вычисления время пребывания просуммировать в соотвествующий элемент матрицы, в зависимости от номера состояния.
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
20.03.2016, 21:52 [ТС] | 3 |
Попробую описать задачу: каждое состояние имеет свой закон распределения со своими параметрами распределения: экспонента, нормальный и гамма-распределение. В каждый момент времени система может из определенного состояния перейти в какое-либо i-ое состояние, естественно с определенной вероятностью, обусловленной законами распределения i-ых состояний и временем перехода.
В дипломе того года есть такая фраза, которая, как мне кажется, аналогична вашей "В ходе работы модели были посчитаны все девять вероятностей нахождения объекта в каждом из состояний, как частное времени нахождения объекта в одном из состояний и общего времени функционирования системы" Как это можно реализовать? И создать например не график, а базу данных, чтобы после график изобразить в Exel? Просто в том году видимо Exel применялся, а не Anylogic
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
21.03.2016, 15:51 | 4 |
Как узнать суммарное время в состояниях модели.
Первоначально можно создать переменные для каждого состояния, дать им осознанные имена. Также создать общую переменную времяВхода При входе в состояние описать действие - времяВхода=time(); // Запоминаем время входа в состояние При выходе из состояния нужно вычислить время в состоянии и добавить к переменной для получения общего времени в состоянии. double времяВСостоянии = time()-времяВхода; // Вычислили время активности состояния переменная в которой храним суммарное время в состоянии += времяВСостоянии; Вот и всё. далее можете избавиться от кучи переменных заменив их матрицей, читайте работу java с массивами. Хотя можно и обойтись теми коллекция что предлагает anylogic, в принципе тоже самое.
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
22.03.2016, 23:01 [ТС] | 5 |
Возник очередной вопрос, даже два:
1. Почему может быть такое различие в результатах при построении графика в Anylogic (1) и при сборе данных и построении в другой программе (2 и 3). Разница получается порядка +/- 0,1, т. е. порядка 10% 2. Возможно ли сделать график плавным? У меня сейчас идет сбор информации и соответственно скачок графика только при прохождении агента через состояние. Может переменную надо взять иную для расчет вероятности?
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
23.03.2016, 07:52 | 6 |
"Даже в самой простой и выверенной модели всегда найдётся хотя бы 1 ошибка" (с).
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
23.03.2016, 08:55 [ТС] | 7 |
Так суть в том, что программа одна и та же, но при построении графика она делает 44 прохода, а при исключении графика - 53, при этом имея разные значения
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
08.04.2016, 21:45 [ТС] | 8 |
Вроде разобрался с проблемой разности результатов - надо было больше дать время моделирования
Но теперь возникла проблема - у меня все блоки имеют размерность минуты, но для точности результата надо прогонять систему порядка 100 млн. минут. По скромны подсчетам, по мере продвижения эксперимента, это может занять больше 10 дней! Можно ли ускорить процесс как-нибудь?
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
10.04.2016, 07:24 | 9 |
100млн минут наверное много и разницы в оцениваемых величинах с 50млн и 20млн будет не более чем 1-2%. Время моделирования выбирают таким образом, чтобы после определённого установившегося значения, оно бы отклонялось не более чем на 1-5% от своего значения с течением длительного моделирования. Снять характеристики на 5 - 10 - 20 -30 млн, посмотреть динамику изменения оцениваемой величины - может и после 5 млн минут нет смысла моделировать и величина установилась.
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
10.04.2016, 12:15 [ТС] | 10 |
А можно попробовать сократить время задержки в каждом состоянии в одно и тоже число раз (допустим в 100 раз меньше) и в это же число раз уменьшить время моделирования. В принципе процесс не должен измениться. Что скажите?
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
10.04.2016, 12:29 | 11 |
Это игра с временем моделирования. Естественно ничего относительно не изменится, просто величины оцениваемых характеристик получите в других единицах и учтёте это при их анализе.
А вот уменьшится ли само время моделирования это конечно вопрос!\Модель без ошибок? Лишних перенаправлений зацикливаний нет? Верификация модели производилась? хотябы на уровне Window/Simulation Window/Block window и пошагового режима.
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
10.04.2016, 13:50 [ТС] | 12 |
Ввиду того, что мне нужны значения установившегося режима, то система, будучи проверенной на адекватность, придет в конечном итоге к постоянным значениям
Получается так, что моделирование 1000 ед. модельного времени составляет порядка 10 сек, поэтому надо пытаться сократить время моделирования путем вот таких модуляций
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
10.04.2016, 13:54 | 13 |
Реальное время моделирования в вашем случае 10 секунд определяется не столько временем моделирования 1000, сколько числом всяких математических и программных реализаций инструкций модели.
Сокращая 1000 вы должны сократить и время обслуживания, короче за теже реальные 10 секунд будет обработано столько же действий модели независимо от вашего модельного времени.
0
|
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 19
|
|
10.04.2016, 14:01 [ТС] | 14 |
В общем будем экспериментировать, и, надеюсь, что данный подход успешно реализуется
Спасибо за помощь
0
|
10.04.2016, 14:01 | |
10.04.2016, 14:01 | |
Помогаю со студенческими работами здесь
14
Создание временной таблицы Создание временной таблицы Создание временной задержки Создание окон в Pyhton с временной задержкой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |