Fast planning heuristic for batch and interactive planning

A system and method is disclosed for incremental planning using a list based heuristic. The system includes a database storing supply chain entity data and a server system coupled with the database. The server system receives demand for one or more end items from one or more of the supply chain entities within a supply chain network and collapses the supply chain network into one or more flowpaths for each of the one or more end items. The server system also sorts the one or more flowpaths based on one or more rules or parameters stored in the database and reduces the one or more flowpaths using constraints stored in the database. The server system further generates a supply chain plan by solving the received demand using a list based heuristic stored in the database and communicates the generated supply chain plan to the one or more supply chain entities.

TECHNICAL FIELD OF THE INVENTION

This invention relates generally to supply chain planning, and more particularly to incremental planning using a list based heuristic.

BACKGROUND OF THE INVENTION

A supply chain plan describes items to be procured and operations to be performed by entities within a supply chain network, in order to deliver products, goods, or services to another entity within the supply chain network. Typically, an entity collects data for the supply chain plan and runs an optimization algorithm during a specified time interval (i.e., daily, weekly), to produce the supply chain plan. However, traditional optimization algorithms require a representation of the complete supply chain plan in memory, which is a latency and is undesirable because it wastes valuable time resources in creating a huge in memory model of the complete supply chain.

In addition, in order to generate an optimal supply chain plan, traditional optimization algorithms traverse the supply chain data by backward and forward propagating along all the paths stored in memory. This traversal is repeated unnecessarily for each pass of the optimization algorithm, which is a latency and is undesirable. In addition, because of the complexity and the amount supply chain data stored in memory, a typical run-time for generating an optimal supply chain plan may be, for example, 10-12 hours. Once the supply chain plan is generated, the entity distributes the supply chain plan to other entities within the supply chain network and then repeats the process during the next specified time interval.

However, shortly after, if not immediately after, the supply chain plan is generated and distributed to the other entities within the supply chain network, various perturbations (i.e., changes or events) often occur that renders the generated supply chain plan infeasible. Such perturbations may include, for example, new demands, changes in capacity, changes in inventory, and the like. In addition, because the supply chain plan is only generated during specified time intervals and the run-time is significant in duration (i.e., 10-12 hours), the entity is not able to re-optimize, or otherwise adjust the supply chain plan to a state of feasibility, until the next specified time interval.

As a result, conventional efforts to re-optimize or otherwise adjust the supply chain plan to a state of feasibility, often involves ad hoc changes that are not optimal. In addition, conventional efforts to reduce the duration of the run-time are disadvantageous, because the speed of optimization is typically incompatible with the quality of the optimization. That is, these conventional efforts to reduce the duration of the run-time adversely affect the quality of the adjustments to the supply chain plan. This inability to reduce the duration of the run-time and to re-optimize or otherwise adjust the supply chain plan to a state of feasibility, based on these perturbations is undesirable.

SUMMARY OF THE INVENTION

A system for incremental planning using a list based heuristic is disclosed. The system includes a database storing supply chain entity data and a server system coupled with the database. The server system is configured to receive demand for one or more end items from one or more of the supply chain entities within a supply chain network and collapse the supply chain network into one or more flowpaths for each of the one or more end items. The server system is further configured to sort the one or more flowpaths based on one or more rules or parameters stored in the database and reduce the one or more flowpaths using constraints stored in the database. The server system is still further configured generate a supply chain plan by solving the received demand using a list based heuristic stored in the database and communicate the generated supply chain plan to the one or more supply chain entities.

A method providing incremental planning using a list based heuristic is disclosed. The method provides for receiving demand for one or more end items from one or more of the supply chain entities within a supply chain network and collapsing the supply chain network into one or more flowpaths for each of the one or more end items. The method further provides for sorting the one or more flowpaths based on one or more rules or parameters stored in the database and reducing the one or more flowpaths using constraints stored in the database. The method still further provides for generating a supply chain plan by solving the received demand using a list based heuristic stored in the database and communicating the generated supply chain plan to the one or more supply chain entities.

A computer-readable medium embodied with software enabling incremental planning using a list based heuristic is disclosed. The computer-readable medium receives demand for one or more end items from one or more of the supply chain entities within a supply chain network and collapses the supply chain network into one or more flowpaths for each of the one or more end items. The computer-readable medium further sorts the one or more flowpaths based on one or more rules or parameters stored in the database and reduces the one or more flowpaths using constraints stored in the database. The computer-readable medium still further generates a supply chain plan by solving the received demand using a list based heuristic stored in the database and communicates the generated supply chain plan to the one or more supply chain entities.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made to the following detailed description of the preferred and alternate embodiments. Those skilled in the art will recognize that the present invention provides many inventive concepts and novel features, that are merely illustrative, and are not to be construed as restrictive. Accordingly, the specific embodiments discussed herein are given by way of example and do not limit the scope of the present invention.

