Claims
- 1. A method for determining routing in a network comprising a plurality of nodes interconnected through links, where a demand for each of a plurality of commodities is to be routed over the network, the method comprising:
routing a demand for one of the commodities on a set of paths having a minimum cost, the set of paths comprising at least one primary path and at least one secondary path, wherein demand will be routed from a primary path to a secondary path during a failure; adjusting the minimum total cost through an exponential function based on an amount of flow through links over which the demand is routed; performing the step of adjusting for each of a number of potential failures; and iterating the steps of routing, adjusting, and performing until an objective value is minimized, whereby flow for each of the links in the network is determined.
- 2. The method of claim 1, wherein the step of routing further comprises the step of minimizing a function that represents a marginal cost of a link when the network is in a particular state, wherein the function is minimized for both the at least one primary path and the at least one secondary path.
- 3. The method of claim 1, wherein:
the step of routing further comprises the step of routing a flow for one of the commodities on a set of paths having a minimum cost, the set of paths comprising at least one primary path and at least one secondary path, wherein the flow will be routed from a primary path to a secondary path during a failure; the step of adjusting further comprises the step of adjusting the minimum total cost through an exponential function based on an amount of flow through links over which the flow is routed; and the method further comprises the step of iterating the steps of routing and adjusting until the demand for the commodity is routed.
- 4. The method of claim 1, wherein the step of performing the step of adjusting further comprises the step of determining a backup flow strategy comprising specifying, for each failure, how much flow for a primary path gets re-routed to one or more secondary paths.
- 5. The method of claim 4, wherein the backup flow strategy comprises allowing secondary paths to be shared, secondary paths to be dedicated, or secondary paths to be shared and dedicated.
- 6. The method of claim 4, wherein the objective value is a total expected cost of flow in the network over a predetermined time period, wherein the expected cost is taken over a probability distribution that includes the failures, and wherein the backup flow strategy is created wherein flows for any failure will be recovered by routing the flows through secondary paths.
- 7. The method of claim 1, further comprising the step of computing a number of iterations after which the objective value will be within a specified tolerance from an optimum objective value.
- 8. A method for determining routing in a network comprising a plurality of nodes interconnected through links, the method comprising:
setting costs for each link in the network; initializing primary and second flows for each link to at least one predetermined value; selecting a commodity, each commodity comprising a source-sink pair and having a demand; routing a demand through the network for the selected commodity; updating costs for links over which the demand is routed; and performing the steps of selecting, routing, and updating until a value of a function is at least as much as a predetermined value.
- 9. The method of claim 8, wherein the step of performing the steps of selecting, routing, and updating until a value of a function is at least as much as a predetermined value further comprises the step of performing the steps of selecting, routing, and updating until an approximate solution to the network routing is within a predetermined error from an optimum network routing.
- 10. The method of claim 8, wherein the function is a dual objective function.
- 11. The method of claim 10, wherein the dual objective function is part of a linear program designed to maximize a first variable of the dual objective function subject to a first plurality of conditions.
- 12. The method of claim 11, wherein there is also an objective function as part of a second linear program, the second linear program designed to minimize a variable of the objective function subject to a second plurality of conditions, and wherein the method further comprises the step of using the objective function to determine if the value of the dual objective function is correct.
- 13. The method of claim 8, wherein the step of updating costs further comprises the step of, for each of a plurality of failure conditions and for each link over which demand is routed, updating costs through an exponential function.
- 14. The method of claim 13, wherein the step of updating costs through an exponential function further comprises the steps of:
determining if the primary flow is part of a set of paths affected by the failure condition; for all links that are part of the primary flow, updating costs for these primary flow links through the exponential function when the primary flow is part of a set of paths affected by the failure condition; and for all links that are part of the secondary flow, updating costs for these secondary flow links through the exponential function when the primary flow is part of a set of paths affected by the failure condition.
- 15. The method of claim 13, wherein the exponential function is the following:
- 16. The method of claim 8, wherein the step of routing demand through the network for the selected commodity further comprises the steps of:
for each link over which demand is routed, determining an amount of demand to route on the link; increasing primary flow by the determined demand; and increasing secondary flow by the determined demand.
- 17. The method of claim 16, wherein the determined demand is selected by selecting a minimum of one of the following: demand for the commodity; a capacity of a primary amount of demand; and a capacity of a secondary amount of demand.
- 18. The method of claim 8, wherein the step of setting costs for each link in the network further comprises the step of setting costs for each link in the network by setting a cost for a link equal to a predetermined delta value divided by a capacity of the link.
- 19. The method of claim 18, wherein the predetermined delta value is the following:
- 20. The method of claim 8, further comprising the steps of setting a desired budget and setting a current budget to a predetermined budget, and wherein the step of performing the steps of selecting, routing, and updating until a value of a function is at least as much as a predetermined value further comprises the steps of the steps of selecting, routing, updating, and modifying the current budget until the value of the function is at least as much as the predetermined value.
- 21. An apparatus for determining routing in a network comprising a plurality of nodes interconnected through links, where a demand for each of a plurality of commodities is to be routed over the network, the apparatus comprising:
a memory that stores computer-readable code; a processor operatively coupled to the memory, the processor configured to implement the computer-readable code, the computer-readable code configured to:
route a demand for one of the commodities on a set of paths having a minimum cost, the set of paths comprising at least one primary path and at least one secondary path, wherein demand will be routed from a primary path to a secondary path during a failure; adjust the minimum total cost through an exponential function based on an amount of flow through links over which the demand is routed; perform the step of adjusting for each of a number of potential failures; and iterate the steps of routing, adjusting, and performing until an objective value is minimized, whereby flow for each of the links in the network is determined.
- 22. An article of manufacture for determining routing in a network comprising a plurality of nodes interconnected through links, where a demand for each of a plurality of commodities is to be routed over the network, the article of manufacture comprising:
a computer-readable medium having computer-readable code means embodied thereon, the computer-readable code means comprising:
a step to route a demand for one of the commodities on a set of paths having a minimum cost, the set of paths comprising at least one primary path and at least one secondary path, wherein demand will be routed from a primary path to a secondary path during a failure; a step to adjust the minimum total cost through an exponential function based on an amount of flow through links over which the demand is routed; a step to perform the step of adjusting for each of a number of potential failures; and a step to iterate the steps of routing, adjusting, and performing until an objective value is minimized, whereby flow for each of the links in the network is determined.
Parent Case Info
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Application No. 60/262,410, filed Jan. 18, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60262410 |
Jan 2001 |
US |