DREAM: пример простого сервера ManPy не работает

Я пытаюсь запустить механизм моделирования ManPy. Я установил все зависимости и установил модуль DREAM. Теперь я пытаюсь запустить пример простого сервера с веб-сайта ManPy (http://www.manpy-simulation.org). ):

from dream.simulation.imports import Source, Queue, Machine, Exit  
from dream.simulation.Globals import runSimulation

#define the objects of the model 
S=Source('S1','Source',interarrivalTime={'distributionType':'Fixed','mean':0.5}, entity='Dream.Part')
Q=Queue('Q1','Queue', capacity=1)
M=Machine('M1','Machine', processingTime={'distributionType':'Fixed','mean':0.25})
E=Exit('E1','Exit')  

#define predecessors and successors for the objects    
S.defineRouting(successorList=[Q])
Q.defineRouting(predecessorList=[S],successorList=[M])
M.defineRouting(predecessorList=[Q],successorList=[E])
E.defineRouting(predecessorList=[M])

# call the runSimulation giving the objects and the length of the experiment
runSimulation(objectList=[S,Q,M,E], maxSimTime=1440.0)

# calculate metrics
working_ratio = (M.totalWorkingTime/1440.0)*100 

#print the results
print "the system produced", E.numOfExits, "parts"
print "the total working ratio of the Machine is", working_ratio, "%"'

Ожидаемый результат, согласно сайту

система произвела 2880 деталей

общий рабочий коэффициент машины составляет 50,0 %

Но в отличие от этого, когда я выполняю скрипт, я получаю утверждение:

система произвела 1440 деталей

общий рабочий коэффициент машины составляет 0,0 %

Количество произведенных деталей — это просто максимальное время моделирования в секундах.

Любые предложения или кто-то с той же проблемой?


person MEVIS3000    schedule 05.04.2017    source источник


Ответы (1)


Это связано с тем, что ManPy API был обновлен для более гибкого объявления дистрибутивов. Документация на веб-сайте (я полагаю, http://www.manpy-simulation.org/? ), никогда не обновлялся, и действительно, план состоит в том, чтобы сделать больше примеров (см. Ссылку на PDF I ниже), когда будет найдено время.

Правильный код этого примера находится здесь: https://lab.nexedi.com/nexedi/dream/blob/master/dream/simulation/Examples/SingleServer.py

Так что нет:

processingTime={'distributionType':'Fixed','mean':0.25}

но: processingTime={'Fixed':{'mean':0.25}}

Как правило, мы указываем тип распределения как ключ внешнего словаря и все параметры во внутреннем словаре.

Обновленная версия документации (к сожалению, все еще в формате PDF, а не в формате html) находится здесь: https://lab.nexedi.com/nexedi/dream/blob/master/ManPy_documentation.pdf. Это содержит больше примеров.

Пожалуйста, сообщите, если это не работает

person george    schedule 19.04.2017