AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM. max z = 3x 1 + 4x 2. 3x 1 x x x x N 2

Similar documents
Given a directed graph G =(N A), where N is a set of m nodes and A. destination node, implying a direction for ow to follow. Arcs have limitations

Probability and Game Theory Course Syllabus

Detailed course syllabus

College Pricing. Ben Johnson. April 30, Abstract. Colleges in the United States price discriminate based on student characteristics

The use of mathematical programming with artificial intelligence and expert systems

Statewide Framework Document for:

Math 1313 Section 2.1 Example 2: Given the following Linear Program, Determine the vertices of the feasible set. Subject to:

Mathematics. Mathematics

Level 6. Higher Education Funding Council for England (HEFCE) Fee for 2017/18 is 9,250*

OPTIMIZATINON OF TRAINING SETS FOR HEBBIAN-LEARNING- BASED CLASSIFIERS

BMBF Project ROBUKOM: Robust Communication Networks

UNIT ONE Tools of Algebra

Discriminative Learning of Beam-Search Heuristics for Planning

A simulated annealing and hill-climbing algorithm for the traveling tournament problem

Honors Mathematics. Introduction and Definition of Honors Mathematics

Regret-based Reward Elicitation for Markov Decision Processes

Algebra 1 Summer Packet

B.S/M.A in Mathematics

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

Towards a Robuster Interpretive Parsing

University of Groningen. Systemen, planning, netwerken Bosman, Aart

Python Machine Learning

CAAP. Content Analysis Report. Sample College. Institution Code: 9011 Institution Type: 4-Year Subgroup: none Test Date: Spring 2011

AGS THE GREAT REVIEW GAME FOR PRE-ALGEBRA (CD) CORRELATED TO CALIFORNIA CONTENT STANDARDS

Are You Ready? Simplify Fractions

Artificial Neural Networks written examination

College Pricing and Income Inequality

Algebra 1, Quarter 3, Unit 3.1. Line of Best Fit. Overview

System Implementation for SemEval-2017 Task 4 Subtask A Based on Interpolated Deep Neural Networks

We are strong in research and particularly noted in software engineering, information security and privacy, and humane gaming.

Beyond the Pipeline: Discrete Optimization in NLP

Using Proportions to Solve Percentage Problems I

Grade 6: Correlated to AGS Basic Math Skills

A theoretic and practical framework for scheduling in a stochastic environment

Cal s Dinner Card Deals

GUIDE TO THE CUNY ASSESSMENT TESTS

Sample Problems for MATH 5001, University of Georgia

Lecture 1: Machine Learning Basics

Reinforcement Learning by Comparing Immediate Reward

2 nd grade Task 5 Half and Half

Mathematics Success Level E

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

Montana Content Standards for Mathematics Grade 3. Montana Content Standards for Mathematical Practices and Mathematics Content Adopted November 2011

Assignment 1: Predicting Amazon Review Ratings

GCSE Mathematics B (Linear) Mark Scheme for November Component J567/04: Mathematics Paper 4 (Higher) General Certificate of Secondary Education

Historical maintenance relevant information roadmap for a self-learning maintenance prediction procedural approach

College Pricing and Income Inequality

Mathematics subject curriculum

BENCHMARK MA.8.A.6.1. Reporting Category

Human Emotion Recognition From Speech

Parallel Evaluation in Stratal OT * Adam Baker University of Arizona

As a high-quality international conference in the field

AP Calculus AB. Nevada Academic Standards that are assessable at the local level only.

Radius STEM Readiness TM

STAT 220 Midterm Exam, Friday, Feb. 24

Foothill College Fall 2014 Math My Way Math 230/235 MTWThF 10:00-11:50 (click on Math My Way tab) Math My Way Instructors:

Rendezvous with Comet Halley Next Generation of Science Standards

Probabilistic Latent Semantic Analysis

Exemplar 6 th Grade Math Unit: Prime Factorization, Greatest Common Factor, and Least Common Multiple

Laboratorio di Intelligenza Artificiale e Robotica

Truth Inference in Crowdsourcing: Is the Problem Solved?

ENME 605 Advanced Control Systems, Fall 2015 Department of Mechanical Engineering

Improving Fairness in Memory Scheduling

NUMBERS AND OPERATIONS

LA LETTRE DE LA DIRECTRICE

Axiom 2013 Team Description Paper

PROGRAM REVIEW CALCULUS TRACK MATH COURSES (MATH 170, 180, 190, 191, 210, 220, 270) May 1st, 2012

