Network Optimizer#

Warning

Included in Factory Personal and Factory Enterprise licenses.

The Network Optimizer balances a workload distributed over a network.

A typical example is distributing stock in logistics problems such as an inventory assignment.

The output of the task is:

  • the amount of material moved.

  • the amount of material remaining in the source location.

  • the amount of material now in the target location.

The task is made of two tabs:

  • the Options tab, where you customize the available options to obtain the desired output.

  • the Results tab, where you can visualize the computation results.


The Options tab#

The Options tab contains all the analysis characteristics you can customize. It is divided into three smaller tabs: the Basic tab, the Edges tab, the Nodes tab.

The Available attributes list, where the dataset’s attributes are displayed and ready for the analysis, is always displayed into the Options tab, no matter which tab you’re working on.

Basic tab

In the Basic tab, you can distinguish between three sections:

  • the attribute drop area, where you can drag the required attributes to start the analysis. The following settings are provided:
    • Source attributes: drag all the attributes defining the source. Instead of manually dragging them, they can be defined via a filtered list.

    • Destination attributes: drag all the attributes defining the destination. Instead of manually dragging them, they can be defined via a filtered list.

    • Source quantities (positive values): the attribute defining the initial quantity in the source. Its type must be numeral, and its values must be positive.

    • Cumulate source quantities when changing priority: if selected, the Source quantities will be cumulated when changing the priority.

    • Destination quantities (negative values): the attribute defining the required quantity in the destination node. Its type must be numeral, and its values must be negative.

    • Cumulate destination quantities when changing priority: if selected, the Destination quantities will be cumulated when changing the priority. It is selected by default.

  • a customization area, made of the following options:
    • Priority value: select the attribute defining the priority of the destinations to which the goods will be sent. Its type must be numeral. The value 1 indicates the highest priority, 2 a priority lower than 1, and so on.

    • Ascending values of the priority attributes refer to higher priorities: if selected, a higher value in the Priority value attribute indicates higher priority. (e.g.: if the Priority value ‘25’ has a higher priority than the Priority value ‘15’)

    • Append results: if selected, the results of this computation are appended to the dataset, otherwise they replace the results of the previous computations.

    • Merge results with original data: if selected, results will be included in the original dataset.

    • Maximum number of iterations: the maximum number of iterations during computation.

    • Deployment policy: select the deployment policy which defines how source quantities will be distributed to the destination nodes. Possible values are:

      • Move quantities even if request is not fulfilled (default): all the available source material will be moved.

      • Move quantities only if request is fulfilled: material will be sent to a destination only if its requirements are met. Otherwise, nothing will be sent.

      • Fair share among destinations: all the available source material will be shared between destinations, according to the proportions defined in the Attribute specifying fair share weight to be applied to destinations option, in the Nodes tab.

      • Do not exceed request: the source material to be sent will be less or equal to the quantities specified in the Destination quantities parameter. The request won’t be exceeded in any case, even if an Attribute for rounding value has been specified in the Edges tab.

    • Moved quantity will be rounded: if the Fair share among destinations value has been chosen for the Deployment policy option, this option appears con the interface.
      Select how the required demand will be rounded, if it is not a multiple of the rounding value. The possible values are:

      • Up: the demand will be rounded to the closest higher multiple of the rounding value.

      • Down: the demand will be rounded to the closest lower multiple of the rounding value.

      • Nearest: the demand will be rounded to the closest multiple of the rounding value.

Note

If there are two rows in the Source parameter which have the same values, but the two corresponding values are different from each other in the attribute associated with the Destination parameter, the Network Optimizer task considers both quantities associated with the different destinations, as it considers the maximum value among them as a value of source availability. Consequently, the different availability quantities can be then considered for different destinations, but they will refer to a common reference quantity.

Warning

Source and destination quantities when a priority is defined As the task moves on evaluating the subsequent priority users need to take into account that:

  • the values defined in the Source quantities are evaluated as they are, they are not considering any inventory left from the previous priority evaluation.

  • the values defined in the Destination quantities, instead, are summed with any inventory left from the previous priority evaluation.

Edges tab

In the Edges tab, you can define the clustering edges. The following options are provided:

  • Attribute for transport cost: select the attribute defining the cost of moving a unit of material from the source to the destination.

  • Attribute for maximum quantity to move: select the attribute that defines the maximum total number of units that can be moved between the source and destination at a time.

  • Attribute for rounding value: select the attribute that defines the minimum number of units that can be moved at a time. For example, three items may be required, but the items may only be available in blocks of ten.

  • Transport cost is independent of moved quantity: if selected, the cost of transport does not change with the quantity sent.

Nodes tab

