One or more computer-readable non-transitory storage media storing one or more sequences of stored program instructions which, when executed using a computing system, cause the computing system to:
- receive input data comprising an order to provide a quantity of one or more finished goods to a site through an acyclic supply chain network, the one or more finished goods each comprising one or more raw materials;
- access information that defines an architecture of the acyclic supply chain network comprising a plurality of sites connected by a plurality of path fragments, wherein a path fragment defines a movement of a sub-quantity of the one or more finished goods or the one or more raw materials between two sites of the plurality of sites;
- decompose the acyclic supply chain network into one or more sub-networks and one or more sub-sites by extracting and generating one or more clusters of finished goods based on a raw material connection, wherein the raw material connection is based on a common raw material shared between two or more finished goods, and generating a sub-network for each of the one or more clusters of finished goods;
- remove one or more invalid path fragments of the plurality of path fragments, wherein an invalid path fragment is removed to reduce a number of possible paths in the acyclic supply chain network to fulfill the order;
- assign a first weight value to each site in the one or more sub-networks and the one or more sub-sites;
- determine one or more starting sites from the one or more sub-networks and one or more sub-sites of the acyclic supply chain network after the decomposing, and assigning a second weight value to each of the one or more starting sites, wherein second weight values of the one or more starting sites are summed up to assign a third weight value for each neighboring site that is different from the one or more starting sites in each sub-site of the one or more sub-sites, wherein the second weight values of the one or more starting sites and the third weight value of each neighboring site are summed up iteratively;
- determine whether iterations of summing up the second weight values of the one or more starting sites and the third weight value of each neighboring site are less than or exceeding number of path fragments;
- in response to determining that the iterations are exceeding the number of path fragments, determine whether the one or more sub-sites have different weights after iterative summations;
- in response to determining that the one or more sub-sites have different weights, select a sub-site with a larger weight value as a starting site and removing one or more path fragments originating from a receiving site with a lowest weight value to remove one or more loops;
- remove one or more path fragments that comprises a subset of the plurality of path fragments for each path solution that connect two or more sites of the plurality of sites in a recursive or circular manner by removing the one or more loops exclusively between two sites of the plurality of sites, detecting one or more elementary circuits in one or more path solutions and removing the one or more elementary circuits by determining a quantity of elementary circuits associated with each path fragment of an initial subset of the one or more path fragments, and removing the one or more path fragments associated with a larger quantity of elementary circuits from the one or more path solutions;
- release computing memory associated with one or more revised path fragments corresponding to the one or more invalid path fragments, and the one or more loops;
- generate, based on the one or more revised path fragments, one or more revised path solutions each comprising a revised subset of the plurality of path fragments by adjusting the sub-quantity of the one or more finished goods or the one or more raw materials associated with one or more path fragments of the initial subset of the plurality of path fragments;
- output the one or more revised path solutions for display on a client device.