FIG. 1illustrates an exemplary system100according to a preferred embodiment. System100comprises a supply chain planner110, supply chain network120, a network130, and communication links132and134a-134n. Although a single supply chain planner110, a single supply chain network120, and a single network130, are shown and described; embodiments contemplate any number of supply chain planners110, any number of supply chain networks120, and/or any number of networks130, according to particular needs. In addition, or as an alternative, supply chain planner110may be integral to or separate from the hardware and/or software of any one of the supply chain networks120.

In one embodiment, supply chain network120includes one or more supply chain entities120a-120n. As an example only and not by way of limitation, one or more entities120a-120nrepresents suppliers, manufacturers, distribution centers, retailers, and customers in supply chain network120. A supplier may be any suitable entity that offers to sell or otherwise provides one or more materials to one or more manufacturers. A manufacturer may be any suitable entity that manufactures at least one end item. A manufacturer may use one or more materials during the manufacturing process to produce an end item. In this document, the phrase “end item” may refer to any manufactured, fabricated, assembled, or otherwise processed item or product. An end item may represent an item ready to be supplied to, for example, another one of the one or more entities120a-120nsuch as a supplier, an item that needs further processing, or any other item. A manufacturer may, for example, produce and sell an end item to a supplier, another manufacturer, a distribution center, a retailer, a customer, or any other suitable person or entity. A distribution center may be any suitable entity that offers to sell or otherwise distributes at least one end item to one or more retailers or customers. A retailer may be any suitable entity that obtains one or more end items to sell to one or more customers.

Although a suppliers, manufacturers, distribution centers, retailers, and customers are described as separate and distinct entities within supply chain network120, the same person or entity can simultaneously act as a supplier, manufacturer, distribution center, retailer and/or customer. For example, one or more entities120a-120nacting as a manufacturer could produce an end item, and the same entity could act as a supplier to supply a material to another manufacturer. In addition, or as an alternative, supply chain network120illustrates one example supply chain or operational environment of the invention. Other environments and/or supply chains may be used without departing from the scope of the present invention.

In one embodiment, system100provides a supply chain plan that describes the flow (i.e., paths or flowpaths) of one or more items or one or more end items, such as, for example, materials, products, components, and resources through supply chain network120or other supply chain planning environments associated with system100. As described below, supply chain planner110collapses supply chain network120ofFIG. 3into one or more flowpaths to incrementally adjust the supply chain plan using a list based heuristic.

In addition, or as an alternative, supply chain planner110also incrementally adjust the supply chain plan to a state of feasibility and/or optimality due to perturbations (i.e., perturbations to plan execution data) in the supply chain plan inputs relative to a previous supply chain planning session. For example, the perturbations in the supply chain inputs may include, but are not limited to, new unforecasted orders, new orders, changes to existing orders or forecasts, changes to in-transit shipments, changes to work in progress or work in process, changes in inventory, new capacity, reduced capacity, changes to external supply, and the like. In addition, according to one example, these perturbations (i.e., changes or events) may be classified into categories such as, for example, supply changes, inventory changes, capacity changes, demand changes, and the like. Although example categories of perturbations are described, embodiments contemplate any type of perturbations, changes, events, or categories of perturbations, changes, and/or events, according to particular needs.

In one embodiment, supply chain planner110is coupled with network130using communications link132, which may be any wireline, wireless, or other link suitable to support data communications between supply chain planner110and network130during operation of system100. One or more entities120a-120nin supply chain network120are coupled with network130using communications links134a-134n, which may be any wireline, wireless, or other link suitable to support data communications between supply chain network120and network130during operation of system100. Although communication links132and134a-134nare shown as generally coupling supply chain planner110and supply chain network120to network130, supply chain planner110and supply chain network120may communicate directly with each other, according to particular needs.

In another embodiment, network130includes the Internet and any appropriate local area networks (LANs), metropolitan area networks (MANS), or wide area networks (WANs) coupling supply chain planner110and supply chain network120. For example, data may be maintained by supply chain planner110at one or more locations external to supply chain planner110and one or more entities120a-120nof supply chain network120and made available to one or more associated users of supply chain network120using network130or in any other appropriate manner. Those skilled in the art will recognize that the complete structure and operation of communication network130and other components within system100are not depicted or described. Embodiments may be employed in conjunction with known communications networks and other components.

FIG. 2illustrates supply chain planner110ofFIG. 1in greater detail in accordance with the preferred embodiment. Supply chain planner110comprises a computer202, a server210, a database220, and workflows230. Server210comprises one or more planning engines212and one or more solvers214. Although server210is shown and described as comprising one or more planning engines212and one or more solvers214, embodiments contemplate any suitable engine, solver, or combination of engines and/or solvers, according to particular needs.

Database220comprises one or more databases or other data storage arrangements at one or more locations, local to, or remote from, server210. Database220may be coupled with server210using one or more local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), network130, such as, for example, the Internet, or any other appropriate wire line, wireless, or other links. Database220stores data that may be used by server210. Database220includes, for example, rules and parameters222, constraints224, policies226, and plan data228. Although database220is shown and described as including rules and parameters222, constraints224, policies226, and plan data228, embodiments contemplate any suitable information or data, according to particular needs.

