Collaboration Job_shop_scheduling_problem
Diagram
<bpmn2:extensionElements>
<bpmnos:attributes>
<bpmnos:attribute id="Makespan" name="makespan := 0" objective="minimize" type="decimal" weight="1">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmn2:extensionElements>
Process OrderProcess
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:attributes>
<bpmnos:attribute id="Timestamp" name="timestamp" type="decimal">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmnos:status>
</bpmn2:extensionElements>
DataObject DataObject_1xt50y3
<bpmn2:extensionElements>
<bpmnos:attributes>
<bpmnos:attribute id="Instance" name="instance" type="string">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmn2:extensionElements>
DataObject DataObject_1vrduku
<bpmn2:extensionElements>
<bpmnos:attributes>
<bpmnos:attribute id="Machines" name="machines" type="collection">
</bpmnos:attribute>
<bpmnos:attribute id="Durations" name="durations" type="collection">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmn2:extensionElements>
SubProcess JobActivity
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:attributes>
<bpmnos:attribute id="Index" name="index" type="integer">
</bpmnos:attribute>
<bpmnos:attribute id="RequestedMachine" name="machine := machines[index]" type="string">
</bpmnos:attribute>
<bpmnos:attribute id="Duration" name="duration := durations[index]" type="decimal">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmnos:status>
<bpmnos:loopCharacteristics>
<bpmnos:parameter name="index" value="index">
</bpmnos:parameter>
<bpmnos:parameter name="cardinality" value="count(machines[])">
</bpmnos:parameter>
</bpmnos:loopCharacteristics>
</bpmn2:extensionElements>
Task SendJobTask
<bpmn2:extensionElements>
<bpmnos:messages>
<bpmnos:message name="Request">
<bpmnos:parameter name="machine" value="machine">
</bpmnos:parameter>
<bpmnos:content attribute="instance" key="Order">
</bpmnos:content>
<bpmnos:content attribute="duration" key="Duration">
</bpmnos:content>
</bpmnos:message>
</bpmnos:messages>
</bpmn2:extensionElements>
Task NoticeJobCompletionTask
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:operators>
<bpmnos:operator expression="makespan := timestamp" id="OperatorMakespan">
</bpmnos:operator>
</bpmnos:operators>
</bpmnos:status>
<bpmnos:messages>
<bpmnos:message name="Completion">
</bpmnos:message>
</bpmnos:messages>
</bpmn2:extensionElements>
Process MachineProcess
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:attributes>
<bpmnos:attribute id="Timestamp" name="timestamp" type="decimal">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmnos:status>
</bpmn2:extensionElements>
DataObject DataObject_2xt50y3
<bpmn2:extensionElements>
<bpmnos:attributes>
<bpmnos:attribute id="Instance" name="instance" type="string">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmn2:extensionElements>
DataObject DataObject_0ukass4
<bpmn2:extensionElements>
<bpmnos:attributes>
<bpmnos:attribute id="Jobs" name="jobs" type="integer">
</bpmnos:attribute>
<bpmnos:attribute id="JobRequests" name="job_requests := 0" type="integer">
</bpmnos:attribute>
<bpmnos:attribute id="Machine" name="machine := instance" type="string">
</bpmnos:attribute>
</bpmnos:attributes>
</bpmn2:extensionElements>
Task WaitActivity
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:restrictions>
<bpmnos:restriction expression="job_requests == jobs" id="Restriction_1bttfjg" scope="exit">
</bpmnos:restriction>
</bpmnos:restrictions>
</bpmnos:status>
</bpmn2:extensionElements>
Event-SubProcess EventSubProcess
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:attributes>
<bpmnos:attribute id="JobDuration" name="duration" type="decimal">
</bpmnos:attribute>
<bpmnos:attribute id="JobOrder" name="order" type="string">
</bpmnos:attribute>
</bpmnos:attributes>
<bpmnos:operators>
<bpmnos:operator expression="job_requests += 1" id="OperatorJobRequests">
</bpmnos:operator>
</bpmnos:operators>
</bpmnos:status>
</bpmn2:extensionElements>
Task ConductJobTask
<bpmn2:extensionElements>
<bpmnos:status>
<bpmnos:operators>
<bpmnos:operator expression="timestamp += duration" id="Operator_3pf5m16">
</bpmnos:operator>
</bpmnos:operators>
</bpmnos:status>
</bpmn2:extensionElements>
Event CatchRequestMessage
<bpmn2:extensionElements>
<bpmnos:message name="Request">
<bpmnos:parameter name="machine" value="machine">
</bpmnos:parameter>
<bpmnos:content attribute="duration" key="Duration">
</bpmnos:content>
<bpmnos:content attribute="order" key="Order">
</bpmnos:content>
</bpmnos:message>
</bpmn2:extensionElements>
Event ThrowCompletionMessage
<bpmn2:extensionElements>
<bpmnos:message name="Completion">
<bpmnos:parameter name="recipient" value="order">
</bpmnos:parameter>
</bpmnos:message>
</bpmn2:extensionElements>