In the Nodes tab, you can define the clustering nodes. The following options are provided:

  • Fixed cost of shipping from a source: specify the inherent cost of shipping from a source as a mathematical weight to be applied in calculating the best solution.

  • Fixed cost associated to each unfulfilled destination: specify the inherent cost of not fulfilling the requirements of a destination as a weight to be applied in calculating the best solution.

  • Attribute specifying cost for item for unfulfilled destination: select the attribute that defines the cost per unit of not satisfying destination requirements.

  • Attribute specifying fair share weight to be applied for destinations: select the attribute that defines the proportional quantity of material that will be sent to the specific destination, if the Fair share among destinations option is selected.

  • Default value for the remainder cost (<0 for choosing maximum cost): the default value used for the remainder cost when the corresponding attribute is not specified or its value is missing. The default value is ‘-1’, meaning that the remainder cost is more than any other transport cost.

  • Raise an error if the remainder cost is not provided: if selected, the software raises an error if the remainder cost attribute is not present.


The Results tab#

The Results tab provides information on computation. It is divided into two sections:

  • the General Info section, where you can find the following information:
    • the Task Label, which is the task’s name on the interface.

    • the Elapsed time, which indicates how long it took to complete the computation.

    • the Optimum value of the cost function, indicating the ideal cost.


Example#

The following example uses the Inventory assignment dataset.

  • After having imported the dataset, right-click on the import task and select Take a look to check the dataset has been correctly imported.

  • The dataset contains 6 rows, where each row corresponds to a source - destination link.

  • Each source may have multiple destinations, and each destination may have multiple sources. There is a separate row for each possible combination. However, the quantities (Src_qty, and Dest_qty) must always be the same for each source and destination.

  • The Max Load value, on the other hand, can vary as it depends on the specific source - destination combination.

  • The Data Manager task displays the available dataset for:
    • 3 sources (SRC-AA, SRC-BB and SRC-CC) and

    • 3 destinations (DEST-XX, DEST-YY and DEST-ZZ).

https://cdn.rulex.ai/docs/Factory/network-optimizer-example-1.webp
  • In the Basic tab configure the following options:
    • Source attributes > Src

    • Destination attributes > Dest

    • Source nodes quantiles (positive values) > Src_qty

    • Destination nodes quantiles (negative values) > Dest_qty

    • Deploy policy > Move quantities only if request is fulfilled

    • Merge results with original data > selected.

  • Leave the other options with their default values.

https://cdn.rulex.ai/docs/Factory/network-optimizer-example-2.webp
  • In the Edges tab configure the following options:
    • Attribute for maximum quantity to move > Max Load

    • Attribute for rounding value > Rounding

  • Leave the other options with their default values.

https://cdn.rulex.ai/docs/Factory/network-optimizer-example-3.webp
  • In the Nodes tab leave the options with their default values.

  • Save and compute the task.

https://cdn.rulex.ai/docs/Factory/network-optimizer-example-4.webp
  • Right-click on the Network Optimizer task and select Take a Look to see the results. Alternatively, you can link a Data Manager to the task.

https://cdn.rulex.ai/docs/Factory/network-optimizer-example-5.webp

Network optimizer with priorities

The following example uses the Network Optimizer dataset.

  • After having imported the dataset, add a Network Optimizer task to the flow and link it to the import task.

  • Double-click on the Network Optimizer task and configure it as follows:
    • Source attributes: Source (Basic tab)

    • Destination: Destination (Basic tab)

    • Source quantities: Source_qty (Basic tab)

    • Destination quantities: Dest_qty (Basic tab)

    • Priority value: Priority (Basic tab)

    • Attribute for maximum quantity to move: Max quantity (Edges tab)

    • Attribute for rounding value: Rounding value (Edges tab)

  • Save and compute the task.

https://cdn.rulex.ai/docs/Factory/nop-example-1.webp
  • Add a Data Manager task to the flow and link it to the Network Optimizer task.

  • The results can be read as follows, considering the Priority value 1, so the first three rows of the dataset:
    • The new(Source_qty) attribute, which has been created by the task, contains the information on the quantity of goods left at the source.

    • The new (Dest_qty) attribute, which has been created by the task, contains the number of missing goods to satisfy the demand at the destination (as the value is negative). As the task accumulates the destination quantities, the result -21 means that, starting from a Dest_qty value of -725, the task cumulated the 64, 512, 128 moved values to the source -725 value.

    • The moved attribute, which has been created by the task, contains the total number of goods moved from the source to the destination.

  • Considering the Priority value 33, the results can be read as follows:
    • The new(Source_qty) attribute, which has been created by the task, contains the information on the quantity of goods left at the source. In this case, it is 670, which means that there are 670 units left at the source, while 704 units have been moved to the destination. No more than 704 units can be moved, as the rounding value is 64, and 704 is the 64 multiple which best satisfies the demand.

https://cdn.rulex.ai/docs/Factory/nop-example-2.webp