Professional Documents
Culture Documents
Linear Programming - Duality & Modeling Tricks: 70-257 Optimization For Business
Linear Programming - Duality & Modeling Tricks: 70-257 Optimization For Business
Lecture 10
Linear Programming — Duality & Modeling Tricks
Announcements
• Homework 5 due Wednesday
Today’s Class
1. Duality
2. LP Modeling Tricks
Lecture 1:
Duality
Example
Show that the following LP is infeasible:
min x1 + 2x2 + x3
s.t. x1 3x2 + 4x3 2
2x1 + x2 x3 1
x1 + 2x2 + x3 1
x 1 , x 2 , x3 0 <latexit sha1_base64="ksK3cruvZ7IeTt4NjPDWi5nz0DI=">AAACynicbZFNb9QwEIadlI8SvpZy5DJiBULQjZIUqVW5VOIABw5FYttKm1XkeGdTq7YT2U67q2hv/EJuHPkneJOA2m7Hsvxq5hmPPZNXghsbRb89f+ve/QcPtx8Fj588ffZ88GLnxJS1ZjhmpSj1WU4NCq5wbLkVeFZppDIXeJpffF7HTy9RG16qH3ZZ4VTSQvE5Z9Q6Vzb4k+ZYcNVQwQv1fhWkFhe2kVytIHgL6aduwSKL4QMkiyxxxyLbgzTtURPacJMdwV7HfmzhAmGUuJRrVNJduaZG8B+K4Sa1WddRd0C7jtht4wIhClJUs39fygbDKIxag00R92JIejvOBr/SWclqicoyQY2ZxFFlpw3VljOBrkW1wYqyC1rgxElFJZpp045iBW+cZwbzUrutLLTe6xkNlcYsZe5ISe25uR1bO++KTWo7P5g2XFW1RcW6QvNagC1hPVeYcY3MiqUTlGnu3grsnGrKrJt+4JoQ3/7ypjhJwjgK4+/J8Oiwb8c2eUVek3ckJvvkiHwlx2RMmPfFk96ld+V/87W/9JsO9b0+5yW5Yf7Pv3o7zBA=</latexit>
Constraint
Binding Not Binding
Variable
<latexit sha1_base64="xx7/QGKEQTZkonRCypKmOGYCeOA=">AAAB8nicbVBNSwMxEJ31s9avqkcvwSKIh7JbBEUQKl48VrAfsF1LNs22odlkSbJiWfozvHhQxKu/xpv/xrTdg7Y+GHi8N8PMvDDhTBvX/XaWlldW19YLG8XNre2d3dLeflPLVBHaIJJL1Q6xppwJ2jDMcNpOFMVxyGkrHN5M/NYjVZpJcW9GCQ1i3BcsYgQbK/lP3euHU3SFvGq1Wyq7FXcKtEi8nJQhR71b+ur0JEljKgzhWGvfcxMTZFgZRjgdFzuppgkmQ9ynvqUCx1QH2fTkMTq2Sg9FUtkSBk3V3xMZjrUexaHtjLEZ6HlvIv7n+amJLoKMiSQ1VJDZoijlyEg0+R/1mKLE8JElmChmb0VkgBUmxqZUtCF48y8vkma14rkV7+6sXLvM4yjAIRzBCXhwDjW4hTo0gICEZ3iFN8c4L8678zFrXXLymQP4A+fzB8Vrj5I=</latexit>
x⇤A = 122 <latexit sha1_base64="OXFmJdtIt3w/OZ8wSBzLbwIVwfQ=">AAACCHicbZDLSsNAFIYn9VbrLerShYNFEIWSVMULCAU3LlxU6A3aGCbTaTt0MgkzEyGELt34Km5cKOLWR3Dn2zhNs9DWHwY+/nMOZ87vhYxKZVnfRm5ufmFxKb9cWFldW98wN7caMogEJnUcsEC0PCQJo5zUFVWMtEJBkO8x0vSG1+N684EISQNeU3FIHB/1Oe1RjJS2XHM3dqv3h/AIXsTubQp2GcZuTeMVPD61XLNolaxUcBbsDIogU9U1vzrdAEc+4QozJGXbtkLlJEgoihkZFTqRJCHCQ9QnbY0c+UQ6SXrICO5rpwt7gdCPK5i6vycS5EsZ+57u9JEayOna2Pyv1o5U79xJKA8jRTieLOpFDKoAjlOBXSoIVizWgLCg+q8QD5BAWOnsCjoEe/rkWWiUS7ZVsu9OipXLLI482AF74ADY4AxUwA2ogjrA4BE8g1fwZjwZL8a78TFpzRnZzDb4I+PzByyHlZA=</latexit>
yP⇤ + 9yL
⇤
+ 12yT⇤ = 350
x⇤H = 78
<latexit sha1_base64="kAKDDRe77fNFISy9HhbXurejQkk=">AAAB8XicbVBNSwMxEJ31s9avqkcvwSKIh7IrQosgFLz0WMF+YLuWbJptQ5PskmTFsvRfePGgiFf/jTf/jWm7B219MPB4b4aZeUHMmTau++2srK6tb2zmtvLbO7t7+4WDw6aOEkVog0Q8Uu0Aa8qZpA3DDKftWFEsAk5bwehm6rceqdIskndmHFNf4IFkISPYWOn+qVd7OEfXqFzpFYpuyZ0BLRMvI0XIUO8Vvrr9iCSCSkM41rrjubHxU6wMI5xO8t1E0xiTER7QjqUSC6r9dHbxBJ1apY/CSNmSBs3U3xMpFlqPRWA7BTZDvehNxf+8TmLCip8yGSeGSjJfFCYcmQhN30d9pigxfGwJJorZWxEZYoWJsSHlbQje4svLpHlR8tySd3tZrF5lceTgGE7gDDwoQxVqUIcGEJDwDK/w5mjnxXl3PuatK042cwR/4Hz+AG8wj2k=</latexit>
<latexit sha1_base64="x/hgTBQDlrY0sJE7KoN5AMdqhNk=">AAACCHicbZDLSsNAFIYn9VbrLerShYNFEIWSqFQRhIIbFy4q9AZtDJPppB06mYSZiRBCl258FTcuFHHrI7jzbZymWWj1h4GP/5zDmfN7EaNSWdaXUZibX1hcKi6XVlbX1jfMza2WDGOBSROHLBQdD0nCKCdNRRUjnUgQFHiMtL3R1aTevidC0pA3VBIRJ0ADTn2KkdKWa+4mbv3uEB7BauLeZGBXYeI2NF7CE8tyzbJVsTLBv2DnUAa56q752euHOA4IV5ghKbu2FSknRUJRzMi41IsliRAeoQHpauQoINJJs0PGcF87feiHQj+uYOb+nEhRIGUSeLozQGooZ2sT879aN1b+uZNSHsWKcDxd5McMqhBOUoF9KghWLNGAsKD6rxAPkUBY6exKOgR79uS/0Dqu2FbFvj0t1y7yOIpgB+yBA2CDM1AD16AOmgCDB/AEXsCr8Wg8G2/G+7S1YOQz2+CXjI9vJmCVjA==</latexit>
yP⇤ + 6yL
⇤
+ 16yT⇤ = 300
12x⇤A + 16x⇤H = 2712 < 2880 <latexit sha1_base64="HpWE22qz9IB1gEm8XZPj2j4APbA=">AAACCHicbZDLSgMxFIYz9VbrbdSlC4NFEIUyGcQWUai46bKCvUA7Dpk004ZmLiQZaSlduvFV3LhQxK2P4M63MW1nodUfAh//OYeT83sxZ1JZ1peRWVhcWl7JrubW1jc2t8ztnbqMEkFojUQ8Ek0PS8pZSGuKKU6bsaA48DhteP3rSb1xT4VkUXirhjF1AtwNmc8IVtpyzX1kD9yru2N4AtHZwK1ouoR2EdnwAtqlkuWaeatgTQX/AkohD1JVXfOz3YlIEtBQEY6lbCErVs4IC8UIp+NcO5E0xqSPu7SlMcQBlc5oesgYHmqnA/1I6BcqOHV/ToxwIOUw8HRngFVPztcm5n+1VqL8kjNiYZwoGpLZIj/hUEVwkgrsMEGJ4kMNmAim/wpJDwtMlM4up0NA8yf/hbpdQFYB3Zzmy+dpHFmwBw7AEUCgCMqgAqqgBgh4AE/gBbwaj8az8Wa8z1ozRjqzC37J+PgGKhmU7A==</latexit>
yT⇤ = 0
<latexit sha1_base64="w4RdzXANEtKAiTqvxmlZ7Zuk0+M=">AAAB8HicbVBNSwMxEJ2tX7V+VT16CRZBPJRdERRBKHjxWKFf0q4lm2bb0CS7JFlhWforvHhQxKs/x5v/xrTdg7Y+GHi8N8PMvCDmTBvX/XYKK6tr6xvFzdLW9s7uXnn/oKWjRBHaJBGPVCfAmnImadMww2knVhSLgNN2ML6d+u0nqjSLZMOkMfUFHkoWMoKNlR7SfuPxDN0gt1+uuFV3BrRMvJxUIEe9X/7qDSKSCCoN4VjrrufGxs+wMoxwOin1Ek1jTMZ4SLuWSiyo9rPZwRN0YpUBCiNlSxo0U39PZFhonYrAdgpsRnrRm4r/ed3EhFd+xmScGCrJfFGYcGQiNP0eDZiixPDUEkwUs7ciMsIKE2MzKtkQvMWXl0nrvOq5Ve/+olK7zuMowhEcwyl4cAk1uIM6NIGAgGd4hTdHOS/Ou/Mxby04+cwh/IHz+QP8Wo8t</latexit>
(yP⇤ , yL
⇤
, yT⇤ ) = (200, 50/3, 0)
<latexit sha1_base64="f4N4jtir0NtK7DALrxyyPxBMTkk=">AAACDXicbVDLSgMxFM3UV62vqks3wSq0pdRMVRRBKLhx4aJCX9BOh0yatqGZB0lGGIb+gBt/xY0LRdy6d+ffmD4W2nrgcg/n3EtyjxNwJhVC30ZiaXlldS25ntrY3NreSe/u1aUfCkJrxOe+aDpYUs48WlNMcdoMBMWuw2nDGd6M/cYDFZL5XlVFAbVc3PdYjxGstGSnj7KRXenkCzCy76at2snn4DXMlhAqnKOT0wLK2ekMKqIJ4CIxZyQDZqjY6a921yehSz1FOJayZaJAWTEWihFOR6l2KGmAyRD3aUtTD7tUWvHkmhE81koX9nyhy1Nwov7eiLErZeQ6etLFaiDnvbH4n9cKVe/SipkXhIp6ZPpQL+RQ+XAcDewyQYnikSaYCKb/CskAC0yUDjClQzDnT14k9VLRREXz/ixTvprFkQQH4BBkgQkuQBncggqoAQIewTN4BW/Gk/FivBsf09GEMdvZB39gfP4AgUiWsw==</latexit>
Lecture 1:
LP Modeling Tricks
Warm-up
• Is this a linear program?
maximize 2x + y 2
subject to x 3y 2 = 10
<latexit sha1_base64="Uy0seZxOayHLKrnj3ykpPTSXTKk=">AAACgnicbZFdb9MwFIadMGCUrw4uuTmi2oSGKEl3wYRAmsQNl0Oi26SmVI5zmpnZTrBPUEvUH8Lf4o5fA86HYGwcydLr57yWj1+npZKOouhnEN7Yunnr9vadwd179x88HO48OnFFZQVORaEKe5Zyh0oanJIkhWelRa5Thafpxbumf/oVrZOF+UjrEuea50YupeDk0WL4PUkxl6bGL1VL9jeDnnAlc4PZZrAHCeGKas1XUstv2JA9mKzgOaw/TSBJ/jhclX5GQUBF51nBCzhoPG/jqPN1NMkRIhgkaLK/17S7S2MshqNoHLUF10XcixHr63gx/JFkhag0GhKKOzeLo5LmNbckhfJTJ5XDkosLnuPMS8M1unndRriBXU8yWBbWL0PQ0ssnaq6dW+vUOzWnc3e118D/9WYVLQ/ntTRlRWhEd9GyUj4jaP4DMml9ZGrtBRdW+llBnHPLBflfa0KIrz75ujiZjONoHH+YjI5e93FssyfsKXvGYvaKHbH37JhNmWC/gt1gHLwMt8L9MA4POmsY9Gces38qfPMbr4a8aQ==</latexit>
x 0
• Let z = y 2
<latexit sha1_base64="ODwqLCEj2Ad4BIlDDjYmPdtIFnE=">AAAB8HicbVBNSwMxEJ31s9avqkcvwVbwVHZ7UQSh4MVjBfsh7VqyabYNTbJLkhXWpb/CiwdFvPpzvPlvTNs9aOuDgcd7M8zMC2LOtHHdb2dldW19Y7OwVdze2d3bLx0ctnSUKEKbJOKR6gRYU84kbRpmOO3EimIRcNoOxtdTv/1IlWaRvDNpTH2Bh5KFjGBjpfvKE7pC6UOt0i+V3ao7A1omXk7KkKPRL331BhFJBJWGcKx113Nj42dYGUY4nRR7iaYxJmM8pF1LJRZU+9ns4Ak6tcoAhZGyJQ2aqb8nMiy0TkVgOwU2I73oTcX/vG5iwgs/YzJODJVkvihMODIRmn6PBkxRYnhqCSaK2VsRGWGFibEZFW0I3uLLy6RVq3pu1butleuXeRwFOIYTOAMPzqEON9CAJhAQ8Ayv8OYo58V5dz7mrStOPnMEf+B8/gDTRY8S</latexit>
maximize 2x + z
subject to x 3z = 10
<latexit sha1_base64="s+nYu2L72qP1Fv3cqDDEfecM8Mk=">AAACi3icbVHbbhMxEPUutxAohPLIy4iICnGJdtOHVi1IlRASj0UibaU4irzeydat7V1sb5VklZ/hk3jjb/BeBKVlJEtnzpnRjM8khRTWRdGvILxz9979B72H/UePt548HTzbPrF5aThOeC5zc5Ywi1JonDjhJJ4VBplKJJ4ml59q/fQKjRW5/uZWBc4Uy7RYCM6cp+aDHzTBTOgKv5cN82bT7xgmRaYx3fR3gDpcukqxpVBijTWzA+MlvIU1UPpHt2VygdyBy9uKJbyH3TV8jKO2quVohhC9A3pID+v2OutT1OnfeU12bZ/5YBiNoibgNog7MCRdHM8HP2ma81Khdlwya6dxVLhZxYwTXPr1aWmxYPySZTj1UDOFdlY1Xm7glWdSWOTGP+2gYa93VExZu1KJr1TMndubWk3+T5uWbrE/q4QuSoeat4MWpfR2QX0YSIXx7smVB4wb4XcFfs4M486frzYhvvnl2+BkPIqjUfx1PDw66OzokRfkJXlNYrJHjsgXckwmhAe9YBTsBfvhVrgbHoQf2tIw6Hqek38i/PwbMAG+Mg==</latexit>
x 0, z 0
• This is cute, but pretty limited. Let’s see some more general tricks.
Trick 1: Absolute Value in the Objective
• Applies to minimization problems with an absolute value in the
objective function
• Example: minimize |x y|
subject to 2x 3y 5
<latexit sha1_base64="EOfkrHiao94Y6HjsceO9J5Alg48=">AAACjnicbVHbbtQwEHXCrWy5BHjkxWJFhRCskkUF1BWiEi99LBLbVlqvVo4zm5raTmpP0IZ0P4cf4o2/wclGUFrGsnTmzBnN+DgtlXQYx7+C8MbNW7fvbN0dbN+7/+Bh9OjxkSsqK2AqClXYk5Q7UNLAFCUqOCktcJ0qOE7PPrX1429gnSzMF6xLmGueG7mUgqOnFtEPlkIuTQPnVce8XA96hiuZG8jWgx3KEFbYaGmklt+hZXboxYq+pvUFZeyPwFXpVxBIsdhIxq3kTU1ZDnS307Vn1eXxK8ombEJ9VflswMBkf0d22aWVFtEwHsVd0Osg6cGQ9HG4iH6yrBCVBoNCcedmSVzivOEWpVD+BaxyUHJxxnOYeWi4BjdvOjvX9LlnMrosrL8Gacde7mi4dq7WqVdqjqfuaq0l/1ebVbh8P2+kKSsEIzaDlpXyhtH2b2gmrfdP1R5wYaXflYpTbrlA/4OtCcnVJ18HR+NREo+Sz+Ph/l5vxxZ5Sp6RFyQh78g+OSCHZEpEsB0kwV4wCaPwbfgh/LiRhkHf84T8E+HBbyNiwAk=</latexit>
x 0, y 0
<latexit sha1_base64="6Y0PwlEsBRyIyGYqfYjQbqoNDZA=">AAAB8nicbVA9SwNBEJ2LXzF+RS1tFhPBxnCXRrEK2FhGMB9wOcLeZi9Zsrd77O6JZ8jPsLFQxNZfY+e/cZNcoYkPBh7vzTAzL0w408Z1v53C2vrG5lZxu7Szu7d/UD48amuZKkJbRHKpuiHWlDNBW4YZTruJojgOOe2E45uZ33mgSjMp7k2W0CDGQ8EiRrCxkl99Qr0hRY8XWbVfrrg1dw60SrycVCBHs1/+6g0kSWMqDOFYa99zExNMsDKMcDot9VJNE0zGeEh9SwWOqQ4m85On6MwqAxRJZUsYNFd/T0xwrHUWh7Yzxmakl72Z+J/npya6CiZMJKmhgiwWRSlHRqLZ/2jAFCWGZ5Zgopi9FZERVpgYm1LJhuAtv7xK2vWa59a8u3qlcZ3HUYQTOIVz8OASGnALTWgBAQnP8ApvjnFenHfnY9FacPKZY/gD5/MHqGGQJg==</latexit>
x y and z
<latexit sha1_base64="J8Resv6xOU8mvD/K/oF0bk8Gf+I=">AAAB9XicbVBNT8JAEN36ifiFevSyEUzwAGm5aDyRePGIiXwkUMl2mcKG7bbZ3aq14X948aAxXv0v3vw3LtCDgi+Z5OW9mczM8yLOlLbtb2tldW19YzO3ld/e2d3bLxwctlQYSwpNGvJQdjyigDMBTc00h04kgQQeh7Y3vpr67XuQioXiVicRuAEZCuYzSrSR7kpPuDcEXCk/VpKzUr9QtKv2DHiZOBkpogyNfuGrNwhpHIDQlBOluo4daTclUjPKYZLvxQoiQsdkCF1DBQlAuens6gk+NcoA+6E0JTSeqb8nUhIolQSe6QyIHqlFbyr+53Vj7V+4KRNRrEHQ+SI/5liHeBoBHjAJVPPEEEIlM7diOiKSUG2CypsQnMWXl0mrVnXsqnNTK9Yvszhy6BidoDJy0Dmqo2vUQE1EkUTP6BW9WQ/Wi/VufcxbV6xs5gj9gfX5A9+FkMI=</latexit>
(x y)
minimize z
subject to 2x 3y 5
z x y, z x+y
<latexit sha1_base64="Zc6Kca/4yiT5I6bqYd6NjpAdDsw=">AAACyXicbZHfb9MwEMed8GuUXx088nKiAiHYqqQIDbGXSUgIiZch0W1SXVWOc828OU5mO1PTqE/8h7zxxp+C40ZjdJxk6evPfU/nOyelFMZG0a8gvHX7zt17W/d7Dx4+evykv/30yBSV5jjmhSz0ScIMSqFwbIWVeFJqZHki8Tg5/9Tmjy9RG1Go77YucZqzTIm54Mw6NOv/pglmQjV4UXnyZtXrCJMiU5iueq+AWlzYJhdK5GKJLXHM9260cyyB0iuXqZIz5BZssfaNFrAL72qgGcJ779uohqXPtbZ6B4Du0/0O7Tr4Fmq4qlp4HO2sTS4h3a1HUaV/X+tv16aZ9QfRMPIBN0XciQHp4nDW/0nTglc5KsslM2YSR6WdNkxbwaUbnlYGS8bPWYYTJxXL0UwbP88KXjqSwrzQ7igLnl6vaFhuTJ0nzpkze2o2cy38X25S2fmHaSNUWVlUfN1oXkm3Zmi/FVKh3dZl7QTjWri3Aj9lmnHrPr9dQrw58k1xNBrG0TD+NhocfOzWsUWekxfkNYnJHjkgX8ghGRMefA5kUAWX4dfwIlyEy7U1DLqaZ+SfCH/8AddK1DA=</latexit>
x 0, y 0
Trick 1: Absolute Value in the Objective
• In general, replace the absolute value with a new variable, and add
two new constraints
minimize |r1 x1 + r2 x2 + r3 x3 + · · · + rn xn |
subject to
<latexit sha1_base64="CyjcbyVTn5oLaB8Cj59KK4T+OaY=">AAAClHicbZFNb9QwEIad8FWWry2VuHCxWFEhkFbJ9lCEOGxVVeKEisS2lTaryHFmt25tJ9gT1CXdX8S/4dZ/wyQbQWkZydLjd8b2zOus1MpjFF0F4Z279+4/2HjYe/T4ydNn/c3nR76onISJLHThTjLhQSsLE1So4aR0IEym4Tg732/yx9/BeVXYr7gsYWbEwqq5kgJJSvs/kwwWytbwrWqVt6tepwitFhbyVW+bJwgXWBtllVE/oFG2+aVLY35B6x136Yho1NIO0Q5RIvMCfStZkuwlT5I/N/kqOwOJHIv1XetiKkjA5n8fbnfXGkv7g2gYtcFvQ9zBgHVxmPZ/JXkhKwMWpRbeT+OoxFktHCqpaY6k8lAKeS4WMCW0woCf1a2pK/6alJzPC0fLIm/V6ydqYbxfmowqjcBTfzPXiP/LTSucv5/VypYVgpXrh+aVJjd480M8V47M0UsCIZ2iXrk8FU5IpH9sTIhvjnwbjkbDOBrGX0aD8YfOjg32kr1ib1jMdtmYfWKHbMJksBnsBuNgL3wRfgz3w4N1aRh0Z7bYPxF+/g1SvcSx</latexit>
···
minimize z
subject to ···
z r1 x 1 + r2 x 2 + r3 x 3 + · · · + rn x n
<latexit sha1_base64="7EnyFso6oW++nXluiLGT9vyANDo=">AAAC/3icdVJNb9QwEHXCV1k+uqXixMViRYVAWSXbA4hTJS4ci8S2lTarlePMpqa2E2wHdZvuoX+FSw8gxJW/wY1/wySbXfoBI1l6fvPm2TN2UkhhXRj+9vwbN2/dvrN2t3Pv/oOH692NR3s2Lw2HIc9lbg4SZkEKDUMnnISDwgBTiYT95Ohtnd//DMaKXH9wswLGimVaTAVnDqnJhvc4TiATuoJPZUO9mHdahkmRaUjnnS0aOzh2lRJaKHECNYNcc3hlUHFC43ilsmXyEbijLl/q0tzZWrB1qYhiVQbUTCJ6jOslogGiQYO2EW0jWhQ3lEZK0//6BEujYGUUrIyCpVGwNOrEoNO/LTa7CyOYdHthP2yCXgdRC3qkjd1J91ec5rxUoB2XzNpRFBZuXDHjBJc4sbi0UDB+xDIYIdRMgR1XTRdz+gyZlE5zg0s72rAXKyqmrJ2pBJWKuUN7NVeT/8qNSjd9Pa6ELkoHmi8OmpYS34bWn4GmwuBTyRkCxo3Au1J+yAzjDr9MPYToasvXwd6gH4X96P2gt/OmHccaeUKekuckIq/IDnlHdsmQcO/U++J99b75Z/65/93/sZD6XluzSS6F//MPV1HpAg==</latexit>
z r1 x 1 r2 x 2 r3 x 3 ··· rn x n
Trick 1: Absolute Value in the Objective
• This also works when there are additional terms in the objective…
minimize |x y| + 2y minimize z + 2y
subject to 2x 3y 5 subject to 2x 3y 5
<latexit sha1_base64="THEk4foIZM/xIIfKXs4wjcWgU9I=">AAACk3icbVFNb9QwEHXCV1m+UhAnLiNWVAjoKlnUFrEHVsCBC1KR2LbSerVynNnU1HFS26k2pPuH+Dnc+Dc42QhKy1iW3rx5oxk/x4UUxobhL8+/dv3GzVsbt3t37t67/yDYfHhg8lJznPBc5vooZgalUDixwko8KjSyLJZ4GJ98aOqHZ6iNyNVXWxU4y1iqxEJwZh01D37QGFOhajwtW+bFqtcxTIpUYbLqbQG1uLR1JpTIxHdsmC04X8I2VOfwEoYVUPpHZcr4G3ILNl/rho3utZOkCDutrjnLNg9fAR3REbiqdFmPokr+zm2zC3vNg344CNuAqyDqQJ90sT8PftIk52WGynLJjJlGYWFnNdNWcOmeQUuDBeMnLMWpg4plaGZ16+kKnjkmgUWu3VUWWvZiR80yY6osdsqM2WNzudaQ/6tNS7t4M6uFKkqLiq8HLUrpDIPmgyAR2vknKwcY18LtCvyYacat+8bGhOjyk6+Cg+EgCgfRl2F//LazY4M8IU/JcxKRPTImn8g+mRDuBd6u984b+4/9kf/e/7iW+l7X84j8E/7n32rcwVE=</latexit>
x 0, y 0 z x y, z x+y
<latexit sha1_base64="YdgYpx5O7UZhYlY7O2b/zOWY5wc=">AAACzXicbZJNb9NAEIbX5quErwBHLiMiEKJtZAdVIHqpxAVxoUikrZSNovV64i5dr939QHFMuPL/uHHnh7B2DJSUkSzNPu873p3ZTUopjI2iH0F45eq16ze2bvZu3b5z917//oMjUzjNccwLWeiThBmUQuHYCivxpNTI8kTicXL2ptGPP6M2olAfbVXiNGeZEnPBmfVo1v9JE8yEqvHcteT5qtcRJkWmMF31ngK1uLB1LpTIxRIb4lm7d629YwnbMKoo/eM0LvmE3IIt1t7RAnbhRQU0Q9hrfRt/gGWrNbZqB4Du0/0O7Xq4Db70d9WixdHO2uQF6Vc9iir9e+J2daGjWX8QDaM24HISd8mAdHE463+nacFdjspyyYyZxFFppzXTVnDpB0CdwZLxM5bhxKeK5WimddvPCp54ksK80P5TFlp6saJmuTFVnnhnzuyp2dQa+D9t4uz81bQWqnQWFV9vNHfSjxmaq4VUaD91WfmEcS38WYGfMs249Q+gGUK82fLl5Gg0jKNh/GE0OHjdjWOLPCKPyTMSk5fkgLwlh2RMePAuKIMqWIbvQxd+Cb+urWHQ1Twk/0T47RfkaNVO</latexit>
x 0, y 0
• …and even multiple absolute values being added (perform the
trick separately for each absolute value)
maximize |x y| maximize z
subject to 2x 3y 5 subject to 2x 3y 5
<latexit sha1_base64="c8mrePXAZ1WKFigAILlS80EG+aM=">AAACjnicbVHbbtQwEHXCrWy5BHjkxWJFhRCskkUF1BWiEi99LBLbVlqvVo4zm5raTmpP0IZ0P4cf4o2/wclGUFrGsnTmzBnN+DgtlXQYx7+C8MbNW7fvbN0dbN+7/+Bh9OjxkSsqK2AqClXYk5Q7UNLAFCUqOCktcJ0qOE7PPrX1429gnSzMF6xLmGueG7mUgqOnFtEPlkIuTQPnVce8XA96hiuZG8jWgx3KEFbYaL6SWn6HltmhFyv6mtYXlLE/AlelX0EgxWIjGbeSNzVlOdDdTteeVZfHryibsAn1VeWzAQOT/R3ZZZdWWkTDeBR3Qa+DpAdD0sfhIvrJskJUGgwKxZ2bJXGJ84ZblEL5F7DKQcnFGc9h5qHhGty86exc0+eeyeiysP4apB17uaPh2rlap16pOZ66q7WW/F9tVuHy/byRpqwQjNgMWlbKG0bbv6GZtN4/VXvAhZV+VypOueUC/Q+2JiRXn3wdHI1HSTxKPo+H+3u9HVvkKXlGXpCEvCP75IAckikRwXaQBHvBJIzCt+GH8ONGGgZ9zxPyT4QHvwEnUsAL</latexit>
x 0, y 0 z x y, z x+y
<latexit sha1_base64="Ic54OjnPdUzNr+87dwvvUTlLT6Y=">AAACyXicbZFNa9wwEIZlpx/p9mvTHnsZurSUNlnsDSEluQQKpdBLCt0ksFoWWZ51lMiyI8nBXrOn/sPeeutPqew1abrpgODVM+8wmlGUS2FsEPzy/I179x883HzUe/zk6bPn/a0XJyYrNMcxz2SmzyJmUAqFYyusxLNcI0sjiafR5acmf3qN2ohMfbdVjtOUJUrMBWfWoVn/N40wEarGq6Il75e9jjApEoXxsvcWqMXS1ikrRSoW2BDH2t61do4FUHrjMkV0gdyCzVa+UQk7sFsBTRD2Wt9aNSzaXGOrtgHoIT3s0I6DH6CCm6qyxcH2yuQS0t16FFX897Xt7dY0s/4gGAZtwF0RdmJAujie9X/SOONFispyyYyZhEFupzXTVnDphqeFwZzxS5bgxEnFUjTTup1nCW8ciWGeaXeUhZberqhZakyVRs6ZMntu1nMN/F9uUtj5x2ktVF5YVHzVaF5It2ZovhViod3WZeUE41q4twI/Z5px6z6/WUK4PvJdcTIahsEw/DYaHB1069gkr8hr8o6EZJ8ckS/kmIwJ9z570iu8a/+rf+WX/mJl9b2u5iX5J/wffwDbsNQy</latexit>
x 0, y 0
minimize |x y| minimize z
subject to 2x 3y 5 subject to 2x 3y 5
<latexit sha1_base64="93Fu4Ljw9akDMn6BPQwKAnyuaQA=">AAACj3icbVFdb9MwFHXC1ygDOnjkxaJiQohVSRHaRBGqxAu8DYluk+qqcpzbzJvtZPYNasj6d/hBvPFvcNIIxsa1LJ177rm618dJoaTDKPoVhLdu37l7b+t+78H2w0eP+ztPjlxeWgFTkavcniTcgZIGpihRwUlhgetEwXFy/rGpH38D62RuvmJVwFzzzMilFBw9tej/YAlk0tRwUbbMq3WvY7iSmYF03dulDGGFtZZGavkdGmaX7l2u6B6tLiljfxSuTM5AIMV8oxk1kjcVZRnQt62uOas2j15TNmZj6qvKZz0GJv07s82u7LToD6Jh1Aa9CeIODEgXh4v+T5bmotRgUCju3CyOCpzX3KIUyj+BlQ4KLs55BjMPDdfg5nXr55q+8ExKl7n11yBt2asdNdfOVTrxSs3x1F2vNeT/arMSlwfzWpqiRDBiM2hZKm8YbT6HptJ6/1TlARdW+l2pOOWWC/Rf2JgQX3/yTXA0GsbRMP4yGkzedXZskWfkOXlJYrJPJuQTOSRTIoLtYBSMg/fhTrgffggnG2kYdD1PyT8Rfv4NtYvAQA==</latexit>
x 0, y 0 z x y, z x+y
<latexit sha1_base64="NsOfZdG3uM2fmj/y6QT8tQ47+W4=">AAACynicbZFNbxMxEIa9y1cJXwGOXEZEIARNtBuEQPRSiQMcOBSJtJXiKPJ6J1u3tnexvSWbVW78Qm4c+Sd4N6tSUkay9PqZdzSecVJIYV0U/QrCa9dv3Ly1c7t35+69+w/6Dx8d2rw0HCc8l7k5TphFKTROnHASjwuDTCUSj5KzD03+6ByNFbn+6qoCZ4plWiwEZ86jef83TTATusZvZUternsdYVJkGtN17zlQh0tXK6GFEitsiGdt79p4x3AFlF7YbJmcInfg8o1xvIQhvK6AZghvWt9WOazaXGOrdgHoHt3r0NDDV1DBRdWyxdHuxuQT0t96FHX697nt7dI48/4gGkVtwFURd2JAujiY93/SNOelQu24ZNZO46hws5oZJ7j009PSYsH4Gctw6qVmCu2sbudZwzNPUljkxh/toKWXK2qmrK1U4p2KuRO7nWvg/3LT0i3ezWqhi9Kh5ptGi1L6NUPzr5AK47cuKy8YN8K/FfgJM4w7//vNEuLtka+Kw/Eojkbxl/Fg/323jh3yhDwlL0hM3pJ98okckAnhwcdABefB9/BzaMIqrDfWMOhqHpN/IvzxB3cW1Gc=</latexit>
x 0, y 0
Trick 2: Minimax Objective
• Applies to minimization problems whose objective function is the
maximum of multiple linear expressions
• What is max{8
<latexit sha1_base64="h+lJQVCuI5ln5CNSyxKsFIYsgsc=">AAACDXicbZDLSsNAFIYn9VbrLerSzWArCGpJ6sKim4IblxXsBZpQJtNJOziThJmJNIS+gBtfxY0LRdy6d+fbOE2z0NYfBj7+cw5nzu9FjEplWd9GYWl5ZXWtuF7a2Nza3jF399oyjAUmLRyyUHQ9JAmjAWkpqhjpRoIg7jHS8e6vp/XOAxGShsGdSiLicjQMqE8xUtrqm5WKw9HYSevwDI5PoXMFz8fwBCYZJtq0nUmlb5atqpUJLoKdQxnkavbNL2cQ4piTQGGGpOzZVqTcFAlFMSOTkhNLEiF8j4akpzFAnEg3za6ZwCPtDKAfCv0CBTP390SKuJQJ93QnR2ok52tT879aL1Z+3U1pEMWKBHi2yI8ZVCGcRgMHVBCsWKIBYUH1XyEeIYGw0gGWdAj2/MmL0K5Vbatq39bKjcs8jiI4AIfgGNjgAjTADWiCFsDgETyDV/BmPBkvxrvxMWstGPnMPvgj4/MHoCSXbA==</latexit>
x, 3x + y, y 1}?
<latexit sha1_base64="TykOfCRXW9fjsCujY7FR8kTtzzo=">AAAB9HicbVDLSgNBEOz1GeMr6tHLYCJ4MezmongKePEYwTwgWcLspDcZMvtwZjawLvkOLx4U8erHePNvnCR70MSChqKqm+4uLxZcadv+ttbWNza3tgs7xd29/YPD0tFxS0WJZNhkkYhkx6MKBQ+xqbkW2Ikl0sAT2PbGtzO/PUGpeBQ+6DRGN6DDkPucUW0kt/JEekMkKbkkTqVfKttVew6ySpyclCFHo1/66g0ilgQYaiaoUl3HjrWbUak5Ezgt9hKFMWVjOsSuoSENULnZ/OgpOTfKgPiRNBVqMld/T2Q0UCoNPNMZUD1Sy95M/M/rJtq/djMexonGkC0W+YkgOiKzBMiAS2RapIZQJrm5lbARlZRpk1PRhOAsv7xKWrWqY1ed+1q5fpPHUYBTOIMLcOAK6nAHDWgCg0d4hld4sybWi/VufSxa16x85gT+wPr8Ae1dkDM=</latexit>
y 1, z <latexit sha1_base64="NBs2OcUJpFZdHqwgF4BuJ3cT0A8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYCIIQtiNB8VTwIvHCOYB2SXMTnqTIbMPZmbFNeQ3vHhQxKs/482/cZLsQRMLGoqqbrq7/ERwpW3721pZXVvf2CxsFbd3dvf2SweHLRWnkmGTxSKWHZ8qFDzCpuZaYCeRSENfYNsf3Uz99gNKxePoXmcJeiEdRDzgjGojuZUn4g6QXDyeZ5VeqWxX7RnIMnFyUoYcjV7py+3HLA0x0kxQpbqOnWhvTKXmTOCk6KYKE8pGdIBdQyMaovLGs5sn5NQofRLE0lSkyUz9PTGmoVJZ6JvOkOqhWvSm4n9eN9XBlTfmUZJqjNh8UZAKomMyDYD0uUSmRWYIZZKbWwkbUkmZNjEVTQjO4svLpFWrOnbVuauV69d5HAU4hhM4AwcuoQ630IAmMEjgGV7hzUqtF+vd+pi3rlj5zBH8gfX5Axp6kGE=</latexit>
3x + y, and z
<latexit sha1_base64="uQG/FIDMbJofz96whQpGc6Qy0yA=">AAAB8nicbVA9SwNBEN3zM8avqKXNYiLYGO7SGKwCNpYRzAdcjrC32UuW7O0eu3NiPPIzbCwUsfXX2Plv3CRXaOKDgcd7M8zMCxPBDbjut7O2vrG5tV3YKe7u7R8clo6O20almrIWVULpbkgME1yyFnAQrJtoRuJQsE44vpn5nQemDVfyHiYJC2IylDzilICV/MoT7g0Zrl8+Vvqlslt158CrxMtJGeVo9ktfvYGiacwkUEGM8T03gSAjGjgVbFrspYYlhI7JkPmWShIzE2Tzk6f43CoDHCltSwKeq78nMhIbM4lD2xkTGJllbyb+5/kpRPUg4zJJgUm6WBSlAoPCs//xgGtGQUwsIVRzeyumI6IJBZtS0YbgLb+8Stq1qudWvbtauXGdx1FAp+gMXSAPXaEGukVN1EIUKfSMXtGbA86L8+58LFrXnHzmBP2B8/kDRRyP5Q==</latexit>
8 x
maximize
minimize z <latexit sha1_base64="fVxkKCgVjHAoIk0+h0ZZZrbjs5g=">AAAB73icbVA9SwNBEJ2LXzF+RS1tFoNgFe7SKFYBG8sI5gOSEPY2c8mS3b1zd0+IR/6EjYUitv4dO/+Nm+QKjT4YeLw3w8y8MBHcWN//8gpr6xubW8Xt0s7u3v5B+fCoZeJUM2yyWMS6E1KDgitsWm4FdhKNVIYC2+Hkeu63H1AbHqs7O02wL+lI8Ygzap3UkVxxyR9xUK74VX8B8pcEOalAjsag/NkbxiyVqCwT1Jhu4Ce2n1FtORM4K/VSgwllEzrCrqOKSjT9bHHvjJw5ZUiiWLtSlizUnxMZlcZMZeg6JbVjs+rNxf+8bmqjy37GVZJaVGy5KEoFsTGZP0+GXCOzYuoIZZq7WwkbU02ZdRGVXAjB6st/SatWDfxqcFur1K/yOIpwAqdwDgFcQB1uoAFNYCDgCV7g1bv3nr03733ZWvDymWP4Be/jG1xnkCI=</latexit>
subject to 2x 3y 5
z x y, z x+y
<latexit sha1_base64="Ic54OjnPdUzNr+87dwvvUTlLT6Y=">AAACyXicbZFNa9wwEIZlpx/p9mvTHnsZurSUNlnsDSEluQQKpdBLCt0ksFoWWZ51lMiyI8nBXrOn/sPeeutPqew1abrpgODVM+8wmlGUS2FsEPzy/I179x883HzUe/zk6bPn/a0XJyYrNMcxz2SmzyJmUAqFYyusxLNcI0sjiafR5acmf3qN2ohMfbdVjtOUJUrMBWfWoVn/N40wEarGq6Il75e9jjApEoXxsvcWqMXS1ikrRSoW2BDH2t61do4FUHrjMkV0gdyCzVa+UQk7sFsBTRD2Wt9aNSzaXGOrtgHoIT3s0I6DH6CCm6qyxcH2yuQS0t16FFX897Xt7dY0s/4gGAZtwF0RdmJAujie9X/SOONFispyyYyZhEFupzXTVnDphqeFwZzxS5bgxEnFUjTTup1nCW8ciWGeaXeUhZberqhZakyVRs6ZMntu1nMN/F9uUtj5x2ktVF5YVHzVaF5It2ZovhViod3WZeUE41q4twI/Z5px6z6/WUK4PvJdcTIahsEw/DYaHB1069gkr8hr8o6EZJ8ckS/kmIwJ9z570iu8a/+rf+WX/mJl9b2u5iX5J/wffwDbsNQy</latexit>
x 0, y 0
Trick 2: Minimax Objective
• Just like Trick 1, Trick 2 works when there are additional terms in
the objective, and when there are multiple max’s being added
(perform the trick separately for each max)
• Just like Trick 1, Trick 2 does NOT work for maximization problems
(Maximax), or when the max is negated