BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Assignment problem

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>