In one embodiment, supply chain planner110operates on one or more computers202that are integral to or separate from the hardware and/or software that support system100. Computers202include any suitable input device, such as a keypad, mouse, touch screen, microphone, or other device to input information. An output device conveys information associated with the operation of supply chain planner110and supply chain network120, including digital or analog data, visual information, or audio information. Computers202include fixed or removable computer-readable storage media, such as, for example, magnetic computer disks, CD-ROM, or other suitable media to receive output from and provide input to system100. Computers202include one or more processors and associated memory to execute instructions and manipulate information according to the operation of system100.

In one embodiment, the memory associated with one or more computers202comprises any of a variety of data structures, arrangements, and/or compilations configured to store and facilitate retrieval of information. The memory may, for example, comprise one or more volatile or non-volatile memory devices. Although the memory is described as residing within one or more computers202, the memory may reside in any location or locations that are accessible by one or more computers202or the one or more processors. The memory receives and stores information related to supply chain planning operations of system100. The one or more processors, processes information stored in the memory and performs supply chain planning operations for supply chain network120. The memory may store and the one or more processors may process any suitable information to perform supply chain planning operations in system100.

Although a single computer202is shown inFIG. 2, supply chain planner110and one or more entities120a-120nof supply chain network120may each operate on separate computers202or may operate on one or more shared computers202. Each of these one or more computers202may be a work station, personal computer (PC), network computer, notebook computer, personal digital assistant (PDA), cell phone, telephone, wireless data port, or any other suitable computing device.

In an embodiment, one or more users may be associated with supply chain planner110and/or one or more entities120a-120nof supply chain network120. These one or more users may include, for example, a “planner” handling planning and/or one or more related tasks within system100. In addition, or as an alternative, these one or more users within system100may include, for example, one or more computers202programmed to autonomously handle planning and/or one or more related tasks within system100.

Server210may support one or more planning engines212which generate supply chain plans based on inputs received from one or more planners and/or database220, as described more fully below. Plan data328, within database220, may include data representing supply chain plans generated by one or more planning engines212and may be used by planners within system100, according to particular needs. In general, a planning cycle may include a supply chain planning session and a period of time separating the supply chain planning session from a subsequent supply chain planning session. Supply chain planner110, and in particular, server210, stores and/or accesses various rules, parameters, constraints, policies, planning data, flowpaths, flowpath lists, and workflows associated with supply chain network120.

As discussed above, supply chain planner110collapses supply chain network120into one or more flowpaths to incrementally adjust the supply chain plan using a list based heuristic. In addition, as discussed above, supply chain planner110may incrementally adjust the supply chain plan, during the period of time separating the supply chain planning sessions to a state of feasibility and/or optimality due to perturbations (i.e., perturbations to plan execution data) in the supply chain plan inputs relative to a previous supply chain planning session. In addition, as discussed above, these perturbations may be classified into categories, wherein each category of change may include a library of rules and parameters222and policies326for inducing different behavior based on the perturbations.

In one embodiment, one or more planning engines212generates one or more flowpaths, supply pictures, and demand pictures to incrementally adjust the supply chain plan. In another embodiment, one or more planning engines212generate one or more workflows230to incrementally and optimally adjust the supply chain plan. As an example only and not by way of limitation, workflows230include, a planning in increments with time advance workflow, a planning in increments with no time advance workflow, and/or any other suitable workflow that incrementally adjusts the supply chain plan to a state of feasibility and/or optimality due to perturbations in the supply chain plan inputs.

The planning in increments with time advance workflow may be invoked to evaluate or prescribe perturbations as a result of execution changes relative to a previous supply chain plan. In addition, or as an alternative, the planning in increments with time advance workflow is invoked where the perturbations (i.e., changes in demand, supply, inventory, and the like) occur during the period of time separating the supply chain planning sessions. The effect of these perturbations is superimposed on the previous supply chain plan to generate a new supply chain plan (i.e., an incremental adjustment of the previous supply chain plan). That is, the perturbations (i.e., changes in demand, supply, inventory, and the like) and the planning data associated with a previous supply chain plan are reconciled, to generate a new supply chain plan.

The planning in increments with no time advance workflow may be invoked to evaluate incremental changes which occur during the period of time separating the supply chain planning sessions, in situ. That is, a user associated with supply chain network120may consider the effect of different changes or events on an existing supply chain plan, such as, for example, during a what-if situation. Although examples of workflows230are described, workflows230may include any suitable workflow that incrementally adjusts the supply chain plan to a state of feasibility and/or optimality due to perturbations in the supply chain plan inputs during the period of time separating the supply chain planning sessions.

In one embodiment, one or more solvers312solve a limited cluster of problems associated with the perturbations in the supply chain inputs relative to the previous supply chain planning session. That is, each solver within each of the one or more solvers312focuses on only one kind of change or event that occurs during the period of time separating the supply chain planning sessions. In addition, or as an alternative, the actions taken by one or more solvers312with respect to the change or event may be dependent on that particular change or event. For example, if a user associated with one or more entities120a-120nof supply chain network120cancels an order, then one or more solvers312may take actions that are dependent on the canceling of an order, and may be, for example, different from actions taken if the user associated with supply chain network120places a larger order for the same item or product. In essence, the action taken by one or more solvers312is dependent on the kind of change one or more solvers312is ameliorating.

