Linear Programming, Reduction, and Max Flow Networks
In the past few units, you have learned about many discrete math and computer science optimization problems, including min cut, max flow; shortest paths; minimum spanning trees; and matching. Each of these optimization problems can be rephrased or rewritten as an equivalent linear programming problem. A linear programming problem consists of an objective (that is, a value to be maximized or minimized) and constraints.
Each of the graphical optimization problems discussed in this class can be rephrased as a linear programming problem by altering the objective or the constraints to refit the problem at hand. Another way to use a linear program to solve an optimization problem is to transform a new problem into a problem for which we already have a linear program solution—this is a reduction. The idea is that you already have a solution for a known linear programming problem. If you can somehow transform a new problem that you have into this known linear programming problem, you already have the solution. The tricky part is to figure out how to transform your problem into a known solution problem.
For this assignment, read the Notes section on page 529of your textbook. There is a linear program on this pagethat describes finding a maximal flow in a networkG, with a sourcea, a sinkz, flowsF, and capacitiesC. If we want to find a solution to a different problem, maybe the matching problem, for example, we could (1) formulate a linear program for the matching problem or (2) transform the matching problem into a maximal flow problem, then use the already known linear program that solves the maximal flow problem.
To better understand linear programs and reductions, write a two- to three-page paper that addresses the following questions:
- What is a linear program? Explain in at least one paragraph. Feel free to show an example.
- What are constraints in linear programming problems? Offer at least one example.
- What is an optimization problem? Offer an example and explain.
- What is a reduction (specifically, changing one problem into another)? Provide an example. You may use the Internet to locate an example.
- Given Example 10.4.4 and Theorem 10.4.5 in the textbook, explain how you would transform the matching problem into a maximal flow problem.
- Once you complete question 5, use the already known linear program that solves the maximal flow problem. Show all of your work and how you are doing the reduction.
Show all of your work and include references for resources you use to complete the assignment.
Hint 1: Transform the matching problem into a matching network, and then find the maximal flow to this network.
Hint 2: The goal here is to learn that, while problems might appear different, they are often the same. Knowing how to transform a new problem into a known problem can save a lot of solving time. Use the Internet and your textbook.
Review the Linear Programming, Reduction, and Max Flow Networks Scoring Guide to understand how the assignment will be graded.