Collaboration Assignment_problem
The Assignment problem can be described as the problem of finding an assignment of clients to servers, such that
each client is assigned to exactly one server,
exactly one client is assigned to each server,
and the total cost that of all assignment is minimised.
Diagram
Assignment_problem
Process ClientProcess
<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 >
Task SendRequestTask
The task creates a message containing the instance identifier of the client and waits until the message is delivered to a server.
<bpmn2:extensionElements >
<bpmnos:messages >
<bpmnos:message name ="Message" >
<bpmnos:content attribute ="instance" key ="ClientId" >
</bpmnos:content >
</bpmnos:message >
</bpmnos:messages >
</bpmn2:extensionElements >
Process ServerProcess
<bpmn2:extensionElements >
<bpmnos:status >
<bpmnos:attributes >
<bpmnos:attribute id ="Timestamp" name ="timestamp" type ="decimal" >
</bpmnos:attribute >
<bpmnos:attribute id ="ClientAttribute" name ="client" type ="string" >
</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 >
Task ReceiveRequestTask
The task waits for a message from a client. When the message is received, it looks up the cost of the assignment in the table costs.csv and sets the cost attribute accordingly.
<bpmn2:extensionElements >
<bpmnos:messages >
<bpmnos:message name ="Message" >
<bpmnos:content attribute ="client" key ="ClientId" >
</bpmnos:content >
</bpmnos:message >
</bpmnos:messages >
<bpmnos:status >
<bpmnos:attributes >
<bpmnos:attribute id ="Attribute_20a021k" name ="cost" objective ="minimize" type ="decimal" weight ="1" >
</bpmnos:attribute >
</bpmnos:attributes >
<bpmnos:operators >
<bpmnos:operator expression ="cost := costs(client,instance)" id ="Operator_2ldkdhd" >
</bpmnos:operator >
</bpmnos:operators >
</bpmnos:status >
</bpmn2:extensionElements >
DataStoreReference DataStoreReference_13uqyvh
<bpmn2:extensionElements >
<bpmnos:tables >
<bpmnos:table id ="Table_1" name ="costs" source ="costs.csv" >
</bpmnos:table >
</bpmnos:tables >
</bpmn2:extensionElements >