In addition, one or more solvers312may include incremental planning solvers, such as, for example, a manufacturing planning solver, a distribution planning solver, an order planning solver, and any other solver. Although examples of one or more solvers312are described, one or more solvers312may include any suitable solver that solves any type of perturbations in the supply chain inputs.

In one embodiment, constraints324restrict the feasibility and/or optimization of a supply chain plan. As described more fully below, constraints324may be either hard constraints or soft constraints. Constraints324may be automatically generated in response to rules and parameters222and policies326stored in database220, or constraints324may be created or modified in response to input received from perturbations in the supply chain plan inputs. In addition, constraints324may include additional constraints and/or additional sets of constraints, in order to preserve part of a previous supply chain plan generated during the previous supply chain planning session.

To further explain the operation of supply chain planner110, an example is now given. In the following example, entity120aof supply chain network120ofFIG. 1is a distributer of three products. Entity120aoutsources the manufacturing of the three products to two factories (i.e., in this example, entity120band120cof supply chain network120ofFIG. 1). Entity120bhas a capacity constraint of 4,000 units and entity120chas a capacity constraint of 3,000 units. In addition, each of the three products, in this example, may be manufactured at either factory, that is, either entity120bor120c. However, the profit entity120amay realize by manufacturing the three products at entity120bor120cis substantially different.

Continuing with this example, the demand for the first product is 1,000 units, the demand for the second product is 3,000 units, and the demand for the third product is 2,000 units. In addition, in this example, the profit for manufacturing the first product at entity120bis $45 and the profit for manufacturing the first product at entity120cis only $30. The profit for manufacturing the second product at entity120bis $10 and the profit for manufacturing the second product at entity120cis only $5. The profit for manufacturing the third product at entity120bis $5 and the profit for manufacturing the first product at entity120cis only $1.

Server210generates a supply chain plan, during a scheduled supply chain planning session, based on, at least the rules and parameters, constraints, policies, and plan data associated with this particular example and described above. The supply chain plan generated by server210, in this example, may be such that profit is maximized and 1,000 units of the first product are to be manufactured at entity120b, with an expected profit of $45,000, 3,000 units of the second product are to be manufactured at entity120b, with an expected profit of $30,000, and 2,000 units of the third product are to be manufactured at entity120c, with an expected profit of $10,000.

However, subsequent to the generation of the supply chain plan and during a period of time separating the supply chain planning session from a subsequent supply chain planning session, supply chain planner110receives a new order, increasing the demand for the first product by 500 units, that is, for a total demand of 1,500 units for the first product. In this example, the perturbation (i.e., the new order) may be classified into the category of “demand change”, which as discussed above, may include a library of rules and parameters222and policies326for inducing the behavior based on the perturbation of the category “demand change”. Supply chain planner110may incrementally and optimally adjust the supply chain plan to manufacture the new order (i.e., the additional demand for 500 units of the first product), at entity120c, if, for example, the rules and parameters222and policies326prevent any changes to the capacity constraint associated with entity120b.

Continuing with this example and subsequent to the incremental and optimal adjustment of the supply chain plan during the period of time separating the supply chain planning sessions, supply chain planner110receives another perturbation in the supply chain inputs. This perturbation is a notification that a particular regulation requires that the entirety of the first product must be manufactured in the same factory (i.e., entity120b). However, based on this new perturbation in the supply chain input, the incremental adjustment of the supply chain plan, previously conducted, is no longer viable. That is, because this new perturbation requires that the entirety of the first product must be manufactured in the same factory (i.e., entity120b) the additional demand for 500 units of the first product cannot be manufactured at entity120c.

Although, as discussed above, constraints324may be either hard constraints or soft constraints. That is, in this example, the capacity constraint of 4,000 units associated with entity120bmay either be a hard constraint or a soft constraint as a matter of policy, judgment, and/or circumstances. In this example, supply chain planner110may communicate with entity120b, or a user associated with entity120bto determine if the capacity constraint of 4,000 units is a hard constraint or a soft constraint. Thereafter, supply chain planner110may incrementally and optimally adjust the supply chain plan to manufacture the new order (i.e., the additional demand for 500 units of the first product), at entity120b, if, for example, the capacity constraint associated with entity120bis a soft constraint or at least is a hard constraint that may be modified (i.e., maybe not a physical hard constraint).

FIG. 3illustrates supply chain network120ofFIG. 1in greater detail in accordance with an exemplary embodiment. Supply chain network120comprises entities within the supply chain, such as, for example, supplier310a, supplier310b, manufacturer310c, and distribution center310d. For ease of illustration, supply chain network120ofFIG. 1is shown as four entities inFIG. 3: supplier310a; supplier310b; manufacturer310c; and distribution center310d, which correspond to, for example, entities120a-120dofFIG. 1, respectively. In addition, although supply chain network120is shown and described as comprising suppliers310aand310b, manufacturer310c, and distribution center310d, embodiments contemplate any suitable supply chain entity or combination of entities, according to particular needs.

