Commit 79d6fca0 authored by panos's avatar panos Committed by Jérome Perrin

Modify the already existing example (TwoServers) and add a new example ProductionLine

parent 2625d4c9
import json
def JSON_example(list1,list2):
jsonFile= open('JSON_example.json','r')
data = json.load(jsonFile)
jsonFile.close()
nodes=data.get('nodes',{})
for (element_id,element) in nodes.iteritems():
name=element.get('name')
scrapQuantity=element.get('scrapQuantity',{})
processingTime=element.get('processingTime',{})
if name =='P1':
scrapQuantity['mean']=str(list2['P1'])
processingTime['distributionType']=str(list1['P1']['distributionType'])
processingTime['mean']=str(list1['P1']['mean'])
processingTime['stdev']=str(list1['P1']['stdev'])
elif name=='P4':
scrapQuantity['mean']=str(list2['P4'])
processingTime['distributionType']=str(list1['P4']['distributionType'])
processingTime['mean']=str(list1['P4']['mean'])
processingTime['stdev']=str(list1['P4']['stdev'])
elif name=='P2':
scrapQuantity['mean']=str(list2['P2'])
processingTime['distributionType']=str(list1['P2']['distributionType'])
processingTime['mean']=str(list1['P2']['mean'])
processingTime['stdev']=str(list1['P2']['stdev'])
elif name=='P5':
scrapQuantity['mean']=str(list2['P5'])
processingTime['distributionType']=str(list1['P5']['distributionType'])
processingTime['mean']=str(list1['P5']['mean'])
processingTime['stdev']=str(list1['P5']['stdev'])
elif name=='P3':
scrapQuantity['mean']=str(list2['P3'])
processingTime['distributionType']=str(list1['P3']['distributionType'])
processingTime['mean']=str(list1['P3']['mean'])
processingTime['stdev']=str(list1['P3']['stdev'])
elif name=='P6':
scrapQuantity['mean']=str(list2['P6'])
processingTime['distributionType']=str(list1['P6']['distributionType'])
processingTime['mean']=str(list1['P6']['mean'])
processingTime['stdev']=str(list1['P6']['stdev'])
elif name=='P7':
scrapQuantity['mean']=str(list2['P7'])
processingTime['distributionType']=str(list1['P7']['distributionType'])
processingTime['mean']=str(list1['P7']['mean'])
processingTime['stdev']=str(list1['P7']['stdev'])
elif name=='P8':
scrapQuantity['mean']=str(list2['P8'])
processingTime['distributionType']=str(list1['P8']['distributionType'])
processingTime['mean']=str(list1['P8']['mean'])
processingTime['stdev']=str(list1['P8']['stdev'])
elif name=='P9':
scrapQuantity['mean']=str(list2['P9'])
processingTime['distributionType']=str(list1['P9']['distributionType'])
processingTime['mean']=str(list1['P9']['mean'])
processingTime['stdev']=str(list1['P9']['stdev'])
elif name=='P10':
scrapQuantity['mean']=str(list2['P10'])
processingTime['distributionType']=str(list1['P10']['distributionType'])
processingTime['mean']=str(list1['P10']['mean'])
processingTime['stdev']=str(list1['P10']['stdev'])
elif name=='P11':
scrapQuantity['mean']=str(list2['P11'])
processingTime['distributionType']=str(list1['P11']['distributionType'])
processingTime['mean']=str(list1['P11']['mean'])
processingTime['stdev']=str(list1['P11']['stdev'])
else:
continue
jsonFile = open('JSON_exampleOutput.json',"w")
jsonFile.write(json.dumps(data, indent=True))
jsonFile.close()
{
"nodes": {
"P1": {
"name": "P1",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"Q2A": {
"top": 0.7727272727272727,
"_class": "Dream.LineClearance",
"capacity": "2",
"name": "Q2A",
"left": 0.6968085106382979
},
"Q2B": {
"top": 0.7727272727272727,
"_class": "Dream.LineClearance",
"capacity": "2",
"name": "Q2B",
"left": 0.6968085106382979
},
"P4": {
"name": "P4",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"S1": {
"name": "Source",
"top": 0.9545454545454546,
"entity": "Batch",
"interarrivalTime": {
"distributionType": "Fixed",
"mean": "0.5"
},
"batchNumberOfUnits": 100,
"_class": "Dream.BatchSource",
"left": 0.6968085106382979
},
"QPa": {
"top": 0.7727272727272727,
"_class": "Dream.Queue",
"capacity": "3",
"name": "QPa",
"left": 0.6968085106382979
},
"QPr": {
"top": 0.7727272727272727,
"_class": "Dream.Queue",
"capacity": "3",
"name": "QPr",
"left": 0.6968085106382979
},
"P8": {
"name": "P8",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"QStart": {
"top": 0.7727272727272727,
"_class": "Dream.Queue",
"capacity": "-1",
"name": "StartQueue",
"left": 0.6968085106382979
},
"BDB": {
"name": "Batch_DecompositionB",
"top": 0.5909090909090908,
"processingTime": {
"distributionType": "Fixed",
"mean": "0"
},
"numberOfSubBatches": 4,
"_class": "Dream.BatchDecomposition",
"left": 0.4414893617021277
},
"P10": {
"name": "P10",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"P11": {
"name": "P11",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"E1": {
"top": 0.045454545454545414,
"_class": "Dream.Exit",
"name": "Stock",
"left": 0.2978723404255319
},
"P2": {
"name": "P2",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"P5": {
"name": "P5",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"Q3B": {
"top": 0.7727272727272727,
"_class": "Dream.LineClearance",
"capacity": "2",
"name": "Q3B",
"left": 0.6968085106382979
},
"Q3A": {
"top": 0.7727272727272727,
"_class": "Dream.LineClearance",
"capacity": "2",
"name": "Q3A",
"left": 0.6968085106382979
},
"BDA": {
"name": "Batch_DecompositionA",
"top": 0.5909090909090908,
"processingTime": {
"distributionType": "Fixed",
"mean": "0"
},
"numberOfSubBatches": 4,
"_class": "Dream.BatchDecomposition",
"left": 0.4414893617021277
},
"P9": {
"name": "P9",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"P7": {
"name": "P7",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"P6": {
"name": "P6",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"P3": {
"name": "P3",
"top": 0.5909090909090908,
"scrapQuantity": {
},
"processingTime": {
},
"failures": {},
"_class": "Dream.BatchScrapMachine",
"left": 0.4414893617021277
},
"QM": {
"top": 0.7727272727272727,
"_class": "Dream.Queue",
"capacity": "3",
"name": "QM",
"left": 0.6968085106382979
},
"BRB": {
"name": "Batch_ReassemblyB",
"top": 0.5909090909090908,
"processingTime": {
"distributionType": "Fixed",
"mean": "0"
},
"numberOfSubBatches": 4,
"_class": "Dream.BatchReassembly",
"left": 0.4414893617021277
},
"BRA": {
"name": "Batch_ReassemblyA",
"top": 0.5909090909090908,
"processingTime": {
"distributionType": "Fixed",
"mean": "0"
},
"numberOfSubBatches": 4,
"_class": "Dream.BatchReassembly",
"left": 0.4414893617021277
}
},
"_class": "Dream.Simulation",
"edges": {
"24": [
"QPa",
"PaB",
{}
],
"25": [
"PaA",
"E1",
{}
],
"26": [
"PaB",
"E1",
{}
],
"20": [
"QPr",
"PrB",
{}
],
"21": [
"PrA",
"QPa",
{}
],
"22": [
"PrB",
"QPa",
{}
],
"23": [
"QPa",
"PaA",
{}
],
"1": [
"QStart",
"BDA",
{}
],
"0": [
"S1",
"QStart",
{}
],
"3": [
"BDA",
"M1A",
{}
],
"2": [
"QStart",
"BDB",
{}
],
"5": [
"Q2A",
"M2A",
{}
],
"4": [
"M1A",
"Q2A",
{}
],
"7": [
"Q3A",
"M3A",
{}
],
"6": [
"M2A",
"Q3A",
{}
],
"9": [
"BRA",
"QM",
{}
],
"8": [
"M3A",
"BRA",
{}
],
"11": [
"M1B",
"Q2B",
{}
],
"10": [
"BDB",
"M1B",
{}
],
"13": [
"M2B",
"Q3B",
{}
],
"12": [
"Q2B",
"M2B",
{}
],
"15": [
"M3B",
"BRB",
{}
],
"14": [
"Q3B",
"M3B",
{}
],
"17": [
"QM",
"MM",
{}
],
"16": [
"BRB",
"QM",
{}
],
"19": [
"QPr",
"PrA",
{}
],
"18": [
"MM",
"QPr",
{}
]
},
"general": {
"maxSimTime": "1440",
"_class": "Dream.Configuration",
"confidenceLevel": "0.95",
"trace": "No",
"numberOfReplications": "1"
}
}
\ No newline at end of file
from StatisticalMeasures import BasicStatisticalMeasures
from DataManipulation import DataManagement
from DistributionFitting import DistFittest
from Example_CMSD import CMSD_example
from Example_JSON import JSON_example
from ExcelOutput import Output
from ReplaceMissingValues import HandleMissingValues
from ImportExceldata import Import_Excel
import xlrd
#================= Main script of KE tool =====================================#
#Read from the given directory the Excel document with the input data
workbook = xlrd.open_workbook('inputData.xls')
worksheets = workbook.sheet_names()
worksheet_ProcessingTimes = worksheets[1] #Define the worksheet with the Processing times data
worksheet_ScrapQuantity = worksheets[0] #Define the worksheet with the Scrap Quantity data
A=Import_Excel() #Call the Python object Import_Excel
ProcessingTimes= A.Input_data(worksheet_ProcessingTimes, workbook) #Create the Processing Times dictionary with keys the different stations in the line and values the processing times of different batches in these stations
ScrapQuantity=A.Input_data(worksheet_ScrapQuantity, workbook) #Create the Scrap Quantity dictionary with keys the different stations in the line and values the scrap quantity data of different batches in these stations
##Get from the Scrap Quantity dictionary the different keys and define the following lists with the scrap quantity data of the different stations in the topology
P7_Scrap = ScrapQuantity.get('P7',[])
P1_Scrap = ScrapQuantity.get('P1',[])
P2_Scrap= ScrapQuantity.get('P3',[])
P3_Scrap=ScrapQuantity.get('P3',[])
P8_Scrap=ScrapQuantity.get('P8',[])
P9_Scrap= ScrapQuantity.get('P9',[])
##Get from the Processing times dictionary the different keys and define the following lists with the processing times data of the different stations in the topology
P7_Proc = ProcessingTimes.get('P7',[])
P1_Proc = ProcessingTimes.get('P1',[])
P2_Proc= ProcessingTimes.get('P2',[])
P3_Proc=ProcessingTimes.get('P3',[])
P8_Proc=ProcessingTimes.get('P8',[])
P9_Proc= ProcessingTimes.get('P9',[])
#Call the HandleMissingValues object and replace with zero the missing values in the lists with the scrap quantity data
B=HandleMissingValues()
P7_Scrap= B.ReplaceWithZero(P7_Scrap)
P1_Scrap= B.ReplaceWithZero(P1_Scrap)
P2_Scrap= B.ReplaceWithZero(P2_Scrap)
P3_Scrap= B.ReplaceWithZero(P3_Scrap)
P8_Scrap= B.ReplaceWithZero(P8_Scrap)
P9_Scrap= B.ReplaceWithZero(P9_Scrap)
# #Call the BasicSatatisticalMeasures object
C=BasicStatisticalMeasures()
#Create a list with values the calculated mean value of scrap quantity on the different stations in the line
listScrap=[C.mean(P1_Scrap),C.mean(P2_Scrap),C.mean(P3_Scrap),C.mean(P1_Scrap),C.mean(P2_Scrap),C.mean(P3_Scrap),C.mean(P7_Scrap),C.mean(P8_Scrap),C.mean(P8_Scrap),C.mean(P9_Scrap), C.mean(P9_Scrap)]
F=DataManagement()
listScrap=F.round(listScrap) #Round the mean values of the list so as to get integers
dictScrap={}
dictScrap['P1']= listScrap[0]
dictScrap['P2']= listScrap[1]
dictScrap['P3']= listScrap[2]
dictScrap['P4']= listScrap[3]
dictScrap['P5']= listScrap[4]
dictScrap['P6']= listScrap[5]
dictScrap['P7']= listScrap[6]
dictScrap['P8']= listScrap[7]
dictScrap['P9']= listScrap[8]
dictScrap['P10']= listScrap[9]
dictScrap['P11']= listScrap[10]
#Create a tuple with the Processing times data lists of the different stations
a=(P1_Proc,P2_Proc,P3_Proc,P1_Proc,P2_Proc,P3_Proc,P7_Proc,P8_Proc,P8_Proc,P9_Proc,P9_Proc)
E=DistFittest() #Call the DistFittest object
dictProc={}
dictProc['P1']= E.ks_test(P1_Proc)
dictProc['P2']= E.ks_test(P1_Proc)
dictProc['P3']= E.ks_test(P1_Proc)
dictProc['P4']= E.ks_test(P1_Proc)
dictProc['P5']= E.ks_test(P1_Proc)
dictProc['P6']= E.ks_test(P1_Proc)
dictProc['P7']= E.ks_test(P1_Proc)
dictProc['P8']= E.ks_test(P1_Proc)
dictProc['P9']= E.ks_test(P1_Proc)
dictProc['P10']= E.ks_test(P1_Proc)
dictProc['P11']= E.ks_test(P1_Proc)
D=Output()
D.PrintDistributionFit(P2_Proc,"DistributionFittingResults_P2Proc.xls")
D.PrintStatisticalMeasures(P2_Proc, "StatisticalMeasuresResults_P2Proc.xls")
CMSD_example(dictProc,dictScrap) #Print the CMSD document, calling the CMSD_example method with arguments the dictProc and dictScrap dictionaries
JSON_example(dictProc,dictScrap)
<?xml version='1.0' encoding='utf8'?>
<CMSDDocument>
<DataSection>
<PartType>
<Identifier>Part1</Identifier>
</PartType>
<PartType>
<Identifier>UnfinishedPart1</Identifier>
</PartType>
<Resource>
<Identifier>S1</Identifier>
<Description>The source of the topology</Description>
<ResourceType>Source</ResourceType>
<Name>RawMaterial</Name>
</Resource>
<Resource>
<Identifier>M1</Identifier>
<Description>The lathe of the topology</Description>
<ResourceType>Machine</ResourceType>
<Name>Machine1</Name>
</Resource>
<Resource>
<Identifier>M2</Identifier>
<Description>The moulding machine of the topology</Description>
<ResourceType>Machine</ResourceType>
<Name>Machine2</Name>
</Resource>
<Resource>
<Identifier>Queue</Identifier>
<Description>The queue of the topology</Description>
<ResourceType>Queue</ResourceType>
<Name>Queue</Name>
</Resource>
<Resource>
<Identifier>Exit</Identifier>
<Description>The exit of the topology</Description>
<ResourceType>Exit</ResourceType>
<Name>Stock</Name>
</Resource>
<Resource>
<Identifier>A</Identifier>
<ResourceType>employee</ResourceType>
</Resource>
<Resource>
<Identifier>B</Identifier>
<ResourceType>employee</ResourceType>
</Resource>
<Resource>
<Identifier>Repairman</Identifier>
<Description>This element describes a class of employees</Description>
<ResourceType>employee</ResourceType>
<Name>W1</Name>
</Resource>
********************************Process Plan*****************************************************
<ProcessPlan>
<Identifier>ProcessPlan:Part1</Identifier>
<PartsProduced>
<Description>The part produced the process</Description>
<PartType>
<PartTypeIdentifier>Part1</PartTypeIdentifier>
</PartType>
<PartQuantity>1</PartQuantity>
</PartsProduced>
<PartsConsumed>
<Description>The part(s) consumed the process</Description>
<PartType>
<PartTypeIdentifier>UnfinishedPart1</PartTypeIdentifier>
</PartType>
<PartQuantity>1</PartQuantity>
</PartsConsumed>
<FirstProcess>
<ProcessIdentifier>MainProcessSequence</ProcessIdentifier>
</FirstProcess>
<Process>
<Identifier>MainProcessSequence</Identifier>
<RepetitionCount>1</RepetitionCount>
<SubProcessGroup>
<Type>sequence</Type>
<Process>
<ProcessIdentifier>A010</ProcessIdentifier>
</Process>
<Process>
<ProcessIdentifier>A020</ProcessIdentifier>
</Process>
<Process>
<ProcessIdentifier>A030</ProcessIdentifier>
</Process>
<Process>
<ProcessIdentifier>A040</ProcessIdentifier>
</Process>
<Process>
<ProcessIdentifier>A050</ProcessIdentifier>
</Process>
</SubProcessGroup>
</Process>
***********************************************Process************************************************
<Process>
<Identifier>A010</Identifier>
<Description>Process 1</Description>
<ResourcesRequired>
<Description>Source</Description>
<Resource>
<ResourceIdentifier>S1</ResourceIdentifier>
</Resource>
</ResourcesRequired>
<Property>
<Name>interarrivalTime</Name>
<Unit>minutes</Unit>
<Distribution>
<Name>Fixed</Name>
<DistributionParameter>
<Name>mean</Name>
<Value>0.5</Value>
</DistributionParameter>
</Distribution>
</Property>
<Property>
<Name>partType</Name>
<Value>Part</Value>
</Property>
</Process>
<Process>
<Identifier>A020</Identifier>
<Description>Process 2</Description>
<PartsProduced>
<Description>...</Description>
<PartType>
<PartTypeIdentifier>UnfinishedPart1</PartTypeIdentifier>
</PartType>
<PartQuantity>1</PartQuantity>
</PartsProduced>
<PartsConsumed>
<Description>...</Description>
<PartType>
<PartTypeIdentifier>UnfinishedPart1</PartTypeIdentifier>
</PartType>
<PartQuantity>1</PartQuantity>
</PartsConsumed>
<ResourcesRequired>
<Description>The employee performing the operation.</Description>
<Resource>
<ResourceIdentifier>A</ResourceIdentifier>
</Resource>
</ResourcesRequired>
<ResourcesRequired>
<Description>Machine1.</Description>
<Resource>
<ResourceIdentifier>M1</ResourceIdentifier>
</Resource>
</ResourcesRequired>
<OperationTime>
<Unit>minutes</Unit>
<Distribution>
<Name></Name>
<DistributionParameterA>
<Name></Name>
<Value></Value>
</DistributionParameterA>
<DistributionParameterB>
<Name></Name>
<Value></Value>
</DistributionParameterB>
</Distribution>
</OperationTime>
<Property>
<Name>MeanTimeToFailure</Name>
<Unit>minutes</Unit>
<Distribution>
<Name>Fixed</Name>
<DistributionParameter>
<Name>mean</Name>
<Value>60</Value>
</DistributionParameter>
</Distribution>
</Property>
<Property>
<Name>MeanTimeToRepair</Name>
<Unit>minutes</Unit>
<Distribution>
<Name>Fixed</Name>
<DistributionParameter>
<Name>mean</Name>
<Value>5</Value>
</DistributionParameter>
</Distribution>
<Property>
<Name>RepairmanRequired</Name>
<ResourcesRequired>
<Description>The employee performing the operation.</Description>
<ResourceIdentifier>W1</ResourceIdentifier>
</ResourcesRequired>
</Property>
</Property>
</Process>
<Process>
<Identifier>A030</Identifier>
<Description>Process 3</Description>
<ResourcesRequired>
<Description>Queue1.</Description>
<Resource>
<ResourceIdentifier>Q1</ResourceIdentifier>
</Resource>
</ResourcesRequired>
<Property>
<Name>capacity</Name>
<Value>1</Value>
</Property>
</Process>
<Process>
<Identifier>A040</Identifier>
<Description>Process 4</Description>
<PartsProduced>
<Description>...</Description>
<PartType>
<PartTypeIdentifier>UnfinishedPart1</PartTypeIdentifier>
</PartType>
<PartQuantity>1</PartQuantity>
</PartsProduced>
<PartsConsumed>
<Description>...</Description>
<PartType>
<PartTypeIdentifier>UnfinishedPart1</PartTypeIdentifier>
</PartType>
<PartQuantity>1</PartQuantity>
</PartsConsumed>
<ResourcesRequired>
<Description>The employee performing the operation.</Description>
<Resource>
<ResourceIdentifier>B</ResourceIdentifier>
</Resource>
</ResourcesRequired>
<ResourcesRequired>
<Description>Machine2.</Description>
<Resource>
<ResourceIdentifier>M2</ResourceIdentifier>
</Resource>
</ResourcesRequired>
<OperationTime>
<Unit>minutes</Unit>
<Distribution>
<Name></Name>
<DistributionParameterA>
<Name></Name>
<Value></Value>
</DistributionParameterA>
<DistributionParameterB>
<Name></Name>
<Value></Value>
</DistributionParameterB>
</Distribution>
</OperationTime>
<Property>
<Name>MeanTimeToFailure</Name>
<Unit>minutes</Unit>
<Distribution>
<Name>Fixed</Name>
<DistributionParameter>
<Name>mean</Name>
<Value>40</Value>
</DistributionParameter>
</Distribution>
</Property>
<Property>
<Name>MeanTimeToRepair</Name>
<Unit>minutes</Unit>
<Distribution>
<Name>Fixed</Name>
<DistributionParameter>
<Name>mean</Name>
<Value>10</Value>
</DistributionParameter>
</Distribution>
<Property>
<Name>RepairmanRequired</Name>
<ResourcesRequired>
<Description>The employee performing the operation.</Description>
<ResourceIdentifier>W1</ResourceIdentifier>
</ResourcesRequired>
</Property>
</Property>
</Process>
<Process>
<Identifier>A050</Identifier>
<Description>Process 5</Description>
<ResourcesRequired>
<Description>Exit.</Description>
<Resource>
<ResourceIdentifier>E1</ResourceIdentifier>
</Resource>
</ResourcesRequired>
</Process>
</ProcessPlan>
</DataSection>
</CMSDDocument>
\ No newline at end of file
{
"modelResource": [
{
"_class": "Dream.Repairman",
"capacity": "1",
"id": "W1",
"name": "W1"
}
],
"_class": "Dream.Simulation",
"coreObject": [
{
"name": "Raw Material",
"entity": "Part",
"interarrivalTime": {
"distributionType": "Fixed",
"mean": "0.5"
},
"successorList": [
"DummyQ"
],
"_class": "Dream.Source",
"id": "S1"
},
{
"predecessorList": [
"DummyQ"
],
"name": "Machine1",
"processingTime": {
},
"successorList": [
"Q1"
],
"failures": {
"MTTR": "5",
"failureDistribution": "Fixed",
"repairman": "W1",
"MTTF": "60"
},
"_class": "Dream.Machine",
"id": "M1"
},
{
"predecessorList": [
"Q1"
],
"name": "Machine2",
"processingTime": {
},
"successorList": [
"E1"
],
"failures": {
"MTTR": "10",
"failureDistribution": "Fixed",
"repairman": "W1",
"MTTF": "40"
},
"_class": "Dream.Machine",
"id": "M2"
},
{
"capacity": "1",
"name": "DummyQ",
"isDummy": "True",
"predecessorList": [
"S1"
],
"successorList": [
"M1"
],
"_class": "Dream.Queue",
"id": "DummyQ"
},
{
"capacity": "1",
"name": "Q1",
"isDummy": "False",
"predecessorList": [
"M1"
],
"successorList": [
"M2"
],
"_class": "Dream.Queue",
"id": "Q1"
},
{
"predecessorList": [
"M2"
],
"_class": "Dream.Exit",
"id": "E1",
"name": "Stock"
}
],
"general": {
"trace": "Yes",
"_class": "Dream.Configuration",
"numberOfReplications": "1",
"maxSimTime": "1440",
"confidenceLevel": "0.95"
}
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment