(* max x0 = 6x1 +5x2  s.t. x1 + 8x2 ≤ 20, 6x1+2x2 ≤ 21 *)

Plot[{20/8-x/8,10.5-3x},{x,-1,5},PlotRange->{{0,4},{0,4}},GridLines->Automatic,Filling->Axis,PlotLabel->"Feasible Region" ]

Plot[{20/8-x/8,10.5-3x,1263/230-6x/5},{x,-1,5},PlotRange->{{0,4},{0,4}},GridLines->Automatic,Filling->Axis,PlotLabel->"LP solution, objective function in grey" ]

Plot[{20/8-x/8,10.5-3x,1263/230-6x/5},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"LP solution, truncated region" ]

Solve[{x1+8x2+x3==20,6  x1+2  x2+x4==21,6 x1 + 5 x2 -x0==0},{x1,x2,x0}]

Plot[{20/8-x/8,10.5-3x,1263/230-6x/5,4-x},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"LP solution, Ideal formulation in greenish blue" ]

Plot[{20/8-x/8,10.5-3x,597/110-6x/5,11/4-x/4,
},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"Cut generated from x1 constraint"]

(* Cutting plane from first constraint is: x1 + 4x2 ≤ 11 *)Solve[{x1+8x2+x3==20,6  x1+2  x2+x4==21,6 x1 + 5 x2 -x0==0,x1+4x2+x5==11},{x1,x2,x3,x0}]

Plot[{20/8-x/8,10.5-3x,264/50-6x/5,11/4-x/4,13/4-x/2
},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"Cut generated from x3 constraint"]

Solve[{x1+8x2+x3==20,6  x1+2  x2+x4==21,6 x1 + 5 x2 -x0==0,x1+4x2+x5==11,x3-3x5+x6==0},{x1,x2,x3,x5,x0}]

Plot[{20/8-x/8,10.5-3x,232/45-6x/5,11/4-x/4,13/4-x/2,22/3-2x},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"Cut generated from x2 constraint"]

Solve[{x1+8x2+x3==20,6  x1+2  x2+x4==21,6 x1 + 5 x2 -x0==0,x1+4x2+x5==11,x3-3x5+x6==0,x2-x4+x7==1},{x1,x2,x3,x5,x4,x0}]

Plot[{20/8-x/8,10.5-3x,126/25-6x/5,11/4-x/4,13/4-x/2,22/3-2x,15/4-3x/4},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"Cut generated from x1 constraint"]

Solve[{x1+8x2+x3==20,6  x1+2  x2+x4==21,6 x1 + 5 x2 -x0==0,x1+4x2+x5==11,x3-3x5+x6==0,x2-x4+x7==1,x1-x6+x8==2},{x1,x2,x3,x4,x5,x6,x0}]
Plot[{20/8-x/8,10.5-3x,126/25-6x/5,11/4-x/4,13/4-x/2,22/3-2x,15/4-3x/4,4-x},{x,-1,5},PlotRange->{{2,4},{1,3}},Filling->Axis,PlotLabel->"Getting closer to ideal formuation..."]

Solve[{x1+8x2+x3==20,6  x1+2  x2+x4==21,6 x1 + 5 x2 -x0==0,x1+4x2+x5==11,x3-3x5+x6==0,x2-x4+x7==1,x1-x6+x8==2},{x3,x4,x5,x6,x7,x8,x0}]