In one embodiment, manufacturer310cincludes routings320,322, and324, operations320a,322a, and324aand resources326and328. Routings320,322, and324may represent one or more structures or apparatuses configured to receive one or more components (material)312,314, and316and perform at least one operation to transform the components312,314, and316into one or more end items350,352, and354. In a particular embodiment, suppliers310aand310bprovide components312,314, and316to routings320,322, and324, and routings320,322, and324produce end items350,352, and354using operations320a,322a, and324aand resources326and328. For example, supplier310aships component312to routings320of manufacturer310c, and routings320produces a first end item350using operation320aand resource326. In addition, supplier310amay, at a later time, during, for example, another time bucket; begin shipping different component312to routings320of manufacturer310c, to produce a second end item350. Although components312,314, and316are shown and described, embodiments contemplate any number of components or any combination of components, without departing from the scope of the present invention.

To further explain the operation of supply chain network120ofFIG. 3, an example is now given. In the following example, end items350,352, and354are available to satisfy orders (demand) at distribution center310d. Although a particular number of end items are shown and described, embodiments contemplate any number of end items, according to particular needs. In addition, each of end items350,352, and354are shipped to distribution center310dfrom manufacturer310cvia routes330a,332a, and334a. In this example, shipping time330b,332b, and334bbetween manufacturer310cand distribution center310dis 1 week. Although a particular shipping time is shown and described, embodiments contemplate any suitable shipping time.

Continuing with this example, end item350is produced along routing320, using operation320a, which consumes resource326, and component312. End item352is produced along routing322, using operation322a, which consumes resource326, and components312and314. End Item354is produced along routing324, using operation324a, which consumes resource328, and components314and316. Supplier310aships components312,314, and316to manufacturer310cvia routes312a,314a, and316a. The shipping time312b,314b, and316bin this example, between supplier310aand manufacturer310cis 1 week. Supplier310bis a secondary supplier for component316and ships component316to manufacturer310cvia route316c. In addition, in this example, the shipping time316d, between supplier310band manufacturer310cis also 1 week. Although a particular shipping time is shown and described, embodiments contemplate any suitable shipping time.

In one embodiment supply chain planner110collapses supply chain network120ofFIG. 3into one or more flowpaths and stores the one or more flowpaths in plan data228of database220. In addition, or as an alternative, supply chain planner110loads the one or more flowpaths into memory only in the context of demand. For example, when supply chain planner110receives a demand for end item350, the demand can be satisfied by flowpaths or time buckets (i.e., various options), within supply chain network120. That is, the demand can be satisfied from the inventory at distribution center310d, from the inventory at end item buffers330,332, and334of manufacturer310c, it can be produced at manufacturer310cconsuming resource326and328and components312,314, and316, or it can be sourced from suppliers310aand310band produced at manufacturer310c.

In one embodiment, supply chain planner110collapses supply chain network120into flowpaths that comprise all of the end nodes from which consumption occurs. As an example only and not by way of limitation, supply chain planner110collapses supply chain network120into four flowpaths for end item350, shown below in TABLE 1. Although, a particular number of flowpaths are shown and described for end item350; embodiments contemplate any number of flowpaths, without departing from the scope of the present invention.