Cheat The Jlab Algebra 2

Learning Optimal Dialogue Strategies: A Case Study of a Spoken Dialogue Agent for

Laboratorio di Intelligenza Artificiale e Robotica

Learning to Schedule Straight-Line Code

Speaker Identification by Comparison of Smart Methods. Abstract

Short Software Descriptions

The Strong Minimalist Thesis and Bounded Optimality


EECS 700: Computer Modeling, Simulation, and Visualization Fall 2014

Lecture Notes on Mathematical Olympiad Courses

COMPUTER-ASSISTED INDEPENDENT STUDY IN MULTIVARIATE CALCULUS

Thomas W.M. Vossen. EDUCATION University of Maryland at College Park, College Park, MD December 2002 Doctor of Philosophy, Business and Management

The Method of Immersion the Problem of Comparing Technical Objects in an Expert Shell in the Class of Artificial Intelligence Algorithms

Update on the Affordable Care Act. Association of Business Administrators September 24, 2014

Automating the E-learning Personalization

Strategies for Solving Fraction Tasks and Their Link to Algebraic Thinking

Linking the Ohio State Assessments to NWEA MAP Growth Tests *

A comparison of spectral smoothing methods for segment concatenation based speech synthesis

CS Machine Learning

A Comparison of Annealing Techniques for Academic Course Scheduling

What s in a Step? Toward General, Abstract Representations of Tutoring System Log Data

The optimal placement of up and ab A comparison 1

Understanding and Interpreting the NRC s Data-Based Assessment of Research-Doctorate Programs in the United States (2010)

Algebra 2- Semester 2 Review

Massachusetts Institute of Technology Tel: Massachusetts Avenue Room 32-D558 MA 02139

LOUISIANA HIGH SCHOOL RALLY ASSOCIATION

TabletClass Math Geometry Course Guidebook

AUTOMATIC DETECTION OF PROLONGED FRICATIVE PHONEMES WITH THE HIDDEN MARKOV MODELS APPROACH 1. INTRODUCTION

Measuring the relative compositionality of verb-noun (V-N) collocations by integrating features

SARDNET: A Self-Organizing Feature Map for Sequences

MTH 215: Introduction to Linear Algebra

Using the Attribute Hierarchy Method to Make Diagnostic Inferences about Examinees Cognitive Skills in Algebra on the SAT

WHEN THERE IS A mismatch between the acoustic

Transcription:

AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM Consider the integer programme subject to max z = 3x 1 + 4x 2 3x 1 x 2 12 3x 1 + 11x 2 66 The first linear programming relaxation is subject to x N 2 max z = 3x 1 + 4x 2 3x 1 x 2 12 3x 1 + 11x 2 66 x 0 After introducing slackness variables s 1 and s 2, we obtain the simplex tableau z x 1 x 2 s 1 s 2 rhs BV 1 3 4 0 0 0 z = 0 0 3 1 1 0 12 s 1 = 12 0 3 11 0 1 66 s 2 = 66 We use MAPLE s linalg package to take care of the simplex steps: > with(linalg): > A := matrix(3,6,[1,-3,-4,0,0,0,0,3,-1,1,0,12,0,3,11,0,1,66]); [1-3 -4 0 0 0] A := [0 3-1 1 0 12] [0 3 11 0 1 66] > A := mulrow(a,3,1/11); # x2 enters, s2 leaves [1-3 -4 0 0 0] [0 3-1 1 0 12] A := [ 3 1 ] [0 -- 1 0 -- 6] [ 11 11 ] > A := pivot(a,3,3); [ -21 4 ] [1 --- 0 0 -- 24] [ 11 11 ] 1

2 AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM [ 36 1 ] A := [0 -- 0 1 -- 18] [ 11 11 ] [ 3 1 ] [0 -- 1 0 -- 6] [ 11 11 ] > A := mulrow(a,2,11/36); x1 enters, s1 leaves [ -21 4 ] [1 --- 0 0 -- 24] [ 11 11 ] [ 11 1 11] A := [0 1 0 -- -- --] [ 36 36 2 ] [ 3 1 ] [0 -- 1 0 -- 6] [ 11 11 ] > A := pivot(a,2,2); [ 7 5 69] [1 0 0 -- -- --] [ 12 12 2 ] [ 11 1 11] A := [0 1 0 -- -- --] [ 36 36 2 ] [ -1 1 9] [0 0 1 -- -- -] [ 12 12 2] So we have found the solution of the first LPR, namely x 1 = 11/2 and x 2 = 9/2. This solution is non-integral, so we seek a cut. For this purpose, we choose a row of the optimal tableau with a non-integral right-hand side. For instance, the second row of the optimal tableau says x 1 = 11 2 11 36 s 1 1 36 s 2 = 5 + 1 2 11 36 s 1 1 36 s 2. We can express this as (C) x 1 5 = 1 2 11 36 s 1 1 36 s 2. We argue that the inequality (G) 1 2 11 36 s 1 1 36 s 2 0 is a cut. Indeed, it is a valid inequality for, if x and s are integral, then it follows from Equation (C) that 1 2 11 36 s 1 1 36 s 2 Z.

AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM 3 Any integer-feasible s is also non-negative, and so 1 2 11 36 s 1 1 36 s 2 1/2. The integrality of the left-hand side then implies that Equation (G) holds. To show that Equation (G) is a cut, there remains to show that there exists a vector (x, s) that is feasible for the current relaxation, but that violates Equation (G). The optimal solution of the relaxation is one such vector, since it is such that s = 0. This argument is easily generalised. Suppose that the current LP relaxation has an optimal tableau with a row with a non-integral right-hand side r; we write the corresponding as x bv = r a j x j. For any real number t, we write Then x j NBV [t] := {n Z : n t} and {x} := t [t] [0,1). t = [t] + {t} and we can rewrite the equation for the row as x bv [r] + [a j ]x j = {x} Then the inequality x j NBV {x} x j NBV {a j }x j 0 x j NBV {a j }x j. is a Gomory cut. Returning to our example, we introduce a new slack variable s 3 and rewrite the cut as 11 36 s 1 1 36 s 2 + s 3 = 1 2. With this new variable and this new constraint, the simplex tableau becomes > A := extend(a,1,1,0); # Gomory cut: 1/2-11/36*s1-1/36*s2 <= 0 [ 7 5 69 ] [1 0 0 -- -- -- 0] [ 12 12 2 ] [ 11 1 11 ] [0 1 0 -- -- -- 0] A := [ 36 36 2 ] [ -1 1 9 ] [0 0 1 -- -- - 0] [ 12 12 2 ] [0 0 0 0 0 0 0] > for i from 1 to 4 do A[i,7] := A[i,6] : A[i,6] := 0 : od : A[4,4] := -11/36 : A[4,5] := -1/36 : A[4,6] := 1 : A[4,7] := -1/2 : print(a);

4 AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM [ 7 5 69] [1 0 0 -- -- 0 --] [ 12 12 2 ] [ 11 1 11] [0 1 0 -- -- 0 --] [ 36 36 2 ] [ -1 1 9] [0 0 1 -- -- 0 -] [ 12 12 2] [ -11-1 -1] [0 0 0 --- -- 1 --] [ 36 36 2 ] The basic solution corresponding to this tableau is not feasible, since the right-hand side in the last row is negative. On the other hand, the coefficients in the first row are all non-negative indicating dual-feasibility. So we use the dual simplex method to solve the relaxation. > A := mulrow(a,4,-36/11); [ 7 5 69] [1 0 0 -- -- 0 --] [ 12 12 2 ] [ 11 1 11] [0 1 0 -- -- 0 --] [ 36 36 2 ] A := [ -1 1 9] [0 0 1 -- -- 0 -] [ 12 12 2] [ 1-36 18] [0 0 0 1 -- --- --] > A := pivot(a,4,4); [ 4 21 369] [1 0 0 0 -- -- ---] [ 11 11 11 ] [0 1 0 0 0 1 5] A := [ 1-3 51] [0 0 1 0 -- -- --] [ 1-36 18] [0 0 0 1 -- --- --]

AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM 5 This is optimal and LP-feasible, but not integral. For the next Gomory cut, we use the third row: x 2 = 51 11 1 11 s 2 + 3 11 s 3. So the cut is 7 11 1 11 s 2 8 11 s 3 0. We introduce a new slackness variable s 4 and a new constraint 1 11 s 2 8 11 s 3 + s 4 = 7 11. > A := extend(a,1,1,0); [ 4 21 369 ] [1 0 0 0 -- -- --- 0] [ 11 11 11 ] [0 1 0 0 0 1 5 0] [ 1-3 51 ] A := [0 0 1 0 -- -- -- 0] [ 11 11 11 ] [ 1-36 18 ] [0 0 0 1 -- --- -- 0] [ 11 11 11 ] [0 0 0 0 0 0 0 0] > for i from 1 to 5 do A[i,8] := A[i,7] : A[i,7] := 0 : od : A[5,8] :=-7/11 : A[5,7] := 1 : A[5,6] := -8/11 : A[5,5] :=-1/11 :print(a); [ 4 21 369] [1 0 0 0 -- -- 0 ---] [ 11 11 11 ] [0 1 0 0 0 1 0 5] [ 1-3 51] [0 0 1 0 -- -- 0 --] [ 1-36 18] [0 0 0 1 -- --- 0 --] [ -1-8 -7] [0 0 0 0 -- -- 1 --] One step of the dual simplex method gives

6 AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM > A := mulrow(a,5,-11/8); [ 4 21 369] [1 0 0 0 -- -- 0 ---] [ 11 11 11 ] [0 1 0 0 0 1 0 5] [ 1-3 51] [0 0 1 0 -- -- 0 --] A := [ 1-36 18] [0 0 0 1 -- --- 0 --] [ 1-11 7] [0 0 0 0-1 --- -] [ 8 8 8] > A := pivot(a,5,6); [ 1 21 255] [1 0 0 0-0 -- ---] [ -1 11 33] [0 1 0 0 -- 0 -- --] [ 1-3 39] A := [0 0 1 0-0 -- --] [ 1-9 9] [0 0 0 1-0 -- -] [ 2 2 2] [ 1-11 7] [0 0 0 0-1 --- -] [ 8 8 8] This is optimal, but not integral. For our next cut, we choose the penultimate row: This gives the Gomory cut s 1 = 9 2 1 2 s 2 + 9 2 s 4. 1 2 1 2 s 2 1 2 s 4 0. We introduce a new slackness variable s 5 and a new constraint 1 2 s 2 1 2 s 4 + s 5 = 1 2.

AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM 7 Thus > A := extend(a,1,1,0); [ 1 21 255 ] [1 0 0 0-0 -- --- 0] [ -1 11 33 ] [0 1 0 0 -- 0 -- -- 0] [ 1-3 39 ] [0 0 1 0-0 -- -- 0] A := [ 1-9 9 ] [0 0 0 1-0 -- - 0] [ 2 2 2 ] [ 1-11 7 ] [0 0 0 0-1 --- - 0] [0 0 0 0 0 0 0 0 0] > for i from 1 to 6 do A[i,9] := A[i,8] : A[i,8] := 0 : od : A[6,9] :=-1/2 : A[6,8] := 1 : A[6,7] := -1/2 : A[6,5] :=-1/2 : print(a); [ 1 21 255] [1 0 0 0-0 -- 0 ---] [ -1 11 33] [0 1 0 0 -- 0 -- 0 --] [ 1-3 39] [0 0 1 0-0 -- 0 --] [ 1-9 9] [0 0 0 1-0 -- 0 -] [ 2 2 2] [ 1-11 7] [0 0 0 0-1 --- 0 -] [ 8 8 8] [ -1-1 -1] [0 0 0 0 -- 0 -- 1 --]

8 AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM [ 2 2 2 ] One step of the dual simplex algorithm gives > A := mulrow(a,6,-2); [ 1 21 255] [1 0 0 0-0 -- 0 ---] [ -1 11 33] [0 1 0 0 -- 0 -- 0 --] [ 1-3 39] [0 0 1 0-0 -- 0 --] A := [ 1-9 9] [0 0 0 1-0 -- 0 -] [ 2 2 2] [ 1-11 7] [0 0 0 0-1 --- 0 -] [ 8 8 8] [0 0 0 0 1 0 1-2 1] > A := pivot(a,6,5); [ 5 1 127] [1 0 0 0 0 0 - - ---] [ 3-1 17] [0 1 0 0 0 0 - -- --] [ -1 1 19] A := [0 0 1 0 0 0 -- - --] [0 0 0 1 0 0-5 1 4] [ -3 1 3] [0 0 0 0 0 1 -- - -] [ 2 4 4] [0 0 0 0 1 0 1-2 1] This is optimal, but still not integral! For our next cut, we take the second row: x 1 = 17 4 3 2 s 4 + 1 4 s 5.

AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM 9 This gives the Gomory cut 1 4 1 2 s 4 3 4 s 5 0. We introduce a new slackness variable s 6 and write our new constraint as 1 2 s 4 3 4 s 5 + s 6 = 1 4. The new tableau is then > A := extend(a,1,1,0); [ 5 1 127 ] [1 0 0 0 0 0 - - --- 0] [ 3-1 17 ] [0 1 0 0 0 0 - -- -- 0] [ -1 1 19 ] [0 0 1 0 0 0 -- - -- 0] A := [0 0 0 1 0 0-5 1 4 0] [ -3 1 3 ] [0 0 0 0 0 1 -- - - 0] [0 0 0 0 1 0 1-2 1 0] [0 0 0 0 0 0 0 0 0 0] > for i from 1 to 7 do A[i,10] := A[i,9] : A[i,9] := 0 : od : A[7,10] :=-1/4 : A[7,9] := 1 : A[7,8] := -3/4 : A[7,7] :=-1/2 :print(a); [ 5 1 127] [1 0 0 0 0 0 - - 0 ---] [ 3-1 17] [0 1 0 0 0 0 - -- 0 --] [ -1 1 19] [0 0 1 0 0 0 -- - 0 --] [0 0 0 1 0 0-5 1 0 4] [ -3 1 3] [0 0 0 0 0 1 -- - 0 -]

10 AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM [ 2 4 4] [0 0 0 0 1 0 1-2 0 1] [ -1-3 -1] [0 0 0 0 0 0 -- -- 1 --] One step of the dual simplex algorithm then gives > A := mulrow(a,7,-4/3); [ 5 1 127] [1 0 0 0 0 0 - - 0 ---] [ 3-1 17] [0 1 0 0 0 0 - -- 0 --] [ -1 1 19] [0 0 1 0 0 0 -- - 0 --] A := [0 0 0 1 0 0-5 1 0 4] [ -3 1 3] [0 0 0 0 0 1 -- - 0 -] [ 2 4 4] [0 0 0 0 1 0 1-2 0 1] [ 2-4 1] [0 0 0 0 0 0-1 -- -] [ 3 3 3] > A := pivot(a,7,8); [ 7 1 95] [1 0 0 0 0 0-0 - --] [ 3 3 3 ] [ 5-1 13] [0 1 0 0 0 0-0 -- --] [ 3 3 3 ] [ -2 1 14] [0 0 1 0 0 0 -- 0 - --] [ 3 3 3 ] [ -17 4 11] A := [0 0 0 1 0 0 --- 0 - --] [ 3 3 3 ]

AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM 11 [ -5 1 2] [0 0 0 0 0 1 -- 0 - -] [ 3 3 3] [ 7-8 5] [0 0 0 0 1 0-0 -- -] [ 3 3 3] [ 2-4 1] [0 0 0 0 0 0-1 -- -] [ 3 3 3] Optimal, but not integral. We take the second row for our next cut. After introducing the new slackness variable s 7, we write the new constraint as Then, after the dual simplex step, 2 3 s 4 2 3 s 6 + s7 = 1 3. > A := pivot(a,8,9); [ 1 63] [1 0 0 0 0 0 2 0 0 - --] [ 2 2 ] [ -1 9] [0 1 0 0 0 0 2 0 0 -- -] [ 2 2] [ 1 9] [0 0 1 0 0 0-1 0 0 - -] [ 2 2] A := [0 0 0 1 0 0-7 0 0 2 3] [ 1 1] [0 0 0 0 0 1-2 0 0 - -] [ 2 2] [0 0 0 0 1 0 5 0 0-4 3] [0 0 0 0 0 0 2 1 0-2 1] [ -3 1] [0 0 0 0 0 0 1 0 1 -- -] [ 2 2] Not integral! We use the second row for the next cut: 1 2 s 7 + s 8 = 1 2. The optimal tableau for the new problem is then

12 AN EXAMPLE OF THE GOMORY CUTTING PLANE ALGORITHM > A := pivot(a,9,10); [1 0 0 0 0 0 2 0 0 0 1 31] [0 1 0 0 0 0 2 0 0 0-1 5] [0 0 1 0 0 0-1 0 0 0 1 4] [0 0 0 1 0 0-7 0 0 0 4 1] A := [0 0 0 0 0 1-2 0 0 0 1 0] [0 0 0 0 1 0 5 0 0 0-8 7] [0 0 0 0 0 0 2 1 0 0-4 3] [0 0 0 0 0 0 1 0 1 0-3 2] [0 0 0 0 0 0 0 0 0 1-2 1] This optimal and integral. The solution of our IP is thus x 1 = 5 and x 2 = 4.