As shown in TABLE 1, flowpaths (FP's)1and2each have one element, while flowpaths3and4each have 2 elements. That is, there is supply/capacity available for both the elements of flowpaths3and4. In addition, the consumption from the two elements of flowpaths3and4can occur in different time buckets. For example, as shown inFIG. 3, shipping time312bis 1 week for component312to reach manufacturer310c, via route312a, to produce end item350. That is, the consumption of component312at supplier310a(flowpath4—component312@ supplier310a) occurs in a different time bucket than consumption of resource326at manufacturer310c(flowpath4—resource326@ manufacturer310c).

Supply chain planner110further collapses supply chain network120into six flowpaths for end item352, shown below in TABLE 2. Although, a particular number of flowpaths are shown and described for end item352; embodiments contemplate any number of flowpaths, according to particular needs.

Furthermore, supply chain planner110collapses supply chain network120into eight flowpaths for end item354, shown below in Table 3. Although, a particular number of flowpaths are shown and described for end item354; embodiments contemplate any number of flowpaths, according to particular needs.

In one embodiment, supply chain planner110determines and sorts the order of the flowpaths (i.e., flowpaths1,2,3,4, etc.) using one or more business rules stored in rules and parameters222of database220. As shown above, the flowpaths are sorted based on the priority, which may be predetermined by supply chain planner110or determined by rules and parameters222stored in database220. Although a particular order of the flowpaths is shown and described, embodiments contemplate any suitable order of the flowpaths, according to particular needs.

In one embodiment, supply chain planner110applies one or more pruning techniques stored in rules and parameters222of database220to reduce the number of generated flowpaths. For example, when supply chain planner110receives a demand for end item350for a particular time bucket, supply chain planner110prunes out various flowpaths based on, for example, lead-time constraints stored in constraints224of database220. As an example only, and not by way of limitation, TABLE 4 lists the flowpaths available to satisfy a demand in a particular week for end item350. In addition, or as an alternative, TABLE 4 shows a time bucket-wise walk pattern ensuring consumption in a time bucket closest to the received demand, in for example, a just-in-time consumption. In addition, the walking of the time buckets may be reversed, filtered or sorted as per one or more business rules stored in rules and parameters222of database220.

As shown in TABLE 4, flowpath1is available to satisfy a demand in week1, that is, the on-hand for end item350@ distribution center310d(end item350at distribution center310d) will be consumed. Flowpath2is available to satisfy a demand in week2, that is consumption can be from end item350@ distribution center310din the current time bucket (week2) or the previous time bucket (week1) or consumption can be from flowpath2which is end item350@ manufacturer310c(end item350at manufacturer310c). In this example, there is supply for end item350at end item buffer330of manufacturer310cin week1.

In another embodiment, supply chain planner110increases the number of flowpaths for each alternate fork in supply chain network120. For example, if the number of manufacturers to produce an end item increases or the number of suppliers increases, the number of flowpaths generated by supply chain planner110also increases. That is, in this example, if another manufacturer or supplier is provided for end item350, then supply chain planner110doubles the number of flowpaths from four to eight.

As an example only, and not by way of limitation, supply chain planner110prunes (i.e., removes) any time bucket(s) that do not have supply or capacity, as shown below in TABLE 5. For example, with respect to the demand in week5of TABLE 4, if the capacity of resource326in week3is zero, then supply chain planner110prunes the flowpaths for the demand in week5to the following:

In addition, with respect to the demand in week5of TABLE 4, if the supply availability of component312in manufacturer310cis zero in, for example, week2, then supply chain planner110prunes the flowpaths for the demand in week5of TABLE 5 to the following:

In addition, or as an alternative, supply chain planner110stores the supply and capacity picture with its time bucketized availability (supply—consumption), as a Fact table in database220. Supply chain planner110updates the fact table as consumption occurs and when the availability reaches zero the list is further pruned out.

In one embodiment, supply chain planner110generates a supply picture (TABLE 7), which shows, for example, which time bucket the supply is received. Supply chain planner110stores the supply chain picture in plan data228of database220. For example, if one or more upstream components312,314, or316is shipped from supplier310aor310bto manufacturer310c, then the one or more components312,314, or316show up as supply at the supplier310a, supplier310bor at the manufacturer310c.

In another embodiment, supply chain planner110generates a demand picture (TABLE 8), which shows demand (i.e., orders or netted forecasts). Supply chain planner110stores the demand picture in plan data228of database220. In addition, supply chain planner110may prioritize the demand picture using one or more business rules stored in rules and parameters222of database220.

In one embodiment, supply chain planner110uses a list based heuristic to consume demand, which is configurable and extendible as per, for example, one or more business requirements stored in rules and parameters222of database220or business constraints stored in constraints224of database220. In addition, or as an alternative, supply chain planner110uses the list based heuristic to walk the flowpath list in some order, walk the time buckets in some order, and consume and store the information. In addition, or as an alternative, based on the business objective stored in rules and parameters222of database220, supply chain planner110, sorts the flowpath lists by, for example, changing the consumption pattern.

In one embodiment, supply chain planner110solves the demands, in for example, a just-in-time based consumption pattern:For each time bucket; assume ordering of first to last time bucket.For each demand; assume ordering of highest priority to least priorityGet its flowpath listFor each flowpath element; as per the orderingGet time bucket list; consume in a just-in-time pattern (i.e., walk back in time)

In another embodiment, supply chain planner110solves the demands, by for example, consuming actual on-hand first, and then in a just-in-time based consumption pattern:For each time bucket; choose from first to last.For each demand; choose demand from highest priority to least priorityGet its flowpath listFor each flowpath element; as per the orderingGet time bucket list;Consume from current time bucket firstConsume in a just-in-time pattern (i.e., walk back in time)

Although exemplary list based heuristics are shown and described, embodiments contemplate any heuristic or combination of heuristics for solving the demands. In addition, or as an alternative, supply chain planner110may short or satisfy late the demand, based on one or more business requirements stored in rules and parameters222of database220. For example, supply chain planner110may satisfy late a demand by, for example, considering the flowpaths and time buckets that become available if the unsatisfied portion of the demand was pushed to the next time bucket.

Continuing with this example, supply chain planner110generates and stores commit against the demand data in plan data228of database220, as shown in TABLE 9.

In addition, supply chain planner110generates and stores Demand-Consumption Map data in plan data228of database220, as shown in TABLE 10:

In one embodiment, supply chain planner110communicates the generated supply chain plan, to one or more users of supply chain network120either graphically and/or in tabular form. In one embodiment, supply chain planner110communicates the demands, the supply, consumption, availability picture for material and capacity and the demand-consumption map. In addition, or as an alternative, if any change in supply, capacity or demand occurs, then supply chain planner110triggers the list based heuristic to solve for the change using one or more solvers214.

As an example only and not by way of limitation, if an increase in demand occurs, supply chain planner110solves for the increase in demand using one or more solvers214. If the demand is unsatisfied, then supply chain planner110highlights the constraints and the related demands so that supply chain planner can plan a supply chain plan on top of the current supply chain plan. If the demand decreases, then supply chain planner110determines whether to free up supply and/or capacity and whether to re-plan shorted or late-ed demand. If the supply and/or capacity is increased, then supply chain planner110determines whether to make more supply and/or capacity available and whether to re-plan shorted or late-ed demand. If the supply and/or capacity decreases, then supply chain planner110solves for the decreased material supply and/or resource capacity using one or more solvers214and to identify the affected demand and to reduce the commit value of the affected demands and to re-plan the affected demands again.

In one embodiment, supply chain planner110applies a filtering technique stored in rules and parameters222of database220to filter the flowpaths and time buckets. For example, supply chain planner110filters in or out one or more locations used to satisfy a demand by selecting the manufacturers that are to plan the demand in or in the alternative, leave out the manufacturers that do not want the items in the demand to be made from, select or de-select the suppliers, and select or de-select the distribution centers. In addition, or as an alternative, supply chain planner110filters in or out one or more resources to satisfy a demand by selecting or de-selecting one or more resources to be used or not to be used, an selecting or de-selecting one or more routings. In addition, supply chain planner110filters one or more time buckets by determining how far back to explore the supply and/or capacity to satisfy the demand and filtering the in and/or out time buckets.

In one embodiment, generation of a production plan, procurement plan, and/or a distribution plan is a post-consumption exercise. As an example only, and not by way of limitation, if demand for 10 units of end item350in week4was satisfied by consuming the following:

Which means the following:1. 10 units of component312were shipped in week1from supplier310ato manufacturer310c. Component312reached manufacturer310cin week2. Based on this, supply chain planner110will generate a distribution plan record.2. 10 units of component312and resource326were consumed in week2to produce end item350in manufacturer310c. Based on this, supply chain planner110will generate in a production plan record.3. 10 units of end item350were shipped from manufacturer310cto distribution center310d. Arrival at distribution center310dis in week3. Based on this, supply chain planner110will generate a distribution plan record.4. The demand is satisfied in week4. This means 1 week of inventory carrying. This can be used to generate inventory profile.

In one embodiment, supply chain planner110incrementally adjusts the supply chain plan based on one or more lot-sizing constraints stored in constraints224of database220. As an example only, and not by way of limitation, if 10 units of component312@ supplier310aneed to be consumed in week3. Then components312will be shipped and will arrive at supplier310ain week4. However, if, based on lot-sizing constraints, shipments can only be done in lot-sizes of 20, then consumption of 20 units from component312@ supplier310aoccurs in week3and there will be a supply of 10 units in component312@ manufacturer310cin week4. The latter accounts for the excess of 10 units in component312@ manufacturer310ccaused by lot-sizing constraints. In addition or as an alternative, supply chain planner110updates the supply picture in database220.

In another embodiment, supply chain planner110accounts for time based safety stock by adding to the lead time while determining the valid time buckets to consume from. For example, the lead time equals the sum of all the distribution and manufacturing lead times plus all the weeks of cover required for a particular buffer and the downstream buffers.

As an example only and not by way of limitation, supply chain network120may also comprise three additional locations, such as, for example, a retailer, a warehouse, and another distribution center. In this example, item flow from the distribution center to the warehouse to the retailer and it takes 1 week to move the items between the locations. Although a particular time has been described, embodiments contemplate any suitable time. In addition, in this example, there is a 1 week safety stock cover at the warehouse, and a 2 week cover at the distribution center. Although a particular time has been described regarding the safety stock cover, embodiments contemplate any suitable time.

Continuing with this example, if a demand for 10 units is received in week6at the retailer, then it can be satisfied from the retailer. In addition, or as an alternative, it can be satisfied from the warehouse by consuming 10 units in week7. In one embodiment, this may be calculated by subtracting the lead time of 1 week and safety stock cover of 2 weeks from the demand week. It addition, it can be satisfied from the distribution center by consuming 10 units in week5. This is calculated by subtracting the lead times of 1+1 week and safety stock cover of 2+1 weeks from the actual demand week (i.e., 10−2−3=5).

FIG. 4illustrates an exemplary method400for incremental planning using a list based heuristic. The method begins at step402, where supply chain planner110receives a demand for an end item from, for example, one or more customers or other entities within supply chain network120. At step404, supply chain planner110collapses a supply chain network into one or more flowpaths for an end item and stores the generated flowpaths in database220. As discussed above, when supply chain planner110receives a demand on, for example, end item350, the demand can be satisfied by various options (i.e., flowpaths). In the above example, the demand can be satisfied from the inventory at distribution center310d, or from the inventory at end item buffers330,332, and334of manufacturer310c, or it can be produced at manufacturer310cconsuming resource326and328and components312,314, and316, or it can be sourced from suppliers310aand310band produced at manufacturer310c.

At step406, supply chain planner110determines if there is another end item that has an associated demand. If there is an additional end item, the method proceeds to step404, otherwise the method proceeds to step408. At step408, supply chain planner110determines the order of the generated flowpaths (i.e., flowpaths1,2,3,4, etc.) by one or more business rules stored in database220(i.e., a sort). As discussed above, the flowpaths may be sorted based on the priority, which is determined by rules and parameters222stored in database220. In addition, as discussed above, although a particular order of the flowpaths is shown and described, embodiments contemplate any suitable order of the flowpaths, according to particular needs.

At step410, supply chain planner110applies one or more pruning techniques stored in rules and parameters222of database220to reduce the number of generated flowpaths. As discussed above, when supply chain planner110receives a demand for a particular end item for a particular time bucket, supply chain planner110prunes out various flowpaths based on, for example, various constraints stored in constraints224of database220. In addition, or as an alternative, supply chain planner110prunes (i.e., removes) any time bucket(s) that do not have supply and/or capacity. At step412, supply chain planner110stores the time bucket ordered list along with the flowpaths.

At step414, supply chain planner110generates and stores a supply picture, which shows, for example, which time bucket the supply is received into database220. At step416, supply chain planner110generates and stores a demand picture, which shows demand (i.e., orders or netted forecasts) into database220. In addition, as discussed above, supply chain planner110may prioritize the demand picture using one or more business rules stored in rules and parameters222of database220.

At step418, supply chain planner110uses an exemplary list based heuristic to consume demand, as per, for example, one or more business requirements stored in rules and parameters222of database220or business constraints stored in constraints224of database220. At step420, supply chain planner110generates and stores commit against the demand data in database220. At step422, supply chain planner110generates and stores demand-consumption map data in database220. At step424, supply chain planner110may apply a filtering technique to filter the flowpaths and time buckets. At step426, supply chain planner110may generate one or more post-consumption plans, such as, for example, a production plan, a procurement plan, and/or a distribution plan. Supply chain planner110then communicates the incremental supply chain plan using a list based heuristic to one or more users or other entities within supply chain network120at step428and the method ends.

FIG. 5illustrates an exemplary method500for sentient optimization for continuous supply chain management. The method begins at step502, where supply chain planner110generates an initial supply chain plan at a scheduled supply chain planning session. At step504, subsequent to the generation of the supply chain plan and during a period of time separating the supply chain planning session from a subsequent supply chain planning session, a perturbation in the supply chain input is received by supply chain planner110.

As discussed above, a perturbation in the supply chain inputs may include, but are not limited to new unforecasted orders, new orders, changes to existing orders or forecasts, changes to in-transit shipments, changes to work in progress or work in process, changes in inventory, new capacity, reduced capacity, changes to external supply, and the like. In addition, these perturbations (i.e., changes or events) may be classified into categories such as, for example, supply changes, inventory changes, capacity changes, demand changes, and the like. Although example categories of perturbations are described, embodiments contemplate any type of perturbations, changes, events, or categories of perturbations, changes, and/or events, according to particular needs.

Supply chain planner110collates the perturbations in the supply chain inputs at step506to yield a result set of net perturbations that are to be processed. If there is a next perturbation in the supply chain input at step508, supply chain planner110returns to step506to select the perturbation. As an example only and not by way of limitation, step508may be required if multiple perturbations are associated with the same supply chain entity, such as, for example, increase demand quantity, decrease demand quantity, cancel order, and the like. If there is no next perturbation in the supply chain inputs at step508, supply chain planner110proceeds to step510.

At step510, one or more solvers214may provide for a sequence of solving the perturbations based on the various classifications of categories of the perturbations. As an example only, and not by way of limitation, the sequence for solving the perturbations may be to solve the supply changes first, then the solve inventory changes, then solve the capacity changes, and then finally solve the demand changes. Although, an example sequence of solving the perturbations is described, one or more solvers214may include any suitable sequence for solving any type of perturbations in the supply chain inputs, in any particular order. In addition, or as an alternative, each solver within one or more solvers214may solve the perturbations using any algorithmic technique.

One or more solvers214may include and/or ignore infeasibilities that exist in the supply chain plan. In addition, one or more solvers214may solve only the infeasibilities associated with the perturbations received subsequent to the generation of the supply chain plan and during a period of time separating the supply chain planning session from a subsequent supply chain planning session. If there is another (i.e., next) sequence of solving the perturbations based on either the various classifications of categories or based on other input at step512, supply chain planner110returns to step510to select the sequence of solving the perturbations. If there is no next sequence of solving the perturbations at step512, supply chain planner110generates one or more workflows230to incrementally and optimally adjust the supply chain plan at step514. Supply chain planner110then communicates the incrementally and optimally adjusted supply chain plan to supply chain network120at step516and the method ends.

Reference in the foregoing specification to “one embodiment”, “an embodiment”, or “another embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.

While the exemplary embodiments have been shown and described, it will be understood that various changes and modifications to the foregoing embodiments may become apparent to those skilled in the art without departing from the spirit and scope of the present invention.