https://learnche.org/wiki_4G3/api.php?action=feedcontributions&user=Kevin+Dunn&feedformat=atom
Optimization for Chemical Engineering: 4G3 - User contributions [en]
2024-03-28T21:58:15Z
User contributions
MediaWiki 1.37.1
https://learnche.org/wiki_4G3/index.php?title=MediaWiki:Common.js&diff=343
MediaWiki:Common.js
2022-03-22T15:41:23Z
<p>Kevin Dunn: Blanked the page</p>
<hr />
<div></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=340
Main Page
2018-08-12T11:59:17Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <br />
|}<br />
<!--<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}} --><br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Optimization_for_Chemical_Engineering:_4G3:About&diff=339
Optimization for Chemical Engineering: 4G3:About
2018-08-12T11:59:02Z
<p>Kevin Dunn: </p>
<hr />
<div>== Disclaimer: Errors, omissions and liability ==<br />
<br />
There might be errors, even though I work hard at making sure there are not. It would be great if you report any issues to me: '''kgdunn@gmail.com'''. Please note however that all material is provided "as-is" and no liability will be accepted for your usage of the material. <br />
<br />
== Copyright and usage ==<br />
<br />
1. The copyright of all materials on this site is held by Kevin Dunn, unless indicated otherwise.<br />
<br />
2. Course slides are licensed under the very permissive [http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 Unported (CC BY-SA 4.0)] license, unless indicated otherwise.<br />
<br />
:In particular, you are free <br />
:* '''to share''' - to copy, distribute and transmit the work<br />
:* '''to adapt''' - but you must distribute the new result under the same or similar license to this one<br />
:* '''to commercialize''' - you ''are allowed'' to create commercial applications based on this work <br />
:* '''attribution''' - but you must attribute the work as follows:<br />
:** "Portions of this work are the copyright of Kevin Dunn" ''or''<br />
:** "This work is the copyright of Kevin Dunn"<br />
:<br />
: You don't have to, but it would be nice if you [mailto:kgdunn@gmail.com tell us you are using the slides]. That way we can let you know of any errors.<br />
: Please tell us you find errors on the website or in the slides.<br />
: Please ask for permission if you'd like changes to the above terms and conditions.<br />
<br />
3. All computer source code is licensed under the [http://en.wikipedia.org/wiki/BSD_license 2-clause BSD license], so you are free to use it a way compatible with that license.<br />
<br />
== Privacy ==<br />
<br />
Google Analytics and other web log handling tools are used to monitor this site's usage. Please feel free to block these scripts.<br />
<br />
The classes may be video and/or audio recorded; these recordings will be posted online. Your voice and/or yourself may sometimes appear in these videos. Please let me know if you have any serious objections.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Optimization_for_Chemical_Engineering:_4G3:About&diff=338
Optimization for Chemical Engineering: 4G3:About
2018-08-12T11:58:18Z
<p>Kevin Dunn: </p>
<hr />
<div>== Disclaimer: Errors, omissions and liability ==<br />
<br />
There might be errors, even though I work hard at making sure there are not. It would be great if you report any issues to me: '''kgdunn@gmail.com'''. Please note however that all material is provided "as-is" and no liability will be accepted for your usage of the material. <br />
<br />
== Copyright and usage ==<br />
<br />
1. The copyright of all materials on this site is held by Kevin Dunn, unless indicated otherwise.<br />
<br />
2. Course slides are licensed under the very permissive [http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 Unported (CC BY-SA 4.0)] license, unless indicated otherwise.<br />
<br />
:In particular, you are free <br />
:* '''to share''' - to copy, distribute and transmit the work<br />
:* '''to adapt''' - but you must distribute the new result under the same or similar license to this one<br />
:* '''to commercialize''' - you ''are allowed'' to create commercial applications based on this work <br />
:* '''attribution''' - but you must attribute the work as follows:<br />
:** "Portions of this work are the copyright of Kevin Dunn" ''or''<br />
:** "This work is the copyright of Kevin Dunn"<br />
:<br />
: You don't have to, but it would be nice if you [mailto:kevin.dunn@mcmaster.ca tell us you are using the slides]. That way we can let you know of any errors.<br />
: Please tell us you find errors on the website or in the slides.<br />
: Please ask for permission if you'd like changes to the above terms and conditions.<br />
<br />
3. All computer source code is licensed under the [http://en.wikipedia.org/wiki/BSD_license 2-clause BSD license], so you are free to use it a way compatible with that license.<br />
<br />
== Privacy ==<br />
<br />
Google Analytics and other web log handling tools are used to monitor this site's usage. Please feel free to block these scripts.<br />
<br />
The classes may be video and/or audio recorded; these recordings will be posted online. Your voice and/or yourself may sometimes appear in these videos. Please let me know if you have any serious objections.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=337
Non-linear programming
2018-08-12T11:57:37Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 <br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 <br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 <br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 <br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 <br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 <br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 <br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10B.mp4 <br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 <br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=336
Non-linear programming
2018-08-12T11:56:56Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 <br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 <br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 <br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 <br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 <br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 <br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 <br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10B.mp4 <br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 <br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 Video]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|[http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|[http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-10BA.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=335
Non-linear programming
2018-08-12T11:56:48Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 <br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 <br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 <br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 <br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 <br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 <br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 <br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10B.mp4 <br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 <br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Mixed-Integer_linear_programming&diff=334
Mixed-Integer linear programming
2018-08-12T11:55:53Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 25 March 2015<br />
| dates_alt_text = <br />
| vimeoID1 = 8sIC8WFyEQ0<br />
| vimeoID2 = NHiTIGi5I5o<br />
| vimeoID3 = RGVepaP7AXk<br />
| vimeoID4 = VJC-0rPN7aY<br />
| vimeoID5 = IREdFiZXq2c<br />
| vimeoID6 =<br />
| vimeoID7 =<br />
| vimeoID8 =<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11B.mp4<br />
| video_download_link_MP4_size = 787 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12A.mp4<br />
| video_download_link2_MP4_size = 905 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12B.mp4<br />
| video_download_link3_MP4_size = 884 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13A.mp4<br />
| video_download_link4_MP4_size = 952 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13B.mp4<br />
| video_download_link5_MP4_size = 994 M<br />
| video_notes5 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! References and Notes<br />
|-<br />
| 25 March<br />
| 11B<br />
| align="left" colspan="1"|<br />
* Representation of integer variables<br />
* Types of problems that can be solved with integer variables<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/12jmwaBfvSu0l8Wn3KC0JIJGBqjdloteNQJMgkW6aQyY Handout from class]<br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 30 March<br />
| 12A<br />
| align="left" colspan="1"|<br />
More problems that can be solved with integer variables<br />
* Knapsack problem<br />
* Mutual exclusivity constraints<br />
* Dependence constraints<br />
* Allocation problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EhXsp-Whc-DfgxvSkAAqu3jRyOcBo-HubWvOqpQ1LQg Handout from class]<br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 01 April<br />
| 12B<br />
| align="left" colspan="1"|<br />
The branch and bound procedure to solve integer problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1MxIsIPG1uTNvAUFvyaHFUln1ClpUgTADi2HgbFPdkeU/edit?usp=sharing Handout from class] <br />
<br />
[[Media:Sequence-of-branch-and-bound-steps-4G3-2015.pdf |Sequence of the branch and bound steps]]<br />
|align="left" colspan="1"| <br />
See code below to solve the original problem, and then the relaxed problem.<br />
<br />
See another example problem below (with solution).<br />
|-<br />
| 06 April<br />
| 13A<br />
| align="left" colspan="1"|<br />
Working towards understanding schedule problems in engineering<br />
* Gantt chart approach<br />
* What the search variables mean<br />
* What objective function choices exist<br />
* Setting up the integer (disjunctive) variables constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo/ Handout from class] <br />
|align="left" colspan="1"| <br />
See code below for the simple scheduling problem (3 products on 1 unit).<br />
|-<br />
| 08 April<br />
| 13B<br />
| align="left" colspan="1"|<br />
Scheduling problems<br />
<br />
Course wrap-up<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM Handout from class] <br />
|align="left" colspan="1"| <br />
* The first 10 pages of [http://www.inf.ufpr.br/aurora/disciplinas/topicosia2/livros/search/integer.pdf this textbook chapter] give some great background to integer programs, and how they are solved.<br />
* See code below for the multi-unit multi-product (3 products on 4 units) scheduling problem.<br />
|}<br />
<br />
<br />
<br />
===Solving a basic ILP===<br />
<syntaxhighlight lang="matlab"><br />
free variable income "total income";<br />
positive variables x1, x2;<br />
binary variable delta "use ingredient x3 or not at all";<br />
<br />
EQUATIONS<br />
obj "maximize income",<br />
blend "blending constraint";<br />
obj.. income =E= 18*x1 - 3*x2 - 9*(20*delta);<br />
blend.. 2*x1 + x2 + 7*(20*delta) =L= 150;<br />
x1.up = 25;<br />
x2.up = 30;<br />
<br />
model recipe /all/;<br />
SOLVE recipe using MIP maximizing income;<br />
</syntaxhighlight><br />
<br />
===Solving the knapsack problem===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the knapsack";<br />
<br />
parameter v(j) "value of object j"<br />
/1 4,<br />
2 2,<br />
3 10,<br />
4 1,<br />
5 2/;<br />
<br />
parameter w(j) "weight of object j"<br />
/1 12,<br />
2 1,<br />
3 4,<br />
4 1,<br />
5 2/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 15;<br />
<br />
model knapsack /all/;<br />
solve knapsack using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
=== Solving the knapsack problem for selecting amount projects, with constraints ===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the project";<br />
<br />
parameter v(j) "value of object j"<br />
/1 50,<br />
2 72,<br />
3 25,<br />
4 41,<br />
5 17/;<br />
<br />
parameter w(j) "cost of object j"<br />
/1 8,<br />
2 21,<br />
3 15,<br />
4 10,<br />
5 7/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint",<br />
me1v2 "1 and 2 are mutually exclusive",<br />
me1v3v5 "1, 3 and 5 are mutually exclusive",<br />
d4v3 "4 depends on 3";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 35;<br />
<br />
me1v2.. x('1') + x('2') =L= 1;<br />
me1v3v5.. x('1') + x('3') + x('5') =L= 1;<br />
d4v3.. x('4') =L= x('3');<br />
<br />
model projects /all/;<br />
solve projects using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
===Binary problem relaxation ===<br />
This is the problem we looked at in class for the generators.<br />
<br />
Notice that the only differences are:<br />
* the <tt>binary</tt> variables become <tt>positive</tt> variables, thepr<br />
* the problem is solved as an <tt>LP</tt> not an <tt>MIP</tt><br />
* the constraints for <tt>.LO</tt> and <tt>.UP</tt> are added, where required, depending on the partial solution solved<br />
{| class="wikitable" style="vertical-align:top"<br />
|-<br />
! Original problem solved in class<br />
! Relaxed problem solved in class<br />
|-<br />
| style="vertical-align:top" |<br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
binary variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using MIP minimizing cost;<br />
</syntaxhighlight><br />
| <br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
positive variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
* Solve the problem for the partial solution: (#, 0, #, 1)<br />
x.LO('1')=0;<br />
x.UP('1')=1;<br />
<br />
x.LO('2')=0;<br />
x.UP('2')=0;<br />
<br />
x.LO('3')=0;<br />
x.UP('3')=1;<br />
<br />
x.LO('4')=1;<br />
x.UP('4')=1;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using LP minimizing cost;<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Example problem to practice ===<br />
The objective is to '''''maximize''''' the objective function value, \(z\). The table or partial solutions is provided below. The only constraints are that all the 3 search variables must be binary (0 or 1). The "relaxed" refers to the relaxed problem solution.<br />
<br />
[[Image:4G3-2015-MIP-Practice-problem.png|750px]]<br />
<br />
Use the depth-first search method, and when branching, choose the branch with \(x_i = 0\) before the \(x_i=1\) branch.<br />
<br />
If you do this, your nodes will have the following solution order:<br />
<br />
Node 0 \((z=82.80)\)<br />
<br />
Node 1 \((z=80.67)\)<br />
<br />
Node 2 \((z=28.00)\) [incumbent]<br />
<br />
Node 3 \((z=79.4)\)<br />
<br />
Node 4 \((z=\text{Infeasible})\)<br />
<br />
Node 5 \((z=77.00)\) [incumbent; turns out this is the eventual optimum]<br />
<br />
Node 6 \((z=74.00)\) <br />
<br />
[The end: can you prove why?]<br />
<br />
<br />
<!-- <br />
\begin{center}\begin{tabular}{ccc|ccc}<br />
Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ & Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ \\ \hline<br />
(\#,\#,\#) & (0.2,1,0) & 82.80 & (0,0,1) & \multicolumn{2}{c}{Infeasible} \\<br />
(\#,\#,0) & (0.2,1,0) & 82.80 & (0,1,\#) & (0,1,0.67) & 80.67 \\<br />
(\#,\#,1) & (0,0.8,1) & 79.40 & (0,1,0) & (0,1,0) & 28.00 \\<br />
(\#,0,\#) & (0.7,0,0) & 81.80 & (0,1,1) & (0,1,1) & 77.00 \\<br />
(\#,0,0) & (0.7,0,0) & 81.80 & (1,\#,\#) & (1,0,0) & 74.00 \\<br />
(\#,0,1) & (0.4,0,1) & 78.60 & (1,\#,0) & (1,0,0) & 74.00 \\<br />
(\#,1,\#) & (0.2,1,0) & 82.80 & (1,\#,1) & (1,0,1) & 63.00 \\<br />
(\#,1,0) & (0.2,1,0) & 82.80 & (1,0,\#) & (1,0,0) & 74.00 \\<br />
(\#,1,1) & (0,1,1) & 77.00 & (1,0,0) & (1,0,0) & 74.00 \\<br />
(0,\#,\#) & (0,1,0.67) & 80.67 & (1,0,1) & (1,0,1) & 63.00 \\<br />
(0,\#,0) & (0,1,0) & 28.00 & (1,1,\#) & (1,1,0) & 62.00 \\<br />
(0,\#,1) & (0,0.8,1) & 79.40 & (1,1,0) & (1,1,0) & 62.00 \\<br />
(0,0,\#) & \multicolumn{2}{c|}{Infeasible} & (1,1,1) & (1,1,1) & 51.00 \\<br />
(0,0,0) & \multicolumn{2}{c|}{Infeasible} & \\<br />
\end{tabular}\end{center}<br />
--><br />
<br />
=== Simple schedule: one unit, 3 products ===<br />
This example was covered in [https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo class 13A]:<br />
<syntaxhighlight lang="python"><br />
set j "jobs" /1*3/;<br />
alias (j,jp);<br />
<br />
parameter p(j) "process time of j"<br />
/ 1 15, 2 6, 3 9/;<br />
<br />
scalar M "bigM";<br />
M = sum(j, p(j));<br />
free variable MeanComp "Mean completion time";<br />
positive variables x(j) "Start time of job j";<br />
binary variables y(j,jp) "Disjunctive variable for j and jp";<br />
<br />
EQUATIONS<br />
MeanCeqn "Mean completion time",<br />
Disj1(j,jp) "Disjunctive part 1",<br />
Disj2(j,jp) "Disjunctive part 2";<br />
<br />
MeanCeqn.. MeanComp =E= sum(j, x(j)+p(j) ) / card(j);<br />
Disj1(j,jp)$(ord(j) lt ord(jp)).. x(j) + p(j) =L= x(jp) + M*(1-y(j,jp));<br />
Disj2(j,jp)$(ord(j) lt ord(jp)).. x(jp)+ p(jp) =L= x(j) + M*y(j,jp);<br />
<br />
MODEL simplesched /all/;<br />
SOLVE simplesched using MIP minimizing MeanComp;<br />
</syntaxhighlight><br />
<br />
=== Scheduling 3 products on 4 units ===<br />
This example was covered in [https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM/edit class 13B]:<br />
<syntaxhighlight lang="python"><br />
* Based on: https://comp.uark.edu/~rrardin/oorbook/software/gams/custommw.gms<br />
set j "Products" /A*C/,<br />
k "Units" /1*4/;<br />
alias (j,jp);<br />
alias (k,kp);<br />
<br />
set succ(j,k,kp) "Product j successor pairs"<br />
/A.1.2, A.2.3, A.3.4,<br />
B.3.4,<br />
C.3.2, C.2.4/;<br />
<br />
TABLE p(j,k) "Process time of product j on unit k"<br />
1 2 3 4<br />
A 1 5 4.0 1.5<br />
B 0 0 4.5 1.0<br />
C 0 3 5.0 1.5; <br />
<br />
scalar M "bigM";<br />
M = sum((j,k), p(j,k));<br />
FREE variable<br />
AverageC "Average completion time";<br />
<br />
POSITIVE variables x(j,k) "Start time of job (product) j on unit k: j.k";<br />
BINARY variables y(j,jp,k) "Disjunctive variable for j and jp on k";<br />
<br />
EQUATIONS<br />
avgComplete "Average completeness",<br />
pred(j,k,kp) "Precedence within jobs",<br />
disj1(j,jp,k) "Disjunctive part 1 for j and jp on k",<br />
disj2(j,jp,k) "Disjunctive part 2 for j and jp on k";<br />
<br />
avgComplete.. AverageC =E= sum((j,k), x(j,k)+p(j,k) ); <br />
<br />
* These are the precedence constraints<br />
pred(j,k,kp)$succ(j,k,kp).. x(j,k) + p(j,k) =L= x(j,kp);<br />
<br />
disj1(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(j,k) + p(j,k) =L= x(jp,k) + M*(1-y(j,jp,k));<br />
<br />
disj2(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(jp,k) + p(jp,k) =L= x(j,k) + M*y(j,jp,k);<br />
MODEL Jobshop /all/;<br />
option mip = mosek;<br />
SOLVE Jobshop USING MIP minimizing AverageC;<br />
</syntaxhighlight></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Linear_programming&diff=333
Linear programming
2018-08-12T11:54:50Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 07 January to 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = c5d5Sqh5enE<br />
| vimeoID2 = E-GlTTLzbSc<br />
| vimeoID3 = jUq6QTTAPJc<br />
| vimeoID4 = t_U015J0iqQ<br />
| vimeoID5 = ZDr5iu9LzuE<br />
| vimeoID6 = EUC4dRqZhXw<br />
| vimeoID7 = hpuAPO3BTew<br />
| vimeoID8 = loWOX4zCpZ0<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4<br />
| video_download_link_MP4_size = 610 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4<br />
| video_download_link2_MP4_size = 812 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4<br />
| video_download_link3_MP4_size = 840 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4<br />
| video_download_link4_MP4_size = 820 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4<br />
| video_download_link5_MP4_size = 807 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4<br />
| video_download_link6_MP4_size = 819 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4<br />
| video_download_link7_MP4_size = 817 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4<br />
| video_download_link8_MP4_size = 459 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = <br />
| video_download_link9_MP4_size = M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = <br />
| video_download_link10_MP4_size = M<br />
| video_notes10 =<br />
| video_download_link11_MP4 = <br />
| video_download_link11_MP4_size = M<br />
| video_notes11 =<br />
| video_download_link12_MP4 =<br />
| video_download_link12_MP4_size = M<br />
| video_notes12 =}}<br />
<br />
== References ==<br />
<br />
Dr. Marlin has made a [[Media:4G3-Linear-Programming-Notes-Thomas-Marlin.pdf |great, short e-book on Linear Programming]]. You will find reading his notes very rewarding, and a great supplement to the class lectures.<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! References and Notes<br />
|-<br />
| 07 January<br />
| 01B<br />
| align="left" colspan="1"|<br />
* Degrees of freedom<br />
* Terminology related to optimization<br />
* Introductory linear programming problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1WxIMpERJgZZUbdok_eUAFdMJ_2U2A_jDAVq0sSoJ2ro Handout from class]<br />
|align="left" colspan="1"|<br />
|-<br />
| 12 January<br />
| 02A<br />
| align="left" colspan="1"|<br />
* More terminology related to optimization<br />
* Continue with our introductory LP problem<br />
* Geometric aspects of the optimum<br />
* Moving LP problems into standard form<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1zQkvE0h9S-NRgGJIxD-zVGD6fbsHUSFRFK3hjW-hkRg Handout from class]<br />
|align="left" colspan="1"|<br />
We covered topics on page 11, 13, 14 and 17 of the notes by Marlin (see comment above).<br />
|-<br />
| 14 January<br />
| 02B<br />
| align="left" colspan="1"|<br />
* Getting the LP problem into standard form<br />
* Starting to understand the Simplex method to solve LPs<br />
| align="left" rowspan="2"|<br />
[https://docs.google.com/document/d/1NfY58o58LSGGZausUrowQMGdNuftbdCMwDbK-mUF-PQ/ Handout from class] <br />
|align="left" rowspan="2"|<br />
We covered topics on page 21 to 29 of the notes by Marlin, however, I did not focus on the mathematical details; we only consider the geometric viewpoint in 4G3.<br />
|-<br />
| 19 January<br />
| 03A<br />
| align="left" colspan="1"|<br />
* Running the simplex method to solve LPs<br />
* Interpretation of the optimum solution<br />
|-<br />
| 21 January<br />
| 03B<br />
| align="left" colspan="1"|<br />
* Interpretation of general LP models<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/13GjbGCOxqO67pUDfVVQOfzBGvFl6gqZCNIrT54YMFPk Handout from class]<br />
|align="left" |<br />
See page 37 and 38 in Marlin's notes for an alternative visualization of sensitivity analysis.<br />
|-<br />
| 26 January<br />
| 04A<br />
| align="left" colspan="1"|<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
** The effect of \(b_i\) changes on the RHS<br />
** The effect of \(A\) changes on the LHS<br />
** The effect of \(c_i\) changes in the objective<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1o8GdJERF0NvH2EafNbfOSDGIUaV8-pr6roGSb241oXY Handout from class]<br />
|align="left" |<br />
|-<br />
| 28 January and 04 February<br />
| 04B<br />
| align="left" colspan="1"|<br />
* Recapped some concepts on sensitivity analysis<br />
* Considered sensitivity analysis where two or more variables were varied<br />
* Getting a general understanding of LPs<br />
** Allocation problems<br />
** Blending problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EQSzelonUYt0rcyj5s8tOPcQimQvhBKGIKLUgJpURNY/edit Handout from class]<br />
|align="left" |<br />
|}<br />
<br />
<br />
<br />
The R-code used to draw the plot in the class handout 2B and 3A.<br />
<syntaxhighlight lang="R"><br />
plot(c(0, 100), c(0, 70), type = "n", xlab = expression(x[1]), ylab = expression(x[2]), asp = 1)<br />
abline(a=1500/10, b=-16/10, lw=7) # Placement<br />
abline(a=1000/12, b=-10/12, lw=5) # Solder<br />
abline(a=500/8, b=-4/8, lw=3) # Inspection<br />
abline(v=0, h=0)<br />
title(expression("Objective: Maximize 10"~x[1]~"+ 15"~x[2]))<br />
<br />
text(20, 55, expression("Inspection: 4"~x[1]~"+ 8"~x[2]~"+ "~x[5]~" = 500"), srt=332.5) <br />
text(35, 57, expression("Solder: 10"~x[1]~"+ 12"~x[2]~"+ "~x[4]~" = 1000"), srt=319.5)<br />
text(65.5, 50, expression("Placement: 16"~x[1]~"+ 10"~x[2]~"+ "~x[3]~" = 1500"), srt=301)<br />
text(2, 30, expression("Non-negativity: "~x[1]>=~"0"), srt=90)<br />
text(45, 2, expression("Non-negativity: "~x[2]>=~"0"), srt=0)<br />
<br />
delta=2<br />
text(0+delta, 0+delta, "[0]")<br />
text(0+delta, 62.5-2*delta, "[1]")<br />
text(62.5, 31.25-1.5*delta, "[2]")<br />
text(87-delta, 10.9-1.0*delta, "[3]")<br />
text(93.75-2.1*delta, 0+1.0*delta, "[4]")<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Linear_programming&diff=332
Linear programming
2018-08-12T11:53:50Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 07 January to 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = c5d5Sqh5enE<br />
| vimeoID2 = E-GlTTLzbSc<br />
| vimeoID3 = jUq6QTTAPJc<br />
| vimeoID4 = t_U015J0iqQ<br />
| vimeoID5 = ZDr5iu9LzuE<br />
| vimeoID6 = EUC4dRqZhXw<br />
| vimeoID7 = hpuAPO3BTew<br />
| vimeoID8 = loWOX4zCpZ0<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4<br />
| video_download_link_MP4_size = 610 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4<br />
| video_download_link2_MP4_size = 812 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4<br />
| video_download_link3_MP4_size = 840 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4<br />
| video_download_link4_MP4_size = 820 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4<br />
| video_download_link5_MP4_size = 807 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4<br />
| video_download_link6_MP4_size = 819 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4<br />
| video_download_link7_MP4_size = 817 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4<br />
| video_download_link8_MP4_size = 459 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = <br />
| video_download_link9_MP4_size = M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = <br />
| video_download_link10_MP4_size = M<br />
| video_notes10 =<br />
| video_download_link11_MP4 = <br />
| video_download_link11_MP4_size = M<br />
| video_notes11 =<br />
| video_download_link12_MP4 =<br />
| video_download_link12_MP4_size = M<br />
| video_notes12 =}}<br />
<br />
== References ==<br />
<br />
Dr. Marlin has made a [[Media:4G3-Linear-Programming-Notes-Thomas-Marlin.pdf |great, short e-book on Linear Programming]]. You will find reading his notes very rewarding, and a great supplement to the class lectures.<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 07 January<br />
| 01B<br />
| align="left" colspan="1"|<br />
* Degrees of freedom<br />
* Terminology related to optimization<br />
* Introductory linear programming problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1WxIMpERJgZZUbdok_eUAFdMJ_2U2A_jDAVq0sSoJ2ro Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 12 January<br />
| 02A<br />
| align="left" colspan="1"|<br />
* More terminology related to optimization<br />
* Continue with our introductory LP problem<br />
* Geometric aspects of the optimum<br />
* Moving LP problems into standard form<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1zQkvE0h9S-NRgGJIxD-zVGD6fbsHUSFRFK3hjW-hkRg Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4 Video] <br />
|align="left" colspan="1"|<br />
We covered topics on page 11, 13, 14 and 17 of the notes by Marlin (see comment above).<br />
|-<br />
| 14 January<br />
| 02B<br />
| align="left" colspan="1"|<br />
* Getting the LP problem into standard form<br />
* Starting to understand the Simplex method to solve LPs<br />
| align="left" rowspan="2"|<br />
[https://docs.google.com/document/d/1NfY58o58LSGGZausUrowQMGdNuftbdCMwDbK-mUF-PQ/ Handout from class] <br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4 Video] <br />
|align="left" rowspan="2"|<br />
We covered topics on page 21 to 29 of the notes by Marlin, however, I did not focus on the mathematical details; we only consider the geometric viewpoint in 4G3.<br />
|-<br />
| 19 January<br />
| 03A<br />
| align="left" colspan="1"|<br />
* Running the simplex method to solve LPs<br />
* Interpretation of the optimum solution<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4 Video]<br />
|-<br />
| 21 January<br />
| 03B<br />
| align="left" colspan="1"|<br />
* Interpretation of general LP models<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/13GjbGCOxqO67pUDfVVQOfzBGvFl6gqZCNIrT54YMFPk Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4 Video] <br />
|align="left" |<br />
See page 37 and 38 in Marlin's notes for an alternative visualization of sensitivity analysis.<br />
|-<br />
| 26 January<br />
| 04A<br />
| align="left" colspan="1"|<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
** The effect of \(b_i\) changes on the RHS<br />
** The effect of \(A\) changes on the LHS<br />
** The effect of \(c_i\) changes in the objective<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1o8GdJERF0NvH2EafNbfOSDGIUaV8-pr6roGSb241oXY Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4 Video] <br />
|align="left" |<br />
|-<br />
| 28 January and 04 February<br />
| 04B<br />
| align="left" colspan="1"|<br />
* Recapped some concepts on sensitivity analysis<br />
* Considered sensitivity analysis where two or more variables were varied<br />
* Getting a general understanding of LPs<br />
** Allocation problems<br />
** Blending problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EQSzelonUYt0rcyj5s8tOPcQimQvhBKGIKLUgJpURNY/edit Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4 VideoA] and [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4 VideoB]<br />
|align="left" |<br />
|}<br />
<br />
<br />
<br />
The R-code used to draw the plot in the class handout 2B and 3A.<br />
<syntaxhighlight lang="R"><br />
plot(c(0, 100), c(0, 70), type = "n", xlab = expression(x[1]), ylab = expression(x[2]), asp = 1)<br />
abline(a=1500/10, b=-16/10, lw=7) # Placement<br />
abline(a=1000/12, b=-10/12, lw=5) # Solder<br />
abline(a=500/8, b=-4/8, lw=3) # Inspection<br />
abline(v=0, h=0)<br />
title(expression("Objective: Maximize 10"~x[1]~"+ 15"~x[2]))<br />
<br />
text(20, 55, expression("Inspection: 4"~x[1]~"+ 8"~x[2]~"+ "~x[5]~" = 500"), srt=332.5) <br />
text(35, 57, expression("Solder: 10"~x[1]~"+ 12"~x[2]~"+ "~x[4]~" = 1000"), srt=319.5)<br />
text(65.5, 50, expression("Placement: 16"~x[1]~"+ 10"~x[2]~"+ "~x[3]~" = 1500"), srt=301)<br />
text(2, 30, expression("Non-negativity: "~x[1]>=~"0"), srt=90)<br />
text(45, 2, expression("Non-negativity: "~x[2]>=~"0"), srt=0)<br />
<br />
delta=2<br />
text(0+delta, 0+delta, "[0]")<br />
text(0+delta, 62.5-2*delta, "[1]")<br />
text(62.5, 31.25-1.5*delta, "[2]")<br />
text(87-delta, 10.9-1.0*delta, "[3]")<br />
text(93.75-2.1*delta, 0+1.0*delta, "[4]")<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Template:ClassSidebarYouTube&diff=331
Template:ClassSidebarYouTube
2018-08-12T11:53:28Z
<p>Kevin Dunn: </p>
<hr />
<div><div class="sideVideoBox"><br />
{| <br />
|-<br />
| {{#if: {{{date|}}} | '''Class date(s)''': }}<br />
| {{{date}}}<br />
|-<br />
{{#if:{{{course_notes_PDF}}} | <br />
{{!}} [[Image:Nuvola_mimetypes_pdf.png|20px|link=Media:{{{course_notes_PDF}}}]] (PDF)<br />
{{!}} [[Media:{{{course_notes_PDF}}} | {{#if:{{{course_notes_alt|}}} | {{{course_notes_alt}}} | Course notes}} ]]<br />
{{!}}-<br />
}}<br />
{{#if:{{{overheads_PDF}}} | <br />
{{!}} [[Image:Nuvola_mimetypes_pdf.png|20px|link=Media:{{{overheads_PDF}}}]] (PDF)<br />
{{!}} [[Media:{{{overheads_PDF}}} | {{#if:{{{overheads_PDF_alt|}}} | {{{overheads_PDF_alt}}} | Projector overheads}} ]]<br />
{{!}}-<br />
}}<br />
{{#if:{{{assignment_instructions}}} | <br />
{{!}} '''Assignment(s)'''<br />
{{!}} {{{assignment_instructions}}}<br />
{{!}}-<br />
}}<br />
{{#if:{{{assignment_solutions}}} | <br />
{{!}} '''Solutions''' <br />
{{!}} {{{assignment_solutions}}} <br />
{{!}}-<br />
}}<br />
{{#if:{{{vimeoID1|}}}| <!-- Vimeo Video 1--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID1}}}}}<br />
{{!}}- <br />
{{!}} <!-- {{#if:{{{video_download_link_MP4|}}}| '''Download video''': [{{{video_download_link_MP4}}} Link] [{{{video_download_link_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes1|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes1}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID1" --><br />
{{!}}-<br />
{{#if:{{{vimeoID2|}}}| <!-- Vimeo Video 2 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID2}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link2_MP4|}}}| '''Download video''': [{{{video_download_link2_MP4}}} Link] [{{{video_download_link2_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes2|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes2}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID2" --><br />
{{!}}-<br />
{{#if:{{{vimeoID3|}}}| <!-- Vimeo Video 3 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID3}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link3_MP4|}}}| '''Download video''': [{{{video_download_link3_MP4}}} Link] [{{{video_download_link3_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes3|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes3}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID3" --><br />
{{!}}-<br />
{{#if:{{{vimeoID4|}}}| <!-- Vimeo Video 4--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID4}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link4_MP4|}}}| '''Download video''': [{{{video_download_link4_MP4}}} Link] [{{{video_download_link4_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes4|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes4}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID4" --><br />
{{!}}-<br />
{{#if:{{{vimeoID5|}}}| <!-- Vimeo Video 5--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID5}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link5_MP4|}}}| '''Download video''': [{{{video_download_link5_MP4}}} Link] [{{{video_download_link5_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes5|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes5}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID5" --><br />
{{!}}-<br />
{{#if:{{{vimeoID6|}}}| <!-- Vimeo Video 6 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID6}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link6_MP4|}}}| '''Download video''': [{{{video_download_link6_MP4}}} Link] [{{{video_download_link6_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes6|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes6}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID6" --><br />
{{!}}-<br />
{{#if:{{{vimeoID7|}}}| <!-- Vimeo Video 7 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID7}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link7_MP4|}}}| '''Download video''': [{{{video_download_link7_MP4}}} Link] [{{{video_download_link7_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes7|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes7}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID7" --><br />
{{!}}-<br />
{{#if:{{{vimeoID8|}}}| <!-- Vimeo Video 8 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID8}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link8_MP4|}}}| '''Download video''': [{{{video_download_link8_MP4}}} Link] [{{{video_download_link8_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes8|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes8}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID8" --><br />
{{!}}-<br />
{{#if:{{{vimeoID9|}}}| <!-- Vimeo Video 9 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID9}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link9_MP4|}}}| '''Download video''': [{{{video_download_link9_MP4}}} Link] [{{{video_download_link9_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes9|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes9}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID9" --><br />
{{!}}-<br />
{{#if:{{{vimeoID10|}}}| <!-- Vimeo Video 10 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID10}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link10_MP4|}}}| '''Download video''': [{{{video_download_link10_MP4}}} Link] [{{{video_download_link10_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes10|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes10}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID10" --><br />
{{!}}-<br />
{{#if:{{{vimeoID11|}}}| <!-- Vimeo Video 11 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID11}}}}}<br />
{{!}}-<br />
{{!}} <!--{{#if:{{{video_download_link11_MP4|}}}| '''Download video''': [{{{video_download_link11_MP4}}} Link] [{{{video_download_link11_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes11|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes11}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID11" --><br />
{{!}}-<br />
{{#if:{{{vimeoID12|}}}| <!-- Vimeo Video 12 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID12}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link12_MP4|}}}| '''Download video''': [{{{video_download_link12_MP4}}} Link] [{{{video_download_link12_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes12|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes12}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID12" --><br />
{{!}}-<br />
{{#if:{{{vimeoID13|}}}| <!-- Vimeo Video 13 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID13}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link13_MP4|}}}| '''Download video''': [{{{video_download_link13_MP4}}} Link] [{{{video_download_link13_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes13|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes13}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID13" --><br />
{{!}}-<br />
{{#if:{{{vimeoID14|}}}| <!-- Vimeo Video 14 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID14}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link14_MP4|}}}| '''Download video''': [{{{video_download_link14_MP4}}} Link] [{{{video_download_link14_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes14|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes14}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID14" --><br />
{{!}}-<br />
{{#if:{{{vimeoID15|}}}| <!-- Vimeo Video 15 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID15}}}}}<br />
{{!}}-<br />
{{!}} <!-- {{#if:{{{video_download_link15_MP4|}}}| '''Download video''': [{{{video_download_link15_MP4}}} Link] [{{{video_download_link15_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes15|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes15}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID15" --><br />
|}<br />
</div></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Template:ClassSidebarYouTube&diff=330
Template:ClassSidebarYouTube
2018-08-12T11:51:36Z
<p>Kevin Dunn: </p>
<hr />
<div><div class="sideVideoBox"><br />
{| <br />
|-<br />
| {{#if: {{{date|}}} | '''Class date(s)''': }}<br />
| {{{date}}}<br />
|-<br />
{{#if:{{{course_notes_PDF}}} | <br />
{{!}} [[Image:Nuvola_mimetypes_pdf.png|20px|link=Media:{{{course_notes_PDF}}}]] (PDF)<br />
{{!}} [[Media:{{{course_notes_PDF}}} | {{#if:{{{course_notes_alt|}}} | {{{course_notes_alt}}} | Course notes}} ]]<br />
{{!}}-<br />
}}<br />
{{#if:{{{overheads_PDF}}} | <br />
{{!}} [[Image:Nuvola_mimetypes_pdf.png|20px|link=Media:{{{overheads_PDF}}}]] (PDF)<br />
{{!}} [[Media:{{{overheads_PDF}}} | {{#if:{{{overheads_PDF_alt|}}} | {{{overheads_PDF_alt}}} | Projector overheads}} ]]<br />
{{!}}-<br />
}}<br />
{{#if:{{{assignment_instructions}}} | <br />
{{!}} '''Assignment(s)'''<br />
{{!}} {{{assignment_instructions}}}<br />
{{!}}-<br />
}}<br />
{{#if:{{{assignment_solutions}}} | <br />
{{!}} '''Solutions''' <br />
{{!}} {{{assignment_solutions}}} <br />
{{!}}-<br />
}}<br />
{{#if:{{{vimeoID1|}}}| <!-- Vimeo Video 1--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID1}}}}}<br />
{{!}}- <br />
{{!}} <!-- {{#if:{{{video_download_link_MP4|}}}| '''Download video''': [{{{video_download_link_MP4}}} Link] [{{{video_download_link_MP4_size}}}]}} --><br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes1|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes1}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID1" --><br />
{{!}}-<br />
{{#if:{{{vimeoID2|}}}| <!-- Vimeo Video 2 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID2}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link2_MP4|}}}| '''Download video''': [{{{video_download_link2_MP4}}} Link] [{{{video_download_link2_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes2|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes2}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID2" --><br />
{{!}}-<br />
{{#if:{{{vimeoID3|}}}| <!-- Vimeo Video 3 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID3}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link3_MP4|}}}| '''Download video''': [{{{video_download_link3_MP4}}} Link] [{{{video_download_link3_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes3|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes3}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID3" --><br />
{{!}}-<br />
{{#if:{{{vimeoID4|}}}| <!-- Vimeo Video 4--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID4}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link4_MP4|}}}| '''Download video''': [{{{video_download_link4_MP4}}} Link] [{{{video_download_link4_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes4|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes4}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID4" --><br />
{{!}}-<br />
{{#if:{{{vimeoID5|}}}| <!-- Vimeo Video 5--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID5}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link5_MP4|}}}| '''Download video''': [{{{video_download_link5_MP4}}} Link] [{{{video_download_link5_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes5|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes5}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID5" --><br />
{{!}}-<br />
{{#if:{{{vimeoID6|}}}| <!-- Vimeo Video 6 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID6}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link6_MP4|}}}| '''Download video''': [{{{video_download_link6_MP4}}} Link] [{{{video_download_link6_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes6|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes6}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID6" --><br />
{{!}}-<br />
{{#if:{{{vimeoID7|}}}| <!-- Vimeo Video 7 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID7}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link7_MP4|}}}| '''Download video''': [{{{video_download_link7_MP4}}} Link] [{{{video_download_link7_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes7|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes7}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID7" --><br />
{{!}}-<br />
{{#if:{{{vimeoID8|}}}| <!-- Vimeo Video 8 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID8}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link8_MP4|}}}| '''Download video''': [{{{video_download_link8_MP4}}} Link] [{{{video_download_link8_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes8|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes8}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID8" --><br />
{{!}}-<br />
{{#if:{{{vimeoID9|}}}| <!-- Vimeo Video 9 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID9}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link9_MP4|}}}| '''Download video''': [{{{video_download_link9_MP4}}} Link] [{{{video_download_link9_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes9|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes9}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID9" --><br />
{{!}}-<br />
{{#if:{{{vimeoID10|}}}| <!-- Vimeo Video 10 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID10}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link10_MP4|}}}| '''Download video''': [{{{video_download_link10_MP4}}} Link] [{{{video_download_link10_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes10|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes10}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID10" --><br />
{{!}}-<br />
{{#if:{{{vimeoID11|}}}| <!-- Vimeo Video 11 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID11}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link11_MP4|}}}| '''Download video''': [{{{video_download_link11_MP4}}} Link] [{{{video_download_link11_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes11|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes11}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID11" --><br />
{{!}}-<br />
{{#if:{{{vimeoID12|}}}| <!-- Vimeo Video 12 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID12}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link12_MP4|}}}| '''Download video''': [{{{video_download_link12_MP4}}} Link] [{{{video_download_link12_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes12|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes12}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID12" --><br />
{{!}}-<br />
{{#if:{{{vimeoID13|}}}| <!-- Vimeo Video 13 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID13}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link13_MP4|}}}| '''Download video''': [{{{video_download_link13_MP4}}} Link] [{{{video_download_link13_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes13|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes13}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID13" --><br />
{{!}}-<br />
{{#if:{{{vimeoID14|}}}| <!-- Vimeo Video 14 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID14}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link14_MP4|}}}| '''Download video''': [{{{video_download_link14_MP4}}} Link] [{{{video_download_link14_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes14|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes14}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID14" --><br />
{{!}}-<br />
{{#if:{{{vimeoID15|}}}| <!-- Vimeo Video 15 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID15}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link15_MP4|}}}| '''Download video''': [{{{video_download_link15_MP4}}} Link] [{{{video_download_link15_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes15|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes15}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID15" --><br />
|}<br />
</div></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Optimization_for_Chemical_Engineering:_4G3:About&diff=329
Optimization for Chemical Engineering: 4G3:About
2017-01-27T18:28:37Z
<p>Kevin Dunn: </p>
<hr />
<div>== Disclaimer: Errors, omissions and liability ==<br />
<br />
There might be errors, even though I work hard at making sure there are not. It would be great if you report any issues to me: '''kevin.dunn@mcmaster.ca'''. Please note however that all material is provided "as-is" and no liability will be accepted for your usage of the material. <br />
<br />
== Copyright and usage ==<br />
<br />
1. The copyright of all materials on this site is held by Kevin Dunn, unless indicated otherwise.<br />
<br />
2. Course slides are licensed under the very permissive [http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 Unported (CC BY-SA 4.0)] license, unless indicated otherwise.<br />
<br />
:In particular, you are free <br />
:* '''to share''' - to copy, distribute and transmit the work<br />
:* '''to adapt''' - but you must distribute the new result under the same or similar license to this one<br />
:* '''to commercialize''' - you ''are allowed'' to create commercial applications based on this work <br />
:* '''attribution''' - but you must attribute the work as follows:<br />
:** "Portions of this work are the copyright of Kevin Dunn" ''or''<br />
:** "This work is the copyright of Kevin Dunn"<br />
:<br />
: You don't have to, but it would be nice if you [mailto:kevin.dunn@mcmaster.ca tell us you are using the slides]. That way we can let you know of any errors.<br />
: Please tell us you find errors on the website or in the slides.<br />
: Please ask for permission if you'd like changes to the above terms and conditions.<br />
<br />
3. All computer source code is licensed under the [http://en.wikipedia.org/wiki/BSD_license 2-clause BSD license], so you are free to use it a way compatible with that license.<br />
<br />
== Privacy ==<br />
<br />
Google Analytics and other web log handling tools are used to monitor this site's usage. Please feel free to block these scripts.<br />
<br />
The classes may be video and/or audio recorded; these recordings will be posted online. Your voice and/or yourself may sometimes appear in these videos. Please let me know if you have any serious objections.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Mixed-Integer_linear_programming&diff=328
Mixed-Integer linear programming
2017-01-27T18:04:09Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 25 March 2015<br />
| dates_alt_text = <br />
| vimeoID1 = 8sIC8WFyEQ0<br />
| vimeoID2 = NHiTIGi5I5o<br />
| vimeoID3 = RGVepaP7AXk<br />
| vimeoID4 = VJC-0rPN7aY<br />
| vimeoID5 = IREdFiZXq2c<br />
| vimeoID6 =<br />
| vimeoID7 =<br />
| vimeoID8 =<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11B.mp4<br />
| video_download_link_MP4_size = 787 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12A.mp4<br />
| video_download_link2_MP4_size = 905 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12B.mp4<br />
| video_download_link3_MP4_size = 884 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13A.mp4<br />
| video_download_link4_MP4_size = 952 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13B.mp4<br />
| video_download_link5_MP4_size = 994 M<br />
| video_notes5 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 25 March<br />
| 11B<br />
| align="left" colspan="1"|<br />
* Representation of integer variables<br />
* Types of problems that can be solved with integer variables<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/12jmwaBfvSu0l8Wn3KC0JIJGBqjdloteNQJMgkW6aQyY Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-11B.mp4 Video] <br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 30 March<br />
| 12A<br />
| align="left" colspan="1"|<br />
More problems that can be solved with integer variables<br />
* Knapsack problem<br />
* Mutual exclusivity constraints<br />
* Dependence constraints<br />
* Allocation problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EhXsp-Whc-DfgxvSkAAqu3jRyOcBo-HubWvOqpQ1LQg Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-12A.mp4 Video] <br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 01 April<br />
| 12B<br />
| align="left" colspan="1"|<br />
The branch and bound procedure to solve integer problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1MxIsIPG1uTNvAUFvyaHFUln1ClpUgTADi2HgbFPdkeU/edit?usp=sharing Handout from class] <br />
<br />
[[Media:Sequence-of-branch-and-bound-steps-4G3-2015.pdf |Sequence of the branch and bound steps]]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-12B.mp4 Video] <br />
|align="left" colspan="1"| <br />
See code below to solve the original problem, and then the relaxed problem.<br />
<br />
See another example problem below (with solution).<br />
|-<br />
| 06 April<br />
| 13A<br />
| align="left" colspan="1"|<br />
Working towards understanding schedule problems in engineering<br />
* Gantt chart approach<br />
* What the search variables mean<br />
* What objective function choices exist<br />
* Setting up the integer (disjunctive) variables constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo/ Handout from class] <br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-13A.mp4 Video] <br />
|align="left" colspan="1"| <br />
See code below for the simple scheduling problem (3 products on 1 unit).<br />
|-<br />
| 08 April<br />
| 13B<br />
| align="left" colspan="1"|<br />
Scheduling problems<br />
<br />
Course wrap-up<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM Handout from class] <br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-13B.mp4 Video] <br />
|align="left" colspan="1"| <br />
* The first 10 pages of [http://www.inf.ufpr.br/aurora/disciplinas/topicosia2/livros/search/integer.pdf this textbook chapter] give some great background to integer programs, and how they are solved.<br />
* See code below for the multi-unit multi-product (3 products on 4 units) scheduling problem.<br />
|}<br />
<br />
<br />
<br />
===Solving a basic ILP===<br />
<syntaxhighlight lang="matlab"><br />
free variable income "total income";<br />
positive variables x1, x2;<br />
binary variable delta "use ingredient x3 or not at all";<br />
<br />
EQUATIONS<br />
obj "maximize income",<br />
blend "blending constraint";<br />
obj.. income =E= 18*x1 - 3*x2 - 9*(20*delta);<br />
blend.. 2*x1 + x2 + 7*(20*delta) =L= 150;<br />
x1.up = 25;<br />
x2.up = 30;<br />
<br />
model recipe /all/;<br />
SOLVE recipe using MIP maximizing income;<br />
</syntaxhighlight><br />
<br />
===Solving the knapsack problem===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the knapsack";<br />
<br />
parameter v(j) "value of object j"<br />
/1 4,<br />
2 2,<br />
3 10,<br />
4 1,<br />
5 2/;<br />
<br />
parameter w(j) "weight of object j"<br />
/1 12,<br />
2 1,<br />
3 4,<br />
4 1,<br />
5 2/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 15;<br />
<br />
model knapsack /all/;<br />
solve knapsack using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
=== Solving the knapsack problem for selecting amount projects, with constraints ===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the project";<br />
<br />
parameter v(j) "value of object j"<br />
/1 50,<br />
2 72,<br />
3 25,<br />
4 41,<br />
5 17/;<br />
<br />
parameter w(j) "cost of object j"<br />
/1 8,<br />
2 21,<br />
3 15,<br />
4 10,<br />
5 7/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint",<br />
me1v2 "1 and 2 are mutually exclusive",<br />
me1v3v5 "1, 3 and 5 are mutually exclusive",<br />
d4v3 "4 depends on 3";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 35;<br />
<br />
me1v2.. x('1') + x('2') =L= 1;<br />
me1v3v5.. x('1') + x('3') + x('5') =L= 1;<br />
d4v3.. x('4') =L= x('3');<br />
<br />
model projects /all/;<br />
solve projects using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
===Binary problem relaxation ===<br />
This is the problem we looked at in class for the generators.<br />
<br />
Notice that the only differences are:<br />
* the <tt>binary</tt> variables become <tt>positive</tt> variables, thepr<br />
* the problem is solved as an <tt>LP</tt> not an <tt>MIP</tt><br />
* the constraints for <tt>.LO</tt> and <tt>.UP</tt> are added, where required, depending on the partial solution solved<br />
{| class="wikitable" style="vertical-align:top"<br />
|-<br />
! Original problem solved in class<br />
! Relaxed problem solved in class<br />
|-<br />
| style="vertical-align:top" |<br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
binary variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using MIP minimizing cost;<br />
</syntaxhighlight><br />
| <br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
positive variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
* Solve the problem for the partial solution: (#, 0, #, 1)<br />
x.LO('1')=0;<br />
x.UP('1')=1;<br />
<br />
x.LO('2')=0;<br />
x.UP('2')=0;<br />
<br />
x.LO('3')=0;<br />
x.UP('3')=1;<br />
<br />
x.LO('4')=1;<br />
x.UP('4')=1;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using LP minimizing cost;<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Example problem to practice ===<br />
The objective is to '''''maximize''''' the objective function value, \(z\). The table or partial solutions is provided below. The only constraints are that all the 3 search variables must be binary (0 or 1). The "relaxed" refers to the relaxed problem solution.<br />
<br />
[[Image:4G3-2015-MIP-Practice-problem.png|750px]]<br />
<br />
Use the depth-first search method, and when branching, choose the branch with \(x_i = 0\) before the \(x_i=1\) branch.<br />
<br />
If you do this, your nodes will have the following solution order:<br />
<br />
Node 0 \((z=82.80)\)<br />
<br />
Node 1 \((z=80.67)\)<br />
<br />
Node 2 \((z=28.00)\) [incumbent]<br />
<br />
Node 3 \((z=79.4)\)<br />
<br />
Node 4 \((z=\text{Infeasible})\)<br />
<br />
Node 5 \((z=77.00)\) [incumbent; turns out this is the eventual optimum]<br />
<br />
Node 6 \((z=74.00)\) <br />
<br />
[The end: can you prove why?]<br />
<br />
<br />
<!-- <br />
\begin{center}\begin{tabular}{ccc|ccc}<br />
Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ & Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ \\ \hline<br />
(\#,\#,\#) & (0.2,1,0) & 82.80 & (0,0,1) & \multicolumn{2}{c}{Infeasible} \\<br />
(\#,\#,0) & (0.2,1,0) & 82.80 & (0,1,\#) & (0,1,0.67) & 80.67 \\<br />
(\#,\#,1) & (0,0.8,1) & 79.40 & (0,1,0) & (0,1,0) & 28.00 \\<br />
(\#,0,\#) & (0.7,0,0) & 81.80 & (0,1,1) & (0,1,1) & 77.00 \\<br />
(\#,0,0) & (0.7,0,0) & 81.80 & (1,\#,\#) & (1,0,0) & 74.00 \\<br />
(\#,0,1) & (0.4,0,1) & 78.60 & (1,\#,0) & (1,0,0) & 74.00 \\<br />
(\#,1,\#) & (0.2,1,0) & 82.80 & (1,\#,1) & (1,0,1) & 63.00 \\<br />
(\#,1,0) & (0.2,1,0) & 82.80 & (1,0,\#) & (1,0,0) & 74.00 \\<br />
(\#,1,1) & (0,1,1) & 77.00 & (1,0,0) & (1,0,0) & 74.00 \\<br />
(0,\#,\#) & (0,1,0.67) & 80.67 & (1,0,1) & (1,0,1) & 63.00 \\<br />
(0,\#,0) & (0,1,0) & 28.00 & (1,1,\#) & (1,1,0) & 62.00 \\<br />
(0,\#,1) & (0,0.8,1) & 79.40 & (1,1,0) & (1,1,0) & 62.00 \\<br />
(0,0,\#) & \multicolumn{2}{c|}{Infeasible} & (1,1,1) & (1,1,1) & 51.00 \\<br />
(0,0,0) & \multicolumn{2}{c|}{Infeasible} & \\<br />
\end{tabular}\end{center}<br />
--><br />
<br />
=== Simple schedule: one unit, 3 products ===<br />
This example was covered in [https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo class 13A]:<br />
<syntaxhighlight lang="python"><br />
set j "jobs" /1*3/;<br />
alias (j,jp);<br />
<br />
parameter p(j) "process time of j"<br />
/ 1 15, 2 6, 3 9/;<br />
<br />
scalar M "bigM";<br />
M = sum(j, p(j));<br />
free variable MeanComp "Mean completion time";<br />
positive variables x(j) "Start time of job j";<br />
binary variables y(j,jp) "Disjunctive variable for j and jp";<br />
<br />
EQUATIONS<br />
MeanCeqn "Mean completion time",<br />
Disj1(j,jp) "Disjunctive part 1",<br />
Disj2(j,jp) "Disjunctive part 2";<br />
<br />
MeanCeqn.. MeanComp =E= sum(j, x(j)+p(j) ) / card(j);<br />
Disj1(j,jp)$(ord(j) lt ord(jp)).. x(j) + p(j) =L= x(jp) + M*(1-y(j,jp));<br />
Disj2(j,jp)$(ord(j) lt ord(jp)).. x(jp)+ p(jp) =L= x(j) + M*y(j,jp);<br />
<br />
MODEL simplesched /all/;<br />
SOLVE simplesched using MIP minimizing MeanComp;<br />
</syntaxhighlight><br />
<br />
=== Scheduling 3 products on 4 units ===<br />
This example was covered in [https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM/edit class 13B]:<br />
<syntaxhighlight lang="python"><br />
* Based on: https://comp.uark.edu/~rrardin/oorbook/software/gams/custommw.gms<br />
set j "Products" /A*C/,<br />
k "Units" /1*4/;<br />
alias (j,jp);<br />
alias (k,kp);<br />
<br />
set succ(j,k,kp) "Product j successor pairs"<br />
/A.1.2, A.2.3, A.3.4,<br />
B.3.4,<br />
C.3.2, C.2.4/;<br />
<br />
TABLE p(j,k) "Process time of product j on unit k"<br />
1 2 3 4<br />
A 1 5 4.0 1.5<br />
B 0 0 4.5 1.0<br />
C 0 3 5.0 1.5; <br />
<br />
scalar M "bigM";<br />
M = sum((j,k), p(j,k));<br />
FREE variable<br />
AverageC "Average completion time";<br />
<br />
POSITIVE variables x(j,k) "Start time of job (product) j on unit k: j.k";<br />
BINARY variables y(j,jp,k) "Disjunctive variable for j and jp on k";<br />
<br />
EQUATIONS<br />
avgComplete "Average completeness",<br />
pred(j,k,kp) "Precedence within jobs",<br />
disj1(j,jp,k) "Disjunctive part 1 for j and jp on k",<br />
disj2(j,jp,k) "Disjunctive part 2 for j and jp on k";<br />
<br />
avgComplete.. AverageC =E= sum((j,k), x(j,k)+p(j,k) ); <br />
<br />
* These are the precedence constraints<br />
pred(j,k,kp)$succ(j,k,kp).. x(j,k) + p(j,k) =L= x(j,kp);<br />
<br />
disj1(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(j,k) + p(j,k) =L= x(jp,k) + M*(1-y(j,jp,k));<br />
<br />
disj2(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(jp,k) + p(jp,k) =L= x(j,k) + M*y(j,jp,k);<br />
MODEL Jobshop /all/;<br />
option mip = mosek;<br />
SOLVE Jobshop USING MIP minimizing AverageC;<br />
</syntaxhighlight></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Widget:Vimeo&diff=327
Widget:Vimeo
2017-01-27T17:57:13Z
<p>Kevin Dunn: </p>
<hr />
<div><noinclude>__NOTOC__<br />
This widget allows you to embed '''[http://www.vimeo.com/ Vimeo]''' on your wiki page.<br />
<br />
Created by [https://www.mediawikiwidgets.org/User:Sergey_Chernyshev Sergey Chernyshev]<br />
<br />
== Using this widget ==<br />
For information on how to use this widget, see [https://www.mediawikiwidgets.org/Vimeo widget description page on MediaWikiWidgets.org].<br />
<br />
== Copy to your site ==<br />
To use this widget on your site, just install [https://www.mediawiki.org/wiki/Extension:Widgets MediaWiki Widgets extension] and copy the [{{fullurl:{{FULLPAGENAME}}|action=edit}} full source code] of this page to your wiki as page '''{{FULLPAGENAME}}'''.<br />
</noinclude><includeonly><iframe allowfullscreen="" frameborder="0" height="<!--{$height|default:300|escape:'html'}-->" src="//player.vimeo.com/video/<!--{$id|escape:'urlpathinfo'}-->?title=0&amp;byline=0&amp;portrait=0" webkitallowfullscreen="" width="<!--{$width|default:400|escape:'html'}-->"></iframe></includeonly></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Linear_programming&diff=326
Linear programming
2017-01-27T17:54:35Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 07 January to 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = c5d5Sqh5enE<br />
| vimeoID2 = E-GlTTLzbSc<br />
| vimeoID3 = jUq6QTTAPJc<br />
| vimeoID4 = t_U015J0iqQ<br />
| vimeoID5 = ZDr5iu9LzuE<br />
| vimeoID6 = EUC4dRqZhXw<br />
| vimeoID7 = hpuAPO3BTew<br />
| vimeoID8 = loWOX4zCpZ0<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4<br />
| video_download_link_MP4_size = 610 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4<br />
| video_download_link2_MP4_size = 812 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4<br />
| video_download_link3_MP4_size = 840 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4<br />
| video_download_link4_MP4_size = 820 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4<br />
| video_download_link5_MP4_size = 807 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4<br />
| video_download_link6_MP4_size = 819 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4<br />
| video_download_link7_MP4_size = 817 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4<br />
| video_download_link8_MP4_size = 459 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = <br />
| video_download_link9_MP4_size = M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = <br />
| video_download_link10_MP4_size = M<br />
| video_notes10 =<br />
| video_download_link11_MP4 = <br />
| video_download_link11_MP4_size = M<br />
| video_notes11 =<br />
| video_download_link12_MP4 =<br />
| video_download_link12_MP4_size = M<br />
| video_notes12 =}}<br />
<br />
== References ==<br />
<br />
Dr. Marlin has made a [[Media:4G3-Linear-Programming-Notes-Thomas-Marlin.pdf |great, short e-book on Linear Programming]]. You will find reading his notes very rewarding, and a great supplement to the class lectures.<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 07 January<br />
| 01B<br />
| align="left" colspan="1"|<br />
* Degrees of freedom<br />
* Terminology related to optimization<br />
* Introductory linear programming problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1WxIMpERJgZZUbdok_eUAFdMJ_2U2A_jDAVq0sSoJ2ro Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 12 January<br />
| 02A<br />
| align="left" colspan="1"|<br />
* More terminology related to optimization<br />
* Continue with our introductory LP problem<br />
* Geometric aspects of the optimum<br />
* Moving LP problems into standard form<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1zQkvE0h9S-NRgGJIxD-zVGD6fbsHUSFRFK3hjW-hkRg Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4 Video] <br />
|align="left" colspan="1"|<br />
We covered topics on page 11, 13, 14 and 17 of the notes by Marlin (see comment above).<br />
|-<br />
| 14 January<br />
| 02B<br />
| align="left" colspan="1"|<br />
* Getting the LP problem into standard form<br />
* Starting to understand the Simplex method to solve LPs<br />
| align="left" rowspan="2"|<br />
[https://docs.google.com/document/d/1NfY58o58LSGGZausUrowQMGdNuftbdCMwDbK-mUF-PQ/ Handout from class] <br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4 Video] <br />
|align="left" rowspan="2"|<br />
We covered topics on page 21 to 29 of the notes by Marlin, however, I did not focus on the mathematical details; we only consider the geometric viewpoint in 4G3.<br />
|-<br />
| 19 January<br />
| 03A<br />
| align="left" colspan="1"|<br />
* Running the simplex method to solve LPs<br />
* Interpretation of the optimum solution<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4 Video]<br />
|-<br />
| 21 January<br />
| 03B<br />
| align="left" colspan="1"|<br />
* Interpretation of general LP models<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/13GjbGCOxqO67pUDfVVQOfzBGvFl6gqZCNIrT54YMFPk Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4 Video] <br />
|align="left" |<br />
See page 37 and 38 in Marlin's notes for an alternative visualization of sensitivity analysis.<br />
|-<br />
| 26 January<br />
| 04A<br />
| align="left" colspan="1"|<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
** The effect of \(b_i\) changes on the RHS<br />
** The effect of \(A\) changes on the LHS<br />
** The effect of \(c_i\) changes in the objective<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1o8GdJERF0NvH2EafNbfOSDGIUaV8-pr6roGSb241oXY Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4 Video] <br />
|align="left" |<br />
|-<br />
| 28 January and 04 February<br />
| 04B<br />
| align="left" colspan="1"|<br />
* Recapped some concepts on sensitivity analysis<br />
* Considered sensitivity analysis where two or more variables were varied<br />
* Getting a general understanding of LPs<br />
** Allocation problems<br />
** Blending problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EQSzelonUYt0rcyj5s8tOPcQimQvhBKGIKLUgJpURNY/edit Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4 VideoA] and [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4 VideoB]<br />
|align="left" |<br />
|}<br />
<br />
<br />
<br />
The R-code used to draw the plot in the class handout 2B and 3A.<br />
<syntaxhighlight lang="sas"><br />
plot(c(0, 100), c(0, 70), type = "n", xlab = expression(x[1]), ylab = expression(x[2]), asp = 1)<br />
abline(a=1500/10, b=-16/10, lw=7) # Placement<br />
abline(a=1000/12, b=-10/12, lw=5) # Solder<br />
abline(a=500/8, b=-4/8, lw=3) # Inspection<br />
abline(v=0, h=0)<br />
title(expression("Objective: Maximize 10"~x[1]~"+ 15"~x[2]))<br />
<br />
text(20, 55, expression("Inspection: 4"~x[1]~"+ 8"~x[2]~"+ "~x[5]~" = 500"), srt=332.5) <br />
text(35, 57, expression("Solder: 10"~x[1]~"+ 12"~x[2]~"+ "~x[4]~" = 1000"), srt=319.5)<br />
text(65.5, 50, expression("Placement: 16"~x[1]~"+ 10"~x[2]~"+ "~x[3]~" = 1500"), srt=301)<br />
text(2, 30, expression("Non-negativity: "~x[1]>=~"0"), srt=90)<br />
text(45, 2, expression("Non-negativity: "~x[2]>=~"0"), srt=0)<br />
<br />
delta=2<br />
text(0+delta, 0+delta, "[0]")<br />
text(0+delta, 62.5-2*delta, "[1]")<br />
text(62.5, 31.25-1.5*delta, "[2]")<br />
text(87-delta, 10.9-1.0*delta, "[3]")<br />
text(93.75-2.1*delta, 0+1.0*delta, "[4]")<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Mixed-Integer_linear_programming_(2015)&diff=325
Mixed-Integer linear programming (2015)
2017-01-03T20:25:47Z
<p>Kevin Dunn: Kevin Dunn moved page Mixed-Integer linear programming (2015) to Mixed-Integer linear programming</p>
<hr />
<div>#REDIRECT [[Mixed-Integer linear programming]]</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Mixed-Integer_linear_programming&diff=324
Mixed-Integer linear programming
2017-01-03T20:25:46Z
<p>Kevin Dunn: Kevin Dunn moved page Mixed-Integer linear programming (2015) to Mixed-Integer linear programming</p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebar<br />
| date = 25 March 2015<br />
| dates_alt_text = <br />
| vimeoID1 = 123236313<br />
| vimeoID2 = 123647821<br />
| vimeoID3 = 123878013<br />
| vimeoID4 = 124228627<br />
| vimeoID5 = 124453523<br />
| vimeoID6 =<br />
| vimeoID7 =<br />
| vimeoID8 =<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11B.mp4<br />
| video_download_link_MP4_size = 787 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12A.mp4<br />
| video_download_link2_MP4_size = 905 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12B.mp4<br />
| video_download_link3_MP4_size = 884 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13A.mp4<br />
| video_download_link4_MP4_size = 952 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13B.mp4<br />
| video_download_link5_MP4_size = 994 M<br />
| video_notes5 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 25 March<br />
| 11B<br />
| align="left" colspan="1"|<br />
* Representation of integer variables<br />
* Types of problems that can be solved with integer variables<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/12jmwaBfvSu0l8Wn3KC0JIJGBqjdloteNQJMgkW6aQyY Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YdTNCM3E1U19UQU0&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 30 March<br />
| 12A<br />
| align="left" colspan="1"|<br />
More problems that can be solved with integer variables<br />
* Knapsack problem<br />
* Mutual exclusivity constraints<br />
* Dependence constraints<br />
* Allocation problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EhXsp-Whc-DfgxvSkAAqu3jRyOcBo-HubWvOqpQ1LQg Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YM0o1NW52X2dPblE&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 01 April<br />
| 12B<br />
| align="left" colspan="1"|<br />
The branch and bound procedure to solve integer problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1MxIsIPG1uTNvAUFvyaHFUln1ClpUgTADi2HgbFPdkeU/edit?usp=sharing Handout from class] <br />
<br />
[[Media:Sequence-of-branch-and-bound-steps-4G3-2015.pdf |Sequence of the branch and bound steps]]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YRmNxbG11M2R3amc&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See code below to solve the original problem, and then the relaxed problem.<br />
<br />
See another example problem below (with solution).<br />
|-<br />
| 06 April<br />
| 13A<br />
| align="left" colspan="1"|<br />
Working towards understanding schedule problems in engineering<br />
* Gantt chart approach<br />
* What the search variables mean<br />
* What objective function choices exist<br />
* Setting up the integer (disjunctive) variables constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo/ Handout from class] <br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YQXBtVlhvaUJDY3M&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See code below for the simple scheduling problem (3 products on 1 unit).<br />
|-<br />
| 08 April<br />
| 13B<br />
| align="left" colspan="1"|<br />
Scheduling problems<br />
<br />
Course wrap-up<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM Handout from class] <br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YTE9QaFdOTmw3bVU&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
* The first 10 pages of [http://www.inf.ufpr.br/aurora/disciplinas/topicosia2/livros/search/integer.pdf this textbook chapter] give some great background to integer programs, and how they are solved.<br />
* See code below for the multi-unit multi-product (3 products on 4 units) scheduling problem.<br />
|}<br />
<br />
<br />
<br />
===Solving a basic ILP===<br />
<syntaxhighlight lang="matlab"><br />
free variable income "total income";<br />
positive variables x1, x2;<br />
binary variable delta "use ingredient x3 or not at all";<br />
<br />
EQUATIONS<br />
obj "maximize income",<br />
blend "blending constraint";<br />
obj.. income =E= 18*x1 - 3*x2 - 9*(20*delta);<br />
blend.. 2*x1 + x2 + 7*(20*delta) =L= 150;<br />
x1.up = 25;<br />
x2.up = 30;<br />
<br />
model recipe /all/;<br />
SOLVE recipe using MIP maximizing income;<br />
</syntaxhighlight><br />
<br />
===Solving the knapsack problem===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the knapsack";<br />
<br />
parameter v(j) "value of object j"<br />
/1 4,<br />
2 2,<br />
3 10,<br />
4 1,<br />
5 2/;<br />
<br />
parameter w(j) "weight of object j"<br />
/1 12,<br />
2 1,<br />
3 4,<br />
4 1,<br />
5 2/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 15;<br />
<br />
model knapsack /all/;<br />
solve knapsack using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
=== Solving the knapsack problem for selecting amount projects, with constraints ===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the project";<br />
<br />
parameter v(j) "value of object j"<br />
/1 50,<br />
2 72,<br />
3 25,<br />
4 41,<br />
5 17/;<br />
<br />
parameter w(j) "cost of object j"<br />
/1 8,<br />
2 21,<br />
3 15,<br />
4 10,<br />
5 7/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint",<br />
me1v2 "1 and 2 are mutually exclusive",<br />
me1v3v5 "1, 3 and 5 are mutually exclusive",<br />
d4v3 "4 depends on 3";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 35;<br />
<br />
me1v2.. x('1') + x('2') =L= 1;<br />
me1v3v5.. x('1') + x('3') + x('5') =L= 1;<br />
d4v3.. x('4') =L= x('3');<br />
<br />
model projects /all/;<br />
solve projects using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
===Binary problem relaxation ===<br />
This is the problem we looked at in class for the generators.<br />
<br />
Notice that the only differences are:<br />
* the <tt>binary</tt> variables become <tt>positive</tt> variables, thepr<br />
* the problem is solved as an <tt>LP</tt> not an <tt>MIP</tt><br />
* the constraints for <tt>.LO</tt> and <tt>.UP</tt> are added, where required, depending on the partial solution solved<br />
{| class="wikitable" style="vertical-align:top"<br />
|-<br />
! Original problem solved in class<br />
! Relaxed problem solved in class<br />
|-<br />
| style="vertical-align:top" |<br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
binary variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using MIP minimizing cost;<br />
</syntaxhighlight><br />
| <br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
positive variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
* Solve the problem for the partial solution: (#, 0, #, 1)<br />
x.LO('1')=0;<br />
x.UP('1')=1;<br />
<br />
x.LO('2')=0;<br />
x.UP('2')=0;<br />
<br />
x.LO('3')=0;<br />
x.UP('3')=1;<br />
<br />
x.LO('4')=1;<br />
x.UP('4')=1;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using LP minimizing cost;<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Example problem to practice ===<br />
The objective is to '''''maximize''''' the objective function value, \(z\). The table or partial solutions is provided below. The only constraints are that all the 3 search variables must be binary (0 or 1). The "relaxed" refers to the relaxed problem solution.<br />
<br />
[[Image:4G3-2015-MIP-Practice-problem.png|750px]]<br />
<br />
Use the depth-first search method, and when branching, choose the branch with \(x_i = 0\) before the \(x_i=1\) branch.<br />
<br />
If you do this, your nodes will have the following solution order:<br />
<br />
Node 0 \((z=82.80)\)<br />
<br />
Node 1 \((z=80.67)\)<br />
<br />
Node 2 \((z=28.00)\) [incumbent]<br />
<br />
Node 3 \((z=79.4)\)<br />
<br />
Node 4 \((z=\text{Infeasible})\)<br />
<br />
Node 5 \((z=77.00)\) [incumbent; turns out this is the eventual optimum]<br />
<br />
Node 6 \((z=74.00)\) <br />
<br />
[The end: can you prove why?]<br />
<br />
<br />
<!-- <br />
\begin{center}\begin{tabular}{ccc|ccc}<br />
Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ & Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ \\ \hline<br />
(\#,\#,\#) & (0.2,1,0) & 82.80 & (0,0,1) & \multicolumn{2}{c}{Infeasible} \\<br />
(\#,\#,0) & (0.2,1,0) & 82.80 & (0,1,\#) & (0,1,0.67) & 80.67 \\<br />
(\#,\#,1) & (0,0.8,1) & 79.40 & (0,1,0) & (0,1,0) & 28.00 \\<br />
(\#,0,\#) & (0.7,0,0) & 81.80 & (0,1,1) & (0,1,1) & 77.00 \\<br />
(\#,0,0) & (0.7,0,0) & 81.80 & (1,\#,\#) & (1,0,0) & 74.00 \\<br />
(\#,0,1) & (0.4,0,1) & 78.60 & (1,\#,0) & (1,0,0) & 74.00 \\<br />
(\#,1,\#) & (0.2,1,0) & 82.80 & (1,\#,1) & (1,0,1) & 63.00 \\<br />
(\#,1,0) & (0.2,1,0) & 82.80 & (1,0,\#) & (1,0,0) & 74.00 \\<br />
(\#,1,1) & (0,1,1) & 77.00 & (1,0,0) & (1,0,0) & 74.00 \\<br />
(0,\#,\#) & (0,1,0.67) & 80.67 & (1,0,1) & (1,0,1) & 63.00 \\<br />
(0,\#,0) & (0,1,0) & 28.00 & (1,1,\#) & (1,1,0) & 62.00 \\<br />
(0,\#,1) & (0,0.8,1) & 79.40 & (1,1,0) & (1,1,0) & 62.00 \\<br />
(0,0,\#) & \multicolumn{2}{c|}{Infeasible} & (1,1,1) & (1,1,1) & 51.00 \\<br />
(0,0,0) & \multicolumn{2}{c|}{Infeasible} & \\<br />
\end{tabular}\end{center}<br />
--><br />
<br />
=== Simple schedule: one unit, 3 products ===<br />
This example was covered in [https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo class 13A]:<br />
<syntaxhighlight lang="python"><br />
set j "jobs" /1*3/;<br />
alias (j,jp);<br />
<br />
parameter p(j) "process time of j"<br />
/ 1 15, 2 6, 3 9/;<br />
<br />
scalar M "bigM";<br />
M = sum(j, p(j));<br />
free variable MeanComp "Mean completion time";<br />
positive variables x(j) "Start time of job j";<br />
binary variables y(j,jp) "Disjunctive variable for j and jp";<br />
<br />
EQUATIONS<br />
MeanCeqn "Mean completion time",<br />
Disj1(j,jp) "Disjunctive part 1",<br />
Disj2(j,jp) "Disjunctive part 2";<br />
<br />
MeanCeqn.. MeanComp =E= sum(j, x(j)+p(j) ) / card(j);<br />
Disj1(j,jp)$(ord(j) lt ord(jp)).. x(j) + p(j) =L= x(jp) + M*(1-y(j,jp));<br />
Disj2(j,jp)$(ord(j) lt ord(jp)).. x(jp)+ p(jp) =L= x(j) + M*y(j,jp);<br />
<br />
MODEL simplesched /all/;<br />
SOLVE simplesched using MIP minimizing MeanComp;<br />
</syntaxhighlight><br />
<br />
=== Scheduling 3 products on 4 units ===<br />
This example was covered in [https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM/edit class 13B]:<br />
<syntaxhighlight lang="python"><br />
* Based on: https://comp.uark.edu/~rrardin/oorbook/software/gams/custommw.gms<br />
set j "Products" /A*C/,<br />
k "Units" /1*4/;<br />
alias (j,jp);<br />
alias (k,kp);<br />
<br />
set succ(j,k,kp) "Product j successor pairs"<br />
/A.1.2, A.2.3, A.3.4,<br />
B.3.4,<br />
C.3.2, C.2.4/;<br />
<br />
TABLE p(j,k) "Process time of product j on unit k"<br />
1 2 3 4<br />
A 1 5 4.0 1.5<br />
B 0 0 4.5 1.0<br />
C 0 3 5.0 1.5; <br />
<br />
scalar M "bigM";<br />
M = sum((j,k), p(j,k));<br />
FREE variable<br />
AverageC "Average completion time";<br />
<br />
POSITIVE variables x(j,k) "Start time of job (product) j on unit k: j.k";<br />
BINARY variables y(j,jp,k) "Disjunctive variable for j and jp on k";<br />
<br />
EQUATIONS<br />
avgComplete "Average completeness",<br />
pred(j,k,kp) "Precedence within jobs",<br />
disj1(j,jp,k) "Disjunctive part 1 for j and jp on k",<br />
disj2(j,jp,k) "Disjunctive part 2 for j and jp on k";<br />
<br />
avgComplete.. AverageC =E= sum((j,k), x(j,k)+p(j,k) ); <br />
<br />
* These are the precedence constraints<br />
pred(j,k,kp)$succ(j,k,kp).. x(j,k) + p(j,k) =L= x(j,kp);<br />
<br />
disj1(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(j,k) + p(j,k) =L= x(jp,k) + M*(1-y(j,jp,k));<br />
<br />
disj2(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(jp,k) + p(jp,k) =L= x(j,k) + M*y(j,jp,k);<br />
MODEL Jobshop /all/;<br />
option mip = mosek;<br />
SOLVE Jobshop USING MIP minimizing AverageC;<br />
</syntaxhighlight></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Mixed-Integer_linear_programming&diff=323
Mixed-Integer linear programming
2017-01-03T20:25:38Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebar<br />
| date = 25 March 2015<br />
| dates_alt_text = <br />
| vimeoID1 = 123236313<br />
| vimeoID2 = 123647821<br />
| vimeoID3 = 123878013<br />
| vimeoID4 = 124228627<br />
| vimeoID5 = 124453523<br />
| vimeoID6 =<br />
| vimeoID7 =<br />
| vimeoID8 =<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11B.mp4<br />
| video_download_link_MP4_size = 787 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12A.mp4<br />
| video_download_link2_MP4_size = 905 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-12B.mp4<br />
| video_download_link3_MP4_size = 884 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13A.mp4<br />
| video_download_link4_MP4_size = 952 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-13B.mp4<br />
| video_download_link5_MP4_size = 994 M<br />
| video_notes5 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 25 March<br />
| 11B<br />
| align="left" colspan="1"|<br />
* Representation of integer variables<br />
* Types of problems that can be solved with integer variables<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/12jmwaBfvSu0l8Wn3KC0JIJGBqjdloteNQJMgkW6aQyY Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YdTNCM3E1U19UQU0&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 30 March<br />
| 12A<br />
| align="left" colspan="1"|<br />
More problems that can be solved with integer variables<br />
* Knapsack problem<br />
* Mutual exclusivity constraints<br />
* Dependence constraints<br />
* Allocation problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EhXsp-Whc-DfgxvSkAAqu3jRyOcBo-HubWvOqpQ1LQg Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YM0o1NW52X2dPblE&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See the GAMS codes below<br />
|-<br />
| 01 April<br />
| 12B<br />
| align="left" colspan="1"|<br />
The branch and bound procedure to solve integer problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1MxIsIPG1uTNvAUFvyaHFUln1ClpUgTADi2HgbFPdkeU/edit?usp=sharing Handout from class] <br />
<br />
[[Media:Sequence-of-branch-and-bound-steps-4G3-2015.pdf |Sequence of the branch and bound steps]]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YRmNxbG11M2R3amc&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See code below to solve the original problem, and then the relaxed problem.<br />
<br />
See another example problem below (with solution).<br />
|-<br />
| 06 April<br />
| 13A<br />
| align="left" colspan="1"|<br />
Working towards understanding schedule problems in engineering<br />
* Gantt chart approach<br />
* What the search variables mean<br />
* What objective function choices exist<br />
* Setting up the integer (disjunctive) variables constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo/ Handout from class] <br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YQXBtVlhvaUJDY3M&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
See code below for the simple scheduling problem (3 products on 1 unit).<br />
|-<br />
| 08 April<br />
| 13B<br />
| align="left" colspan="1"|<br />
Scheduling problems<br />
<br />
Course wrap-up<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM Handout from class] <br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YTE9QaFdOTmw3bVU&authuser=0 Video] <br />
|align="left" colspan="1"| <br />
* The first 10 pages of [http://www.inf.ufpr.br/aurora/disciplinas/topicosia2/livros/search/integer.pdf this textbook chapter] give some great background to integer programs, and how they are solved.<br />
* See code below for the multi-unit multi-product (3 products on 4 units) scheduling problem.<br />
|}<br />
<br />
<br />
<br />
===Solving a basic ILP===<br />
<syntaxhighlight lang="matlab"><br />
free variable income "total income";<br />
positive variables x1, x2;<br />
binary variable delta "use ingredient x3 or not at all";<br />
<br />
EQUATIONS<br />
obj "maximize income",<br />
blend "blending constraint";<br />
obj.. income =E= 18*x1 - 3*x2 - 9*(20*delta);<br />
blend.. 2*x1 + x2 + 7*(20*delta) =L= 150;<br />
x1.up = 25;<br />
x2.up = 30;<br />
<br />
model recipe /all/;<br />
SOLVE recipe using MIP maximizing income;<br />
</syntaxhighlight><br />
<br />
===Solving the knapsack problem===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the knapsack";<br />
<br />
parameter v(j) "value of object j"<br />
/1 4,<br />
2 2,<br />
3 10,<br />
4 1,<br />
5 2/;<br />
<br />
parameter w(j) "weight of object j"<br />
/1 12,<br />
2 1,<br />
3 4,<br />
4 1,<br />
5 2/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 15;<br />
<br />
model knapsack /all/;<br />
solve knapsack using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
=== Solving the knapsack problem for selecting amount projects, with constraints ===<br />
<syntaxhighlight lang="matlab"><br />
free variable value "total value";<br />
sets j "item j" /1*5/;<br />
binary variables x(j) "whether to include item in the project";<br />
<br />
parameter v(j) "value of object j"<br />
/1 50,<br />
2 72,<br />
3 25,<br />
4 41,<br />
5 17/;<br />
<br />
parameter w(j) "cost of object j"<br />
/1 8,<br />
2 21,<br />
3 15,<br />
4 10,<br />
5 7/;<br />
<br />
EQUATIONS<br />
obj "maximize value",<br />
weight "weight constraint",<br />
me1v2 "1 and 2 are mutually exclusive",<br />
me1v3v5 "1, 3 and 5 are mutually exclusive",<br />
d4v3 "4 depends on 3";<br />
<br />
obj.. value =e= sum(j, v(j)*x(j));<br />
weight.. sum(j, w(j)*x(j)) =L= 35;<br />
<br />
me1v2.. x('1') + x('2') =L= 1;<br />
me1v3v5.. x('1') + x('3') + x('5') =L= 1;<br />
d4v3.. x('4') =L= x('3');<br />
<br />
model projects /all/;<br />
solve projects using mip maximizing value;<br />
</syntaxhighlight><br />
<br />
===Binary problem relaxation ===<br />
This is the problem we looked at in class for the generators.<br />
<br />
Notice that the only differences are:<br />
* the <tt>binary</tt> variables become <tt>positive</tt> variables, thepr<br />
* the problem is solved as an <tt>LP</tt> not an <tt>MIP</tt><br />
* the constraints for <tt>.LO</tt> and <tt>.UP</tt> are added, where required, depending on the partial solution solved<br />
{| class="wikitable" style="vertical-align:top"<br />
|-<br />
! Original problem solved in class<br />
! Relaxed problem solved in class<br />
|-<br />
| style="vertical-align:top" |<br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
binary variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using MIP minimizing cost;<br />
</syntaxhighlight><br />
| <br />
<syntaxhighlight lang="ocaml"><br />
free variable cost "total cost";<br />
sets j "item j" /1*4/;<br />
positive variables x(j) "whether to use generator";<br />
<br />
parameter c(j) "cost of using generator j"<br />
/1 7,<br />
2 12,<br />
3 5,<br />
4 14/;<br />
<br />
parameter p(j) "power of generator j"<br />
/1 300,<br />
2 600,<br />
3 500,<br />
4 1600/;<br />
<br />
EQUATIONS<br />
obj "cost",<br />
power_constraint;<br />
<br />
obj.. cost =e= sum(j, c(j)*x(j));<br />
power_constraint.. sum(j, p(j)*x(j)) =G= 700;<br />
<br />
* Solve the problem for the partial solution: (#, 0, #, 1)<br />
x.LO('1')=0;<br />
x.UP('1')=1;<br />
<br />
x.LO('2')=0;<br />
x.UP('2')=0;<br />
<br />
x.LO('3')=0;<br />
x.UP('3')=1;<br />
<br />
x.LO('4')=1;<br />
x.UP('4')=1;<br />
<br />
MODEL purchase /all/;<br />
SOLVE purchase using LP minimizing cost;<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Example problem to practice ===<br />
The objective is to '''''maximize''''' the objective function value, \(z\). The table or partial solutions is provided below. The only constraints are that all the 3 search variables must be binary (0 or 1). The "relaxed" refers to the relaxed problem solution.<br />
<br />
[[Image:4G3-2015-MIP-Practice-problem.png|750px]]<br />
<br />
Use the depth-first search method, and when branching, choose the branch with \(x_i = 0\) before the \(x_i=1\) branch.<br />
<br />
If you do this, your nodes will have the following solution order:<br />
<br />
Node 0 \((z=82.80)\)<br />
<br />
Node 1 \((z=80.67)\)<br />
<br />
Node 2 \((z=28.00)\) [incumbent]<br />
<br />
Node 3 \((z=79.4)\)<br />
<br />
Node 4 \((z=\text{Infeasible})\)<br />
<br />
Node 5 \((z=77.00)\) [incumbent; turns out this is the eventual optimum]<br />
<br />
Node 6 \((z=74.00)\) <br />
<br />
[The end: can you prove why?]<br />
<br />
<br />
<!-- <br />
\begin{center}\begin{tabular}{ccc|ccc}<br />
Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ & Partial & ${\bf x}_{\rm rel}^{(k)}$ & $z_{\rm rel}^{(k)}$ \\ \hline<br />
(\#,\#,\#) & (0.2,1,0) & 82.80 & (0,0,1) & \multicolumn{2}{c}{Infeasible} \\<br />
(\#,\#,0) & (0.2,1,0) & 82.80 & (0,1,\#) & (0,1,0.67) & 80.67 \\<br />
(\#,\#,1) & (0,0.8,1) & 79.40 & (0,1,0) & (0,1,0) & 28.00 \\<br />
(\#,0,\#) & (0.7,0,0) & 81.80 & (0,1,1) & (0,1,1) & 77.00 \\<br />
(\#,0,0) & (0.7,0,0) & 81.80 & (1,\#,\#) & (1,0,0) & 74.00 \\<br />
(\#,0,1) & (0.4,0,1) & 78.60 & (1,\#,0) & (1,0,0) & 74.00 \\<br />
(\#,1,\#) & (0.2,1,0) & 82.80 & (1,\#,1) & (1,0,1) & 63.00 \\<br />
(\#,1,0) & (0.2,1,0) & 82.80 & (1,0,\#) & (1,0,0) & 74.00 \\<br />
(\#,1,1) & (0,1,1) & 77.00 & (1,0,0) & (1,0,0) & 74.00 \\<br />
(0,\#,\#) & (0,1,0.67) & 80.67 & (1,0,1) & (1,0,1) & 63.00 \\<br />
(0,\#,0) & (0,1,0) & 28.00 & (1,1,\#) & (1,1,0) & 62.00 \\<br />
(0,\#,1) & (0,0.8,1) & 79.40 & (1,1,0) & (1,1,0) & 62.00 \\<br />
(0,0,\#) & \multicolumn{2}{c|}{Infeasible} & (1,1,1) & (1,1,1) & 51.00 \\<br />
(0,0,0) & \multicolumn{2}{c|}{Infeasible} & \\<br />
\end{tabular}\end{center}<br />
--><br />
<br />
=== Simple schedule: one unit, 3 products ===<br />
This example was covered in [https://docs.google.com/document/d/1lmBL1Bh251VYb7NmBD2ER-JPD2DSExGR87nu7AWs7oo class 13A]:<br />
<syntaxhighlight lang="python"><br />
set j "jobs" /1*3/;<br />
alias (j,jp);<br />
<br />
parameter p(j) "process time of j"<br />
/ 1 15, 2 6, 3 9/;<br />
<br />
scalar M "bigM";<br />
M = sum(j, p(j));<br />
free variable MeanComp "Mean completion time";<br />
positive variables x(j) "Start time of job j";<br />
binary variables y(j,jp) "Disjunctive variable for j and jp";<br />
<br />
EQUATIONS<br />
MeanCeqn "Mean completion time",<br />
Disj1(j,jp) "Disjunctive part 1",<br />
Disj2(j,jp) "Disjunctive part 2";<br />
<br />
MeanCeqn.. MeanComp =E= sum(j, x(j)+p(j) ) / card(j);<br />
Disj1(j,jp)$(ord(j) lt ord(jp)).. x(j) + p(j) =L= x(jp) + M*(1-y(j,jp));<br />
Disj2(j,jp)$(ord(j) lt ord(jp)).. x(jp)+ p(jp) =L= x(j) + M*y(j,jp);<br />
<br />
MODEL simplesched /all/;<br />
SOLVE simplesched using MIP minimizing MeanComp;<br />
</syntaxhighlight><br />
<br />
=== Scheduling 3 products on 4 units ===<br />
This example was covered in [https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM/edit class 13B]:<br />
<syntaxhighlight lang="python"><br />
* Based on: https://comp.uark.edu/~rrardin/oorbook/software/gams/custommw.gms<br />
set j "Products" /A*C/,<br />
k "Units" /1*4/;<br />
alias (j,jp);<br />
alias (k,kp);<br />
<br />
set succ(j,k,kp) "Product j successor pairs"<br />
/A.1.2, A.2.3, A.3.4,<br />
B.3.4,<br />
C.3.2, C.2.4/;<br />
<br />
TABLE p(j,k) "Process time of product j on unit k"<br />
1 2 3 4<br />
A 1 5 4.0 1.5<br />
B 0 0 4.5 1.0<br />
C 0 3 5.0 1.5; <br />
<br />
scalar M "bigM";<br />
M = sum((j,k), p(j,k));<br />
FREE variable<br />
AverageC "Average completion time";<br />
<br />
POSITIVE variables x(j,k) "Start time of job (product) j on unit k: j.k";<br />
BINARY variables y(j,jp,k) "Disjunctive variable for j and jp on k";<br />
<br />
EQUATIONS<br />
avgComplete "Average completeness",<br />
pred(j,k,kp) "Precedence within jobs",<br />
disj1(j,jp,k) "Disjunctive part 1 for j and jp on k",<br />
disj2(j,jp,k) "Disjunctive part 2 for j and jp on k";<br />
<br />
avgComplete.. AverageC =E= sum((j,k), x(j,k)+p(j,k) ); <br />
<br />
* These are the precedence constraints<br />
pred(j,k,kp)$succ(j,k,kp).. x(j,k) + p(j,k) =L= x(j,kp);<br />
<br />
disj1(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(j,k) + p(j,k) =L= x(jp,k) + M*(1-y(j,jp,k));<br />
<br />
disj2(j,jp,k)$(ord(j) lt ord(jp) and p(j,k) gt 0 and p(jp,k) gt 0)..<br />
x(jp,k) + p(jp,k) =L= x(j,k) + M*y(j,jp,k);<br />
MODEL Jobshop /all/;<br />
option mip = mosek;<br />
SOLVE Jobshop USING MIP minimizing AverageC;<br />
</syntaxhighlight></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=322
Non-linear programming
2017-01-03T20:20:41Z
<p>Kevin Dunn: /* Resources */</p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 <br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 <br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 <br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 <br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 <br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 <br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 <br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10B.mp4 <br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 <br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 Video]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|[http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|[http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-10BA.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=321
Non-linear programming
2017-01-03T20:16:15Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 <br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 <br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 <br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 <br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 <br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 <br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 <br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10B.mp4 <br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 <br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 Video]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|[http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-10BA.mp4 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 Video] <br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=320
Non-linear programming
2017-01-03T20:13:48Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-05A.mp4 <br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06A.mp4 <br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-06B.mp4 <br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08A.mp4 <br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-08B.mp4 <br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09A.mp4 <br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-09B.mp4 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10A.mp4 <br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-10B.mp4 <br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-11A.mp4 <br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
| [https://drive.google.com/file/d/0B9qiArsxgE8YU3FrNVBtMFdaWEk Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YV096aTdBSjVtYVk&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YODBHOTNvZ1BwSVk&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YSTBxdmowVTRoRW8&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YSDBfWG5FeElDWGs&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|[https://drive.google.com/open?id=0B9qiArsxgE8YRV9YX3hyM0luOW8&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|[https://drive.google.com/open?id=0B9qiArsxgE8YcmRodlVEMXc0Mms&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YOVFQRWtHNTFHdzQ&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YcVRHSEtrcWc0bms&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YNHBCYTFvb1ZyclE&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=319
Non-linear programming
2017-01-03T17:36:56Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = w91QogkPMxY<br />
| vimeoID2 = lKLCPwPFx4k<br />
| vimeoID3 = DXXc77TADGU<br />
| vimeoID4 = PqgV9uohNYE<br />
| vimeoID5 = 4RK36TnNptE<br />
| vimeoID6 = KPjQ5ubm36o<br />
| vimeoID7 = 03l748-yjg8<br />
| vimeoID8 = 8h3PxFKxPKQ<br />
| vimeoID9 = gbVtbU4WSXM<br />
| vimeoID10 = Hy3D8qQFVUs<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YU3FrNVBtMFdaWEk<br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YV096aTdBSjVtYVk&authuser=0<br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YODBHOTNvZ1BwSVk&authuser=0<br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YSTBxdmowVTRoRW8&authuser=0<br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YSDBfWG5FeElDWGs&authuser=0<br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YRV9YX3hyM0luOW8&authuser=0<br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YcmRodlVEMXc0Mms&authuser=0 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YOVFQRWtHNTFHdzQ&authuser=0<br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YcVRHSEtrcWc0bms&authuser=0<br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YNHBCYTFvb1ZyclE&authuser=0<br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
| [https://drive.google.com/file/d/0B9qiArsxgE8YU3FrNVBtMFdaWEk Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YV096aTdBSjVtYVk&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YODBHOTNvZ1BwSVk&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YSTBxdmowVTRoRW8&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YSDBfWG5FeElDWGs&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|[https://drive.google.com/open?id=0B9qiArsxgE8YRV9YX3hyM0luOW8&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|[https://drive.google.com/open?id=0B9qiArsxgE8YcmRodlVEMXc0Mms&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YOVFQRWtHNTFHdzQ&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YcVRHSEtrcWc0bms&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YNHBCYTFvb1ZyclE&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming_(2015)&diff=318
Non-linear programming (2015)
2017-01-03T17:22:44Z
<p>Kevin Dunn: Kevin Dunn moved page Non-linear programming (2015) to Non-linear programming</p>
<hr />
<div>#REDIRECT [[Non-linear programming]]</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Non-linear_programming&diff=317
Non-linear programming
2017-01-03T17:22:43Z
<p>Kevin Dunn: Kevin Dunn moved page Non-linear programming (2015) to Non-linear programming</p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebar<br />
| date = 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = 118739752<br />
| vimeoID2 = 119151097<br />
| vimeoID3 = 119366104<br />
| vimeoID4 = 121094463<br />
| vimeoID5 = 121375922<br />
| vimeoID6 = 121726806<br />
| vimeoID7 = 122145854<br />
| vimeoID8 = 122562789<br />
| vimeoID9 = 123005249<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YU3FrNVBtMFdaWEk<br />
| video_download_link_MP4_size = 433 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YV096aTdBSjVtYVk&authuser=0<br />
| video_download_link2_MP4_size = 797 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YODBHOTNvZ1BwSVk&authuser=0<br />
| video_download_link3_MP4_size = 820 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YSTBxdmowVTRoRW8&authuser=0<br />
| video_download_link4_MP4_size = 640 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YSDBfWG5FeElDWGs&authuser=0<br />
| video_download_link5_MP4_size = 923 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YRV9YX3hyM0luOW8&authuser=0<br />
| video_download_link6_MP4_size = 943 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YcmRodlVEMXc0Mms&authuser=0 <br />
| video_download_link7_MP4_size = 667 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YOVFQRWtHNTFHdzQ&authuser=0<br />
| video_download_link8_MP4_size = 948 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YcVRHSEtrcWc0bms&authuser=0<br />
| video_download_link9_MP4_size = 935 M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YNHBCYTFvb1ZyclE&authuser=0<br />
| video_download_link10_MP4_size = 907 M<br />
| video_notes10 =<br />
}}<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 04 February<br />
| 05A<br />
| align="left" colspan="1"|<br />
* Why consider unconstrained, single-variable problems<br />
* Newton's method review to solve these problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1NozRUYfdIw2RLnU0DExOzF-RH-mx5VbjgQU35zxKLCU Handout from class]<br />
| [https://drive.google.com/file/d/0B9qiArsxgE8YU3FrNVBtMFdaWEk Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 09 February<br />
| 06A<br />
| align="left" colspan="1"|<br />
* Newton's method reviewed again for unconstrained, single-variable problems<br />
* Using finite differences instead in Newton's method<br />
* Multivariate unconstrained optimization<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/10oe_laMhtPl5roJGa3C44YlsSvdbHvUAjt6uRMf9q4k Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YV096aTdBSjVtYVk&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 February<br />
| 06B<br />
| align="left" colspan="1"|<br />
* Unconstrained single-variable optimization using gradient search<br />
* Unconstrained multivariate optimization using gradient search<br />
* Understanding the line search problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YODBHOTNvZ1BwSVk&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 to 27 February<br />
| 07<br />
| align="left" colspan="4"|<br />
''Reading week break and midterm''<br />
|-<br />
| 02 March<br />
| 08A<br />
| align="left" colspan="1"|<br />
* Unconstrained optimization in two variables review<br />
* Contrasting it back to the single variable case<br />
* Extending to the multidimensional Newton's method<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1vg7ffZUjSSmh1pL1EgeCGJtQnCSC652UWaBanfmqXr0 Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YSTBxdmowVTRoRW8&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 04 March<br />
| 08B<br />
| align="left" colspan="1"|<br />
* Examples on the multidimensional Newton's method<br />
* Quasi Newton method in multiple dimensions<br />
* Positive and negative definiteness of the Hessian<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tISkFj7nYa3RV7G8LF4S_nD7dMzb7_ATwY0z4gslDT0 Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YSDBfWG5FeElDWGs&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
Code used in class (see below)<br />
|-<br />
| 09 March<br />
| 09A<br />
| align="left" colspan="1"|<br />
* Constrained nonlinear optimization introduction<br />
* Model formulation (convert a problem to mathematics)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] <br />
|[https://drive.google.com/open?id=0B9qiArsxgE8YRV9YX3hyM0luOW8&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 11 March<br />
| 09B<br />
| align="left" colspan="1"|<br />
Guest lecture<br />
| align="left" colspan="1"|<br />
[[Media:Guest-lecture-4G3-2015.pdf |Handout from class]]<br />
|[https://drive.google.com/open?id=0B9qiArsxgE8YcmRodlVEMXc0Mms&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 16 March<br />
| 10A<br />
| align="left" colspan="1"|<br />
* Convexity, concavity<br />
* Guarantees on when problems are globally optimal<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1tHekhHdPWEPhPm_lGVP5cws_2-NsTw_6JpVhhLSlgmo Handout from class] (continued with handout 09A)<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YOVFQRWtHNTFHdzQ&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 18 March<br />
| 10B<br />
| align="left" colspan="1"|<br />
* Lagrange multiplier method for constrained optimization<br />
* Interpretation of the Lagrange multiplier constraints<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/14F-MRq34UNR52Wg2JL9MalYfVZIOHjYCTkRa9tgGQ7g/edit?usp=sharing Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YcVRHSEtrcWc0bms&authuser=0 Video]<br />
|align="left" colspan="1"|<br />
|-<br />
| 23 March<br />
| 11A<br />
| align="left" colspan="1"|<br />
* The Nelder-Mead method (several of you are using it in your projects)<br />
* Practice with using the Nelder Mead method. Optimize this system: http://yint.org/nm<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1QdpFX1wgiCfNXgEJz9r6j85k4vXXfwbDPo9weKuCFR0/edit?usp=sharing Handout from class]<br />
| [https://drive.google.com/open?id=0B9qiArsxgE8YNHBCYTFvb1ZyclE&authuser=0 Video] <br />
|align="left" colspan="1"|<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
===Taking full Newton's steps to solve the class example===<br />
<syntaxhighlight lang="matlab"><br />
clear all;<br />
close all;<br />
clc;<br />
[X1,X2] = meshgrid(-0.5:0.1:6, 0:0.01:9);<br />
Z = func(X1,X2);<br />
contour(X1, X2, Z)<br />
hold on<br />
grid on<br />
<br />
x = [1,3]';<br />
plot(x(1), x(2), 'o')<br />
text(x(1)+0.2, x(2), '0')<br />
<br />
for k = 1:10<br />
slope = -first_deriv(x)<br />
step = hessian(x)\slope; % Solves the Ax=b problem, as x = A\b<br />
x = x + step;<br />
plot(x(1), x(2), '*')<br />
text(x(1)+0.1, x(2), num2str(k))<br />
end<br />
</syntaxhighlight><br />
'''<tt>func.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = func(x1,x2)<br />
y = 4.*x1.*x2 - 5.*(x1-2).^4 - 3.*(x2-5).^4;<br />
</syntaxhighlight><br />
'''<tt>first_deriv.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = first_deriv(x)<br />
y = [4*x(2) - 20*(x(1)-2)^3; <br />
4*x(1) - 12*(x(2)-5)^3];<br />
</syntaxhighlight><br />
'''<tt>hessian.m</tt>'''<br />
<syntaxhighlight lang="matlab"><br />
function y = hessian(x)<br />
y = [-60*(x(1)-2)^2, 4; <br />
4, -36*(x(2)-5)^2];<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=316
Main Page
2017-01-03T17:22:29Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
<!--<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}} --><br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Linear_programming_(2015)&diff=315
Linear programming (2015)
2017-01-03T17:17:45Z
<p>Kevin Dunn: Kevin Dunn moved page Linear programming (2015) to Linear programming</p>
<hr />
<div>#REDIRECT [[Linear programming]]</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Linear_programming&diff=314
Linear programming
2017-01-03T17:17:44Z
<p>Kevin Dunn: Kevin Dunn moved page Linear programming (2015) to Linear programming</p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 07 January to 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = c5d5Sqh5enE<br />
| vimeoID2 = E-GlTTLzbSc<br />
| vimeoID3 = jUq6QTTAPJc<br />
| vimeoID4 = t_U015J0iqQ<br />
| vimeoID5 = ZDr5iu9LzuE<br />
| vimeoID6 = EUC4dRqZhXw<br />
| vimeoID7 = hpuAPO3BTew<br />
| vimeoID8 = loWOX4zCpZ0<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YdWNSZVJ0cnZHREE<br />
| video_download_link_MP4_size = 610 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YWEhXUlRrM1dpZ1U<br />
| video_download_link2_MP4_size = 812 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YTjNqQ3Q0bVgzSGc<br />
| video_download_link3_MP4_size = 840 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YMUlfa2JyZDNtNlU<br />
| video_download_link4_MP4_size = 820 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YS0V3ZkF2ajlEYWc&authuser=0<br />
| video_download_link5_MP4_size = 807 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YMFl6SGVlbjFRYjQ&authuser=0<br />
| video_download_link6_MP4_size = 819 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YVU50QkFudFlkNEU&authuser=0<br />
| video_download_link7_MP4_size = 817 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YRFRTaUkyVXlsbHM&authuser=0<br />
| video_download_link8_MP4_size = 459 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = <br />
| video_download_link9_MP4_size = M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = <br />
| video_download_link10_MP4_size = M<br />
| video_notes10 =<br />
| video_download_link11_MP4 = <br />
| video_download_link11_MP4_size = M<br />
| video_notes11 =<br />
| video_download_link12_MP4 =<br />
| video_download_link12_MP4_size = M<br />
| video_notes12 =}}<br />
<br />
== References ==<br />
<br />
Dr. Marlin has made a [[Media:4G3-Linear-Programming-Notes-Thomas-Marlin.pdf |great, short e-book on Linear Programming]]. You will find reading his notes very rewarding, and a great supplement to the class lectures.<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 07 January<br />
| 01B<br />
| align="left" colspan="1"|<br />
* Degrees of freedom<br />
* Terminology related to optimization<br />
* Introductory linear programming problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1WxIMpERJgZZUbdok_eUAFdMJ_2U2A_jDAVq0sSoJ2ro Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 12 January<br />
| 02A<br />
| align="left" colspan="1"|<br />
* More terminology related to optimization<br />
* Continue with our introductory LP problem<br />
* Geometric aspects of the optimum<br />
* Moving LP problems into standard form<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1zQkvE0h9S-NRgGJIxD-zVGD6fbsHUSFRFK3hjW-hkRg Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4 Video] <br />
|align="left" colspan="1"|<br />
We covered topics on page 11, 13, 14 and 17 of the notes by Marlin (see comment above).<br />
|-<br />
| 14 January<br />
| 02B<br />
| align="left" colspan="1"|<br />
* Getting the LP problem into standard form<br />
* Starting to understand the Simplex method to solve LPs<br />
| align="left" rowspan="2"|<br />
[https://docs.google.com/document/d/1NfY58o58LSGGZausUrowQMGdNuftbdCMwDbK-mUF-PQ/ Handout from class] <br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4 Video] <br />
|align="left" rowspan="2"|<br />
We covered topics on page 21 to 29 of the notes by Marlin, however, I did not focus on the mathematical details; we only consider the geometric viewpoint in 4G3.<br />
|-<br />
| 19 January<br />
| 03A<br />
| align="left" colspan="1"|<br />
* Running the simplex method to solve LPs<br />
* Interpretation of the optimum solution<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4 Video]<br />
|-<br />
| 21 January<br />
| 03B<br />
| align="left" colspan="1"|<br />
* Interpretation of general LP models<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/13GjbGCOxqO67pUDfVVQOfzBGvFl6gqZCNIrT54YMFPk Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4 Video] <br />
|align="left" |<br />
See page 37 and 38 in Marlin's notes for an alternative visualization of sensitivity analysis.<br />
|-<br />
| 26 January<br />
| 04A<br />
| align="left" colspan="1"|<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
** The effect of \(b_i\) changes on the RHS<br />
** The effect of \(A\) changes on the LHS<br />
** The effect of \(c_i\) changes in the objective<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1o8GdJERF0NvH2EafNbfOSDGIUaV8-pr6roGSb241oXY Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4 Video] <br />
|align="left" |<br />
|-<br />
| 28 January and 04 February<br />
| 04B<br />
| align="left" colspan="1"|<br />
* Recapped some concepts on sensitivity analysis<br />
* Considered sensitivity analysis where two or more variables were varied<br />
* Getting a general understanding of LPs<br />
** Allocation problems<br />
** Blending problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EQSzelonUYt0rcyj5s8tOPcQimQvhBKGIKLUgJpURNY/edit Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4 VideoA] and [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4 VideoB]<br />
|align="left" |<br />
|}<br />
<br />
<br />
<br />
The R-code used to draw the plot in the class handout 2B and 3A.<br />
<syntaxhighlight lang="sas"><br />
plot(c(0, 100), c(0, 70), type = "n", xlab = expression(x[1]), ylab = expression(x[2]), asp = 1)<br />
abline(a=1500/10, b=-16/10, lw=7) # Placement<br />
abline(a=1000/12, b=-10/12, lw=5) # Solder<br />
abline(a=500/8, b=-4/8, lw=3) # Inspection<br />
abline(v=0, h=0)<br />
title(expression("Objective: Maximize 10"~x[1]~"+ 15"~x[2]))<br />
<br />
text(20, 55, expression("Inspection: 4"~x[1]~"+ 8"~x[2]~"+ "~x[5]~" = 500"), srt=332.5) <br />
text(35, 57, expression("Solder: 10"~x[1]~"+ 12"~x[2]~"+ "~x[4]~" = 1000"), srt=319.5)<br />
text(65.5, 50, expression("Placement: 16"~x[1]~"+ 10"~x[2]~"+ "~x[3]~" = 1500"), srt=301)<br />
text(2, 30, expression("Non-negativity: "~x[1]>=~"0"), srt=90)<br />
text(45, 2, expression("Non-negativity: "~x[2]>=~"0"), srt=0)<br />
<br />
delta=2<br />
text(0+delta, 0+delta, "[0]")<br />
text(0+delta, 62.5-2*delta, "[1]")<br />
text(62.5, 31.25-1.5*delta, "[2]")<br />
text(87-delta, 10.9-1.0*delta, "[3]")<br />
text(93.75-2.1*delta, 0+1.0*delta, "[4]")<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Linear_programming&diff=313
Linear programming
2017-01-03T17:02:30Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__<br />
{{ClassSidebarYouTube<br />
| date = 07 January to 04 February 2015<br />
| dates_alt_text = <br />
| vimeoID1 = c5d5Sqh5enE<br />
| vimeoID2 = E-GlTTLzbSc<br />
| vimeoID3 = jUq6QTTAPJc<br />
| vimeoID4 = t_U015J0iqQ<br />
| vimeoID5 = ZDr5iu9LzuE<br />
| vimeoID6 = EUC4dRqZhXw<br />
| vimeoID7 = hpuAPO3BTew<br />
| vimeoID8 = loWOX4zCpZ0<br />
| vimeoID9 =<br />
| vimeoID10 =<br />
| vimeoID11 =<br />
| course_notes_PDF = <br />
| course_notes_alt = Course notes<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YdWNSZVJ0cnZHREE<br />
| video_download_link_MP4_size = 610 M<br />
| video_notes1 =<br />
| video_download_link2_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YWEhXUlRrM1dpZ1U<br />
| video_download_link2_MP4_size = 812 M<br />
| video_notes2 =<br />
| video_download_link3_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YTjNqQ3Q0bVgzSGc<br />
| video_download_link3_MP4_size = 840 M<br />
| video_notes3 =<br />
| video_download_link4_MP4 = https://drive.google.com/file/d/0B9qiArsxgE8YMUlfa2JyZDNtNlU<br />
| video_download_link4_MP4_size = 820 M<br />
| video_notes4 =<br />
| video_download_link5_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YS0V3ZkF2ajlEYWc&authuser=0<br />
| video_download_link5_MP4_size = 807 M<br />
| video_notes5 =<br />
| video_download_link6_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YMFl6SGVlbjFRYjQ&authuser=0<br />
| video_download_link6_MP4_size = 819 M<br />
| video_notes6 =<br />
| video_download_link7_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YVU50QkFudFlkNEU&authuser=0<br />
| video_download_link7_MP4_size = 817 M<br />
| video_notes7 =<br />
| video_download_link8_MP4 = https://drive.google.com/open?id=0B9qiArsxgE8YRFRTaUkyVXlsbHM&authuser=0<br />
| video_download_link8_MP4_size = 459 M<br />
| video_notes8 =<br />
| video_download_link9_MP4 = <br />
| video_download_link9_MP4_size = M<br />
| video_notes9 =<br />
| video_download_link10_MP4 = <br />
| video_download_link10_MP4_size = M<br />
| video_notes10 =<br />
| video_download_link11_MP4 = <br />
| video_download_link11_MP4_size = M<br />
| video_notes11 =<br />
| video_download_link12_MP4 =<br />
| video_download_link12_MP4_size = M<br />
| video_notes12 =}}<br />
<br />
== References ==<br />
<br />
Dr. Marlin has made a [[Media:4G3-Linear-Programming-Notes-Thomas-Marlin.pdf |great, short e-book on Linear Programming]]. You will find reading his notes very rewarding, and a great supplement to the class lectures.<br />
<br />
== Resources ==<br />
''Scroll down, if necessary, to see the resources.''<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Date<br />
! Class number<br />
! Topic<br />
! Slides/handouts for class<br />
! Video file<br />
! References and Notes<br />
|-<br />
| 07 January<br />
| 01B<br />
| align="left" colspan="1"|<br />
* Degrees of freedom<br />
* Terminology related to optimization<br />
* Introductory linear programming problem<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1WxIMpERJgZZUbdok_eUAFdMJ_2U2A_jDAVq0sSoJ2ro Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-01B.mp4 Video] <br />
|align="left" colspan="1"|<br />
|-<br />
| 12 January<br />
| 02A<br />
| align="left" colspan="1"|<br />
* More terminology related to optimization<br />
* Continue with our introductory LP problem<br />
* Geometric aspects of the optimum<br />
* Moving LP problems into standard form<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1zQkvE0h9S-NRgGJIxD-zVGD6fbsHUSFRFK3hjW-hkRg Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02A.mp4 Video] <br />
|align="left" colspan="1"|<br />
We covered topics on page 11, 13, 14 and 17 of the notes by Marlin (see comment above).<br />
|-<br />
| 14 January<br />
| 02B<br />
| align="left" colspan="1"|<br />
* Getting the LP problem into standard form<br />
* Starting to understand the Simplex method to solve LPs<br />
| align="left" rowspan="2"|<br />
[https://docs.google.com/document/d/1NfY58o58LSGGZausUrowQMGdNuftbdCMwDbK-mUF-PQ/ Handout from class] <br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-02B.mp4 Video] <br />
|align="left" rowspan="2"|<br />
We covered topics on page 21 to 29 of the notes by Marlin, however, I did not focus on the mathematical details; we only consider the geometric viewpoint in 4G3.<br />
|-<br />
| 19 January<br />
| 03A<br />
| align="left" colspan="1"|<br />
* Running the simplex method to solve LPs<br />
* Interpretation of the optimum solution<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03A.mp4 Video]<br />
|-<br />
| 21 January<br />
| 03B<br />
| align="left" colspan="1"|<br />
* Interpretation of general LP models<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/13GjbGCOxqO67pUDfVVQOfzBGvFl6gqZCNIrT54YMFPk Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-03B.mp4 Video] <br />
|align="left" |<br />
See page 37 and 38 in Marlin's notes for an alternative visualization of sensitivity analysis.<br />
|-<br />
| 26 January<br />
| 04A<br />
| align="left" colspan="1"|<br />
* Understand the effects of changes in the model on the optimum solution (i.e. sensitivity analysis)<br />
** The effect of \(b_i\) changes on the RHS<br />
** The effect of \(A\) changes on the LHS<br />
** The effect of \(c_i\) changes in the objective<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1o8GdJERF0NvH2EafNbfOSDGIUaV8-pr6roGSb241oXY Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04A.mp4 Video] <br />
|align="left" |<br />
|-<br />
| 28 January and 04 February<br />
| 04B<br />
| align="left" colspan="1"|<br />
* Recapped some concepts on sensitivity analysis<br />
* Considered sensitivity analysis where two or more variables were varied<br />
* Getting a general understanding of LPs<br />
** Allocation problems<br />
** Blending problems<br />
| align="left" colspan="1"|<br />
[https://docs.google.com/document/d/1EQSzelonUYt0rcyj5s8tOPcQimQvhBKGIKLUgJpURNY/edit Handout from class]<br />
| [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B.mp4 VideoA] and [http://learnche.mcmaster.ca/media/2015-4G3-Class-04B-wrap-up.mp4 VideoB]<br />
|align="left" |<br />
|}<br />
<br />
<br />
<br />
The R-code used to draw the plot in the class handout 2B and 3A.<br />
<syntaxhighlight lang="sas"><br />
plot(c(0, 100), c(0, 70), type = "n", xlab = expression(x[1]), ylab = expression(x[2]), asp = 1)<br />
abline(a=1500/10, b=-16/10, lw=7) # Placement<br />
abline(a=1000/12, b=-10/12, lw=5) # Solder<br />
abline(a=500/8, b=-4/8, lw=3) # Inspection<br />
abline(v=0, h=0)<br />
title(expression("Objective: Maximize 10"~x[1]~"+ 15"~x[2]))<br />
<br />
text(20, 55, expression("Inspection: 4"~x[1]~"+ 8"~x[2]~"+ "~x[5]~" = 500"), srt=332.5) <br />
text(35, 57, expression("Solder: 10"~x[1]~"+ 12"~x[2]~"+ "~x[4]~" = 1000"), srt=319.5)<br />
text(65.5, 50, expression("Placement: 16"~x[1]~"+ 10"~x[2]~"+ "~x[3]~" = 1500"), srt=301)<br />
text(2, 30, expression("Non-negativity: "~x[1]>=~"0"), srt=90)<br />
text(45, 2, expression("Non-negativity: "~x[2]>=~"0"), srt=0)<br />
<br />
delta=2<br />
text(0+delta, 0+delta, "[0]")<br />
text(0+delta, 62.5-2*delta, "[1]")<br />
text(62.5, 31.25-1.5*delta, "[2]")<br />
text(87-delta, 10.9-1.0*delta, "[3]")<br />
text(93.75-2.1*delta, 0+1.0*delta, "[4]")<br />
</syntaxhighlight><br />
<br />
<!--<br />
<br />
'''&#8592; these are new'''<br />
--></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=312
Main Page
2017-01-03T11:05:11Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
<!--<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}} --><br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Course_overview_(2015)&diff=311
Course overview (2015)
2017-01-03T10:01:22Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__{{ClassSidebarYouTube<br />
| date = 05 January 2015<br />
| dates_alt_text = <br />
| vimeoID1 = VvPn-BIQqcI<br />
| vimeoID2 =<br />
| course_notes_PDF = 2015-4G3-Course-overview-administrative-details.pdf<br />
| course_notes_alt = Slides for this class<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = http://learnche.mcmaster.ca/media/2015-4G3-Class-01A.mp4<br />
| video_download_link_MP4_size = 785 M<br />
| video_notes1 =<br />
}}<br />
== 05 January 2015 ==<br />
<br />
In this class we will go through the [[Course_outline_(2015) |course outline]] and introduce the main learning areas of the course. <br />
<br />
* [[Media:2015-4G3-Course-overview-administrative-details.pdf| Optional slides]] to print and bring to class.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Course_overview_(2015)&diff=310
Course overview (2015)
2017-01-03T09:58:30Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__{{ClassSidebarYouTube<br />
| date = 05 January 2015<br />
| dates_alt_text = <br />
| vimeoID1 = VvPn-BIQqcI<br />
| vimeoID2 =<br />
| course_notes_PDF = 2015-4G3-Course-overview-administrative-details.pdf<br />
| course_notes_alt = Slides for this class<br />
| overheads_PDF = <br />
| assignment_instructions = <br />
| assignment_solutions = <br />
| video_download_link_MP4 = https://docs.google.com/open?id=0B9qiArsxgE8YSl9DbDJRU0VZV1E<br />
| video_download_link_MP4_size = 785 M<br />
| video_notes1 =<br />
}}<br />
== 05 January 2015 ==<br />
<br />
In this class we will go through the [[Course_outline_(2015) |course outline]] and introduce the main learning areas of the course. <br />
<br />
* [[Media:2015-4G3-Course-overview-administrative-details.pdf| Optional slides]] to print and bring to class.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Widget:YouTube&diff=309
Widget:YouTube
2017-01-03T09:58:12Z
<p>Kevin Dunn: Created page with "<noinclude> This widget allows you to add a [https://developers.google.com/youtube/player_parameters YouTube video player] to your wiki page. == Using this widget == For info..."</p>
<hr />
<div><noinclude><br />
This widget allows you to add a [https://developers.google.com/youtube/player_parameters YouTube video player] to your wiki page.<br />
<br />
== Using this widget ==<br />
For information on how to use this widget, see the [https://www.mediawikiwidgets.org/YouTube widget description page on MediaWikiWidgets.org].<br />
<br />
== Copy to your site ==<br />
To use this widget on your site, just install the [https://www.mediawiki.org/wiki/Extension:Widgets MediaWiki Widgets extension] and the copy [{{fullurl:{{FULLPAGENAME}}|action=edit}} full source code] of this page to your wiki, as an article called '''{{FULLPAGENAME}}'''.<br />
</noinclude><includeonly><iframe width="<!--{$width|escape:'html'|default:'425'}-->" height="<!--{$height|escape:'html'|default:355}-->" src="//www.youtube.com/embed/<!--{if isset($playlist)}-->?listType=playlist&list=<!--{$playlist|escape:'urlpathinfo'}--><!--{else}--><!--{$id|escape:'urlpathinfo'}--><!--{/if}-->" frameborder="0" allowfullscreen></iframe></includeonly></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Template:ClassSidebarYouTube&diff=308
Template:ClassSidebarYouTube
2017-01-03T09:57:45Z
<p>Kevin Dunn: Created page with "<div class="sideVideoBox"> {| |- | {{#if: {{{date|}}} | '''Class date(s)''': }} | {{{date}}} |- {{#if:{{{course_notes_PDF}}} | {{!}} Image:Nuvola_mimetypes_pdf.png|20px|l..."</p>
<hr />
<div><div class="sideVideoBox"><br />
{| <br />
|-<br />
| {{#if: {{{date|}}} | '''Class date(s)''': }}<br />
| {{{date}}}<br />
|-<br />
{{#if:{{{course_notes_PDF}}} | <br />
{{!}} [[Image:Nuvola_mimetypes_pdf.png|20px|link=Media:{{{course_notes_PDF}}}]] (PDF)<br />
{{!}} [[Media:{{{course_notes_PDF}}} | {{#if:{{{course_notes_alt|}}} | {{{course_notes_alt}}} | Course notes}} ]]<br />
{{!}}-<br />
}}<br />
{{#if:{{{overheads_PDF}}} | <br />
{{!}} [[Image:Nuvola_mimetypes_pdf.png|20px|link=Media:{{{overheads_PDF}}}]] (PDF)<br />
{{!}} [[Media:{{{overheads_PDF}}} | {{#if:{{{overheads_PDF_alt|}}} | {{{overheads_PDF_alt}}} | Projector overheads}} ]]<br />
{{!}}-<br />
}}<br />
{{#if:{{{assignment_instructions}}} | <br />
{{!}} '''Assignment(s)'''<br />
{{!}} {{{assignment_instructions}}}<br />
{{!}}-<br />
}}<br />
{{#if:{{{assignment_solutions}}} | <br />
{{!}} '''Solutions''' <br />
{{!}} {{{assignment_solutions}}} <br />
{{!}}-<br />
}}<br />
{{#if:{{{vimeoID1|}}}| <!-- Vimeo Video 1--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID1}}}}}<br />
{{!}}- <br />
{{!}} {{#if:{{{video_download_link_MP4|}}}| '''Download video''': [{{{video_download_link_MP4}}} Link] [{{{video_download_link_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes1|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes1}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID1" --><br />
{{!}}-<br />
{{#if:{{{vimeoID2|}}}| <!-- Vimeo Video 2 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID2}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link2_MP4|}}}| '''Download video''': [{{{video_download_link2_MP4}}} Link] [{{{video_download_link2_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes2|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes2}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID2" --><br />
{{!}}-<br />
{{#if:{{{vimeoID3|}}}| <!-- Vimeo Video 3 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID3}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link3_MP4|}}}| '''Download video''': [{{{video_download_link3_MP4}}} Link] [{{{video_download_link3_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes3|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes3}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID3" --><br />
{{!}}-<br />
{{#if:{{{vimeoID4|}}}| <!-- Vimeo Video 4--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID4}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link4_MP4|}}}| '''Download video''': [{{{video_download_link4_MP4}}} Link] [{{{video_download_link4_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes4|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes4}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID4" --><br />
{{!}}-<br />
{{#if:{{{vimeoID5|}}}| <!-- Vimeo Video 5--><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID5}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link5_MP4|}}}| '''Download video''': [{{{video_download_link5_MP4}}} Link] [{{{video_download_link5_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes5|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes5}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID5" --><br />
{{!}}-<br />
{{#if:{{{vimeoID6|}}}| <!-- Vimeo Video 6 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID6}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link6_MP4|}}}| '''Download video''': [{{{video_download_link6_MP4}}} Link] [{{{video_download_link6_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes6|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes6}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID6" --><br />
{{!}}-<br />
{{#if:{{{vimeoID7|}}}| <!-- Vimeo Video 7 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID7}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link7_MP4|}}}| '''Download video''': [{{{video_download_link7_MP4}}} Link] [{{{video_download_link7_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes7|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes7}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID7" --><br />
{{!}}-<br />
{{#if:{{{vimeoID8|}}}| <!-- Vimeo Video 8 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID8}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link8_MP4|}}}| '''Download video''': [{{{video_download_link8_MP4}}} Link] [{{{video_download_link8_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes8|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes8}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID8" --><br />
{{!}}-<br />
{{#if:{{{vimeoID9|}}}| <!-- Vimeo Video 9 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID9}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link9_MP4|}}}| '''Download video''': [{{{video_download_link9_MP4}}} Link] [{{{video_download_link9_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes9|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes9}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID9" --><br />
{{!}}-<br />
{{#if:{{{vimeoID10|}}}| <!-- Vimeo Video 10 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID10}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link10_MP4|}}}| '''Download video''': [{{{video_download_link10_MP4}}} Link] [{{{video_download_link10_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes10|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes10}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID10" --><br />
{{!}}-<br />
{{#if:{{{vimeoID11|}}}| <!-- Vimeo Video 11 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID11}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link11_MP4|}}}| '''Download video''': [{{{video_download_link11_MP4}}} Link] [{{{video_download_link11_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes11|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes11}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID11" --><br />
{{!}}-<br />
{{#if:{{{vimeoID12|}}}| <!-- Vimeo Video 12 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID12}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link12_MP4|}}}| '''Download video''': [{{{video_download_link12_MP4}}} Link] [{{{video_download_link12_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes12|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes12}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID12" --><br />
{{!}}-<br />
{{#if:{{{vimeoID13|}}}| <!-- Vimeo Video 13 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID13}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link13_MP4|}}}| '''Download video''': [{{{video_download_link13_MP4}}} Link] [{{{video_download_link13_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes13|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes13}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID13" --><br />
{{!}}-<br />
{{#if:{{{vimeoID14|}}}| <!-- Vimeo Video 14 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
! <br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID14}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link14_MP4|}}}| '''Download video''': [{{{video_download_link14_MP4}}} Link] [{{{video_download_link14_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes14|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes14}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID14" --><br />
{{!}}-<br />
{{#if:{{{vimeoID15|}}}| <!-- Vimeo Video 15 --><br />
{{!}} colspan = "2" {{!}}<br />
{{{!}} <br />
{{!}}-<br />
!<br />
{{!}}-<br />
{{!}} {{#widget:YouTube|id={{{vimeoID15}}}}}<br />
{{!}}-<br />
{{!}} {{#if:{{{video_download_link15_MP4|}}}| '''Download video''': [{{{video_download_link15_MP4}}} Link] [{{{video_download_link15_MP4_size}}}]}}<br />
{{!}}-<br />
{{!}} <hr><br />
{{!}}}<br />
{{!}}-<br />
{{!}} <br />
{{#if:{{{video_notes15|}}}| '''Video timing'''<br />
{{!}}<br />
{{!}}-<br />
{{!}} colspan = "2" {{!}}<br />
{{{video_notes15}}}<br />
}}<br />
{{!}}-<br />
}} <!-- end of "if vimeoID15" --><br />
|}<br />
</div></div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=307
Main Page
2016-01-13T15:38:55Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
<!--<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}} --><br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=306
Main Page
2016-01-13T15:38:35Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=305
Main Page
2015-05-01T19:42:39Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 24 April: exams and projects are being graded this week and next week. Expect grades in Avenue during the first week of May.<br />
<br />
* 01 May: the final exam and project grades are now posted to Avenue. Congratulations on reaching the end of the course.<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Archived-Announcements-2015&diff=304
Archived-Announcements-2015
2015-04-24T11:30:02Z
<p>Kevin Dunn: </p>
<hr />
<div>Previous announcements for 4G3 (in reverse time order):<br />
<br />
* 16 Apr: as you wrap up your studying, if you notice an errors/updates/improvement in the course notes (Google Docs and the handouts), please report them here: http://learnche.mcmaster.ca/feedback-questions<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
* 15 Apr: there is a minor error in the exam on 16 April which I hope to draw your attention to:<br />
:: Question 1, part 8 starts: "''What is the new overall cost transportation ...''"; <br />
:: it should be: "''What is the new overall cost '''of''' transportation ...''"<br />
* 12 Apr: looking ahead at my schedule for this week, I'm not likely to get around to grading the project reports until at least 14 April. '''Feel free to submit your project by 14 April, 16:00''', at [http://yint.org/4G3-project http://yint.org/4G3-project].<br />
* 10 Apr: please submit your project reports at this link: [http://yint.org/4G3-project http://yint.org/4G3-project].<br />
* 03 Apr: some practice questions for the final exam are being added to the document below. Treat this as a final (ungraded) assignment, since it contains questions on the materials recently covered in class.<br />
* 02 Apr: [https://evals.mcmaster.ca/ course evaluations are ready to go]. Please submit one - these are crucial for keeping the course quality high, and determining how to make improvements to the course.<br />
* 02 Apr: you should be aware that the project due date has been extended to 13 April at 16:00. This should fit in with the lighter exam load that most of you have.<br />
* 30 Mar: solutions to assignment 6 are posted now.<br />
* 25 Mar: if anyone is hitting into the upper constraint of the free GAMS version, you can solve your larger problem, for free, on the [http://www.neos-server.org/neos/ NEOS server] (click on the link "Submit a job to NEOS").<br />
* 24 Mar: solutions to assignment 5 are posted, and the grades are uploaded into Avenue now.<br />
* 20 Mar: someone left a pair of sunglasses in the lab during their meeting on Friday. Please contact me to have it returned to you.<br />
* 18 Mar: there will be no tutorials this Friday and Monday. However, the meetings will take place in the tutorial room. You a '''''strongly''''' encouraged to be at tutorial though, and use that time to set up your problem, constraints, and search variables in GAMS.<br />
* 17 Mar: we are scheduling small group meetings with myself in the tutorial location on Friday and Monday and then some slots are available on Wednesday (in my office). Please select your slot here (first-come, first served): http://doodle.com/p7qeeq9kgxebpgrz<br />
: Details about what will be discussed in the 10 minute meeting will be described in class on Wednesday.<br />
: '''''Please note, as mention in the [[Optimization_project_-_2015|project outline]], the project meeting is graded''''' (and therefore not optional).<br />
* 16 Mar: the midterms were returned in class on Monday. The [[Written_midterm_-_2015 |solution is also posted]]. The grade is out of 94 marks. I forgot to mention in class that the following is now on Avenue:<br />
:* the grade breakdown for each question<br />
:* your individual percentage (add up the 5 marks and divide by 94 to get a percentage)<br />
:* the collaborative percentage<br />
:* the overall percentage = max(your grade, or 85% your grade + 15% collaborative grade). So the collaboration will never decrease your individual grade.<br />
:* Question 5 has been updated now with the non-zero grade<br />
<br />
* 15 Mar: Please also bring your printed copy of handout 09A to class; we will continue with those notes from last week.<br />
* 11 Mar: as mentioned in a prior class, we have a guest speaker today. Here are the notes for her lecture: [[Media:Guest-lecture-4G3-2015.pdf|guest lecture slides]]. Feel free to print a copy for yourself to take notes on.<br />
* 06 Mar: the next assignment is posted. As requested in the class evaluations, the assignments are shorter, focus more on hand-calculations, and formulating problems. It is due on 12 March.<br />
: Please note that question 1 was modified slightly on Sunday, 08 March.<br />
* 04 Mar: the date for the final exam is posted now, Thursday, 16 Apr at 19:00.<br />
* 04 Mar: course grades for the assignments have been available since 13 February. Apparently grades are not visible to some students. If that is your case, please email the Avenue Support at support.avenue@cll.mcmaster.ca with attention to Lavinia Oltean, and mention CHEM ENG 4G03 in the subject.<br />
* 03 Mar: an interesting article on how the human body has optimized a simple feature: [http://www.economist.com/news/science-and-technology/21644989-hairs-fringe-eyelids-create-aerodynamic-armour-eye-mote the length of the eyelash]. The part on fluid dynamics and optimal boundary layer thickness is interesting.<br />
* 27 Feb: the next assignment is now posted below.<br />
* 25 Feb: there will be a tutorial and assignment out this Friday and Monday. We go right back into our usual cycle, so we can stay on top of the materials. See you at tutorial.<br />
* 25 Feb: Thanks to everyone that came to the collaborative midterm - from what I could here, it was an incredible learning experience. Glad you enjoyed it.<br />
* 24 Feb: the collaborative test in class on Wednesday will review important concepts from the written midterm, and extend your knowledge. It won't be a regular repeat of the midterm - there are some important extensions. Don't miss this one. '''Please come early/on time''', since you only have the class time to write and finish it.<br />
* 23 Feb: the finalized [https://docs.google.com/document/d/1H7Znb_C5DIOOYtANvMKk_YE9L2b8F4nY2jDeeMGzTMQ cheat sheet] is now available on Google Drive, and will be provided to you in the test.<br />
* 23 Feb: a reminder regarding the midterm today: there is no formal lecture, but I will be in class to answer any questions; there are no tutorials from last Friday and today.<br />
* 20 Feb: the solutions to all assignments are posted now for you to review.<br />
* 13 Feb: the grades for assignments 1, 2 and 3 are uploaded into Avenue.<br />
* 13 Feb: there are no tutorials on Friday, 13 February and Monday, 23 February. Please use the time to start preparing for the [[Written_midterm_-_2015|midterm]].<br />
* 11 Feb: the class handout for Wednesday, 06B, had some errors when I presented. I've fixed that up in [https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs this revised handout], and made some small changes in red to better explain the search step \(\alpha\).<br />
* 11 Feb: solutions to assignments 1, 2 and 3 are posted, and have been graded.<br />
* 11 Feb: details about the [[Written_midterm_-_2015|midterm]] are posted. Please especially read the part about closed notes, and the [https://docs.google.com/document/d/1H7Znb_C5DIOOYtANvMKk_YE9L2b8F4nY2jDeeMGzTMQ cheat sheet].<br />
* 08 Feb: the due date for assignment 4 has been extended for you to be one week later. As a result, however, we will not accept any late assignments and we will post the solutions at the due time. This is because the solutions will be useful for studying for the midterm that comes just afterwards.<br />
* 22 Jan: we were speaking in class yesterday about outsourcing, and the costs associated with it. Here's an [http://www.theglobeandmail.com/report-on-business/small-business/sb-growth/going-global/the-benefits-and-drawbacks-of-outsourcing-for-small-business/article22565115/ article about outsourcing] and all the costs and decisions associated with it.<br />
* 19 Jan: all the handouts from class have been posted now.<br />
* 17 Jan: for those of you that would like another tutorial guide for GAMS, [http://www.ou.edu/class/che-design/che5480-13/GAMS%20TUTORIAL%20SLIDES.pdf please take a look here].<br />
* 16 Jan: the 2nd tutorial is posted. It also forms the first assignment. The course is structured so that you can maximize your time spent in the tutorial to confirm your learning, and also get the assignment questions answered. See you in BSB labs.<br />
* 12 Jan: we are moving fully ahead with the LP section of the course, with me mostly providing handouts and board notes, to slow the pace of the class. There are some great resources though for you posted under the [[Linear_programming_(2015) |linear optimization]] section, among them.<br />
* 09 Jan: the first tutorial is posted. See you in BSB lab 249 on Friday and Monday.<br />
* 05 Jan: the midterm for this course has been moved to Monday, 23 February, as it has the least conflict with your other evening courses.<br />
* 02 Jan: See the Twitter link above? Follow the [https://twitter.com/opt4eng @opt4eng] Twitter account for instant course notifications (saves you from visiting this website everyday).<br />
* 22 Dec: Please note the first day of class is Monday, 05 January 2015, in JHE 326H. See you there at 11:30. There are [[Course_overview_(2015) |some slides you can print]] and bring to class.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=303
Main Page
2015-04-24T11:29:51Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 24 April: exams and projects are being graded this week and next week. Expect grades in Avenue during the first week of May.<br />
<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Archived-Announcements-2015&diff=302
Archived-Announcements-2015
2015-04-17T12:52:38Z
<p>Kevin Dunn: </p>
<hr />
<div>Previous announcements for 4G3 (in reverse time order):<br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
* 15 Apr: there is a minor error in the exam on 16 April which I hope to draw your attention to:<br />
:: Question 1, part 8 starts: "''What is the new overall cost transportation ...''"; <br />
:: it should be: "''What is the new overall cost '''of''' transportation ...''"<br />
* 12 Apr: looking ahead at my schedule for this week, I'm not likely to get around to grading the project reports until at least 14 April. '''Feel free to submit your project by 14 April, 16:00''', at [http://yint.org/4G3-project http://yint.org/4G3-project].<br />
* 10 Apr: please submit your project reports at this link: [http://yint.org/4G3-project http://yint.org/4G3-project].<br />
* 03 Apr: some practice questions for the final exam are being added to the document below. Treat this as a final (ungraded) assignment, since it contains questions on the materials recently covered in class.<br />
* 02 Apr: [https://evals.mcmaster.ca/ course evaluations are ready to go]. Please submit one - these are crucial for keeping the course quality high, and determining how to make improvements to the course.<br />
* 02 Apr: you should be aware that the project due date has been extended to 13 April at 16:00. This should fit in with the lighter exam load that most of you have.<br />
* 30 Mar: solutions to assignment 6 are posted now.<br />
* 25 Mar: if anyone is hitting into the upper constraint of the free GAMS version, you can solve your larger problem, for free, on the [http://www.neos-server.org/neos/ NEOS server] (click on the link "Submit a job to NEOS").<br />
* 24 Mar: solutions to assignment 5 are posted, and the grades are uploaded into Avenue now.<br />
* 20 Mar: someone left a pair of sunglasses in the lab during their meeting on Friday. Please contact me to have it returned to you.<br />
* 18 Mar: there will be no tutorials this Friday and Monday. However, the meetings will take place in the tutorial room. You a '''''strongly''''' encouraged to be at tutorial though, and use that time to set up your problem, constraints, and search variables in GAMS.<br />
* 17 Mar: we are scheduling small group meetings with myself in the tutorial location on Friday and Monday and then some slots are available on Wednesday (in my office). Please select your slot here (first-come, first served): http://doodle.com/p7qeeq9kgxebpgrz<br />
: Details about what will be discussed in the 10 minute meeting will be described in class on Wednesday.<br />
: '''''Please note, as mention in the [[Optimization_project_-_2015|project outline]], the project meeting is graded''''' (and therefore not optional).<br />
* 16 Mar: the midterms were returned in class on Monday. The [[Written_midterm_-_2015 |solution is also posted]]. The grade is out of 94 marks. I forgot to mention in class that the following is now on Avenue:<br />
:* the grade breakdown for each question<br />
:* your individual percentage (add up the 5 marks and divide by 94 to get a percentage)<br />
:* the collaborative percentage<br />
:* the overall percentage = max(your grade, or 85% your grade + 15% collaborative grade). So the collaboration will never decrease your individual grade.<br />
:* Question 5 has been updated now with the non-zero grade<br />
<br />
* 15 Mar: Please also bring your printed copy of handout 09A to class; we will continue with those notes from last week.<br />
* 11 Mar: as mentioned in a prior class, we have a guest speaker today. Here are the notes for her lecture: [[Media:Guest-lecture-4G3-2015.pdf|guest lecture slides]]. Feel free to print a copy for yourself to take notes on.<br />
* 06 Mar: the next assignment is posted. As requested in the class evaluations, the assignments are shorter, focus more on hand-calculations, and formulating problems. It is due on 12 March.<br />
: Please note that question 1 was modified slightly on Sunday, 08 March.<br />
* 04 Mar: the date for the final exam is posted now, Thursday, 16 Apr at 19:00.<br />
* 04 Mar: course grades for the assignments have been available since 13 February. Apparently grades are not visible to some students. If that is your case, please email the Avenue Support at support.avenue@cll.mcmaster.ca with attention to Lavinia Oltean, and mention CHEM ENG 4G03 in the subject.<br />
* 03 Mar: an interesting article on how the human body has optimized a simple feature: [http://www.economist.com/news/science-and-technology/21644989-hairs-fringe-eyelids-create-aerodynamic-armour-eye-mote the length of the eyelash]. The part on fluid dynamics and optimal boundary layer thickness is interesting.<br />
* 27 Feb: the next assignment is now posted below.<br />
* 25 Feb: there will be a tutorial and assignment out this Friday and Monday. We go right back into our usual cycle, so we can stay on top of the materials. See you at tutorial.<br />
* 25 Feb: Thanks to everyone that came to the collaborative midterm - from what I could here, it was an incredible learning experience. Glad you enjoyed it.<br />
* 24 Feb: the collaborative test in class on Wednesday will review important concepts from the written midterm, and extend your knowledge. It won't be a regular repeat of the midterm - there are some important extensions. Don't miss this one. '''Please come early/on time''', since you only have the class time to write and finish it.<br />
* 23 Feb: the finalized [https://docs.google.com/document/d/1H7Znb_C5DIOOYtANvMKk_YE9L2b8F4nY2jDeeMGzTMQ cheat sheet] is now available on Google Drive, and will be provided to you in the test.<br />
* 23 Feb: a reminder regarding the midterm today: there is no formal lecture, but I will be in class to answer any questions; there are no tutorials from last Friday and today.<br />
* 20 Feb: the solutions to all assignments are posted now for you to review.<br />
* 13 Feb: the grades for assignments 1, 2 and 3 are uploaded into Avenue.<br />
* 13 Feb: there are no tutorials on Friday, 13 February and Monday, 23 February. Please use the time to start preparing for the [[Written_midterm_-_2015|midterm]].<br />
* 11 Feb: the class handout for Wednesday, 06B, had some errors when I presented. I've fixed that up in [https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs this revised handout], and made some small changes in red to better explain the search step \(\alpha\).<br />
* 11 Feb: solutions to assignments 1, 2 and 3 are posted, and have been graded.<br />
* 11 Feb: details about the [[Written_midterm_-_2015|midterm]] are posted. Please especially read the part about closed notes, and the [https://docs.google.com/document/d/1H7Znb_C5DIOOYtANvMKk_YE9L2b8F4nY2jDeeMGzTMQ cheat sheet].<br />
* 08 Feb: the due date for assignment 4 has been extended for you to be one week later. As a result, however, we will not accept any late assignments and we will post the solutions at the due time. This is because the solutions will be useful for studying for the midterm that comes just afterwards.<br />
* 22 Jan: we were speaking in class yesterday about outsourcing, and the costs associated with it. Here's an [http://www.theglobeandmail.com/report-on-business/small-business/sb-growth/going-global/the-benefits-and-drawbacks-of-outsourcing-for-small-business/article22565115/ article about outsourcing] and all the costs and decisions associated with it.<br />
* 19 Jan: all the handouts from class have been posted now.<br />
* 17 Jan: for those of you that would like another tutorial guide for GAMS, [http://www.ou.edu/class/che-design/che5480-13/GAMS%20TUTORIAL%20SLIDES.pdf please take a look here].<br />
* 16 Jan: the 2nd tutorial is posted. It also forms the first assignment. The course is structured so that you can maximize your time spent in the tutorial to confirm your learning, and also get the assignment questions answered. See you in BSB labs.<br />
* 12 Jan: we are moving fully ahead with the LP section of the course, with me mostly providing handouts and board notes, to slow the pace of the class. There are some great resources though for you posted under the [[Linear_programming_(2015) |linear optimization]] section, among them.<br />
* 09 Jan: the first tutorial is posted. See you in BSB lab 249 on Friday and Monday.<br />
* 05 Jan: the midterm for this course has been moved to Monday, 23 February, as it has the least conflict with your other evening courses.<br />
* 02 Jan: See the Twitter link above? Follow the [https://twitter.com/opt4eng @opt4eng] Twitter account for instant course notifications (saves you from visiting this website everyday).<br />
* 22 Dec: Please note the first day of class is Monday, 05 January 2015, in JHE 326H. See you there at 11:30. There are [[Course_overview_(2015) |some slides you can print]] and bring to class.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=301
Main Page
2015-04-17T12:52:28Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 16 Apr: as you wrap up your studying, if you notice an errors/updates/improvement in the course notes (Google Docs and the handouts), please report them here: http://learnche.mcmaster.ca/feedback-questions<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=300
Main Page
2015-04-17T01:47:57Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
<br />
* 16 Apr: as you wrap up your studying, if you notice an errors/updates/improvement in the course notes (Google Docs and the handouts), please report them here: http://learnche.mcmaster.ca/feedback-questions<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=299
Main Page
2015-04-17T01:47:17Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
<br />
* 16 Apr: as you wrap up your studying, if you notice an errors/updates/improvement in the course notes (Google Docs and the handouts), please report them here: http://learnche.mcmaster.ca/feedback-questions<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<br />
<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Archived-Announcements-2015&diff=298
Archived-Announcements-2015
2015-04-17T01:47:02Z
<p>Kevin Dunn: </p>
<hr />
<div>Previous announcements for 4G3 (in reverse time order):<br />
<br />
* 15 Apr: there is a minor error in the exam on 16 April which I hope to draw your attention to:<br />
:: Question 1, part 8 starts: "''What is the new overall cost transportation ...''"; <br />
:: it should be: "''What is the new overall cost '''of''' transportation ...''"<br />
* 12 Apr: looking ahead at my schedule for this week, I'm not likely to get around to grading the project reports until at least 14 April. '''Feel free to submit your project by 14 April, 16:00''', at [http://yint.org/4G3-project http://yint.org/4G3-project].<br />
* 10 Apr: please submit your project reports at this link: [http://yint.org/4G3-project http://yint.org/4G3-project].<br />
* 03 Apr: some practice questions for the final exam are being added to the document below. Treat this as a final (ungraded) assignment, since it contains questions on the materials recently covered in class.<br />
* 02 Apr: [https://evals.mcmaster.ca/ course evaluations are ready to go]. Please submit one - these are crucial for keeping the course quality high, and determining how to make improvements to the course.<br />
* 02 Apr: you should be aware that the project due date has been extended to 13 April at 16:00. This should fit in with the lighter exam load that most of you have.<br />
* 30 Mar: solutions to assignment 6 are posted now.<br />
* 25 Mar: if anyone is hitting into the upper constraint of the free GAMS version, you can solve your larger problem, for free, on the [http://www.neos-server.org/neos/ NEOS server] (click on the link "Submit a job to NEOS").<br />
* 24 Mar: solutions to assignment 5 are posted, and the grades are uploaded into Avenue now.<br />
* 20 Mar: someone left a pair of sunglasses in the lab during their meeting on Friday. Please contact me to have it returned to you.<br />
* 18 Mar: there will be no tutorials this Friday and Monday. However, the meetings will take place in the tutorial room. You a '''''strongly''''' encouraged to be at tutorial though, and use that time to set up your problem, constraints, and search variables in GAMS.<br />
* 17 Mar: we are scheduling small group meetings with myself in the tutorial location on Friday and Monday and then some slots are available on Wednesday (in my office). Please select your slot here (first-come, first served): http://doodle.com/p7qeeq9kgxebpgrz<br />
: Details about what will be discussed in the 10 minute meeting will be described in class on Wednesday.<br />
: '''''Please note, as mention in the [[Optimization_project_-_2015|project outline]], the project meeting is graded''''' (and therefore not optional).<br />
* 16 Mar: the midterms were returned in class on Monday. The [[Written_midterm_-_2015 |solution is also posted]]. The grade is out of 94 marks. I forgot to mention in class that the following is now on Avenue:<br />
:* the grade breakdown for each question<br />
:* your individual percentage (add up the 5 marks and divide by 94 to get a percentage)<br />
:* the collaborative percentage<br />
:* the overall percentage = max(your grade, or 85% your grade + 15% collaborative grade). So the collaboration will never decrease your individual grade.<br />
:* Question 5 has been updated now with the non-zero grade<br />
<br />
* 15 Mar: Please also bring your printed copy of handout 09A to class; we will continue with those notes from last week.<br />
* 11 Mar: as mentioned in a prior class, we have a guest speaker today. Here are the notes for her lecture: [[Media:Guest-lecture-4G3-2015.pdf|guest lecture slides]]. Feel free to print a copy for yourself to take notes on.<br />
* 06 Mar: the next assignment is posted. As requested in the class evaluations, the assignments are shorter, focus more on hand-calculations, and formulating problems. It is due on 12 March.<br />
: Please note that question 1 was modified slightly on Sunday, 08 March.<br />
* 04 Mar: the date for the final exam is posted now, Thursday, 16 Apr at 19:00.<br />
* 04 Mar: course grades for the assignments have been available since 13 February. Apparently grades are not visible to some students. If that is your case, please email the Avenue Support at support.avenue@cll.mcmaster.ca with attention to Lavinia Oltean, and mention CHEM ENG 4G03 in the subject.<br />
* 03 Mar: an interesting article on how the human body has optimized a simple feature: [http://www.economist.com/news/science-and-technology/21644989-hairs-fringe-eyelids-create-aerodynamic-armour-eye-mote the length of the eyelash]. The part on fluid dynamics and optimal boundary layer thickness is interesting.<br />
* 27 Feb: the next assignment is now posted below.<br />
* 25 Feb: there will be a tutorial and assignment out this Friday and Monday. We go right back into our usual cycle, so we can stay on top of the materials. See you at tutorial.<br />
* 25 Feb: Thanks to everyone that came to the collaborative midterm - from what I could here, it was an incredible learning experience. Glad you enjoyed it.<br />
* 24 Feb: the collaborative test in class on Wednesday will review important concepts from the written midterm, and extend your knowledge. It won't be a regular repeat of the midterm - there are some important extensions. Don't miss this one. '''Please come early/on time''', since you only have the class time to write and finish it.<br />
* 23 Feb: the finalized [https://docs.google.com/document/d/1H7Znb_C5DIOOYtANvMKk_YE9L2b8F4nY2jDeeMGzTMQ cheat sheet] is now available on Google Drive, and will be provided to you in the test.<br />
* 23 Feb: a reminder regarding the midterm today: there is no formal lecture, but I will be in class to answer any questions; there are no tutorials from last Friday and today.<br />
* 20 Feb: the solutions to all assignments are posted now for you to review.<br />
* 13 Feb: the grades for assignments 1, 2 and 3 are uploaded into Avenue.<br />
* 13 Feb: there are no tutorials on Friday, 13 February and Monday, 23 February. Please use the time to start preparing for the [[Written_midterm_-_2015|midterm]].<br />
* 11 Feb: the class handout for Wednesday, 06B, had some errors when I presented. I've fixed that up in [https://docs.google.com/document/d/1h9qLQbzeeqtQjf3l9Rmwx-5UKZF-ac2ZqMioupda8cs this revised handout], and made some small changes in red to better explain the search step \(\alpha\).<br />
* 11 Feb: solutions to assignments 1, 2 and 3 are posted, and have been graded.<br />
* 11 Feb: details about the [[Written_midterm_-_2015|midterm]] are posted. Please especially read the part about closed notes, and the [https://docs.google.com/document/d/1H7Znb_C5DIOOYtANvMKk_YE9L2b8F4nY2jDeeMGzTMQ cheat sheet].<br />
* 08 Feb: the due date for assignment 4 has been extended for you to be one week later. As a result, however, we will not accept any late assignments and we will post the solutions at the due time. This is because the solutions will be useful for studying for the midterm that comes just afterwards.<br />
* 22 Jan: we were speaking in class yesterday about outsourcing, and the costs associated with it. Here's an [http://www.theglobeandmail.com/report-on-business/small-business/sb-growth/going-global/the-benefits-and-drawbacks-of-outsourcing-for-small-business/article22565115/ article about outsourcing] and all the costs and decisions associated with it.<br />
* 19 Jan: all the handouts from class have been posted now.<br />
* 17 Jan: for those of you that would like another tutorial guide for GAMS, [http://www.ou.edu/class/che-design/che5480-13/GAMS%20TUTORIAL%20SLIDES.pdf please take a look here].<br />
* 16 Jan: the 2nd tutorial is posted. It also forms the first assignment. The course is structured so that you can maximize your time spent in the tutorial to confirm your learning, and also get the assignment questions answered. See you in BSB labs.<br />
* 12 Jan: we are moving fully ahead with the LP section of the course, with me mostly providing handouts and board notes, to slow the pace of the class. There are some great resources though for you posted under the [[Linear_programming_(2015) |linear optimization]] section, among them.<br />
* 09 Jan: the first tutorial is posted. See you in BSB lab 249 on Friday and Monday.<br />
* 05 Jan: the midterm for this course has been moved to Monday, 23 February, as it has the least conflict with your other evening courses.<br />
* 02 Jan: See the Twitter link above? Follow the [https://twitter.com/opt4eng @opt4eng] Twitter account for instant course notifications (saves you from visiting this website everyday).<br />
* 22 Dec: Please note the first day of class is Monday, 05 January 2015, in JHE 326H. See you there at 11:30. There are [[Course_overview_(2015) |some slides you can print]] and bring to class.</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=297
Main Page
2015-04-17T01:46:44Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
<br />
* 16 Apr: as you wrap up your studying, if you notice an errors/updates/improvement in the course notes (Google Docs and the handouts), please report them here: http://learnche.mcmaster.ca/feedback-questions<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<br />
<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=296
Main Page
2015-04-16T16:18:45Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 03 Apr: some practice questions for the final exam are being added to the document below. Treat this as a final (ungraded) assignment, since it contains questions on the materials recently covered in class.<br />
<br />
* 15 Apr: there is a minor error in the exam on 16 April which I hope to draw your attention to:<br />
:: Question 1, part 8 starts: "''What is the new overall cost transportation ...''"; <br />
:: it should be: "''What is the new overall cost '''of''' transportation ...''"<br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
<br />
* 16 Apr: as you wrap up your studying, if you notice an errors/updates/improvement in the course notes (Google Docs and the handouts), please report them here: http://learnche.mcmaster.ca/feedback-questions<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<br />
<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Final_exam_-_2015&diff=295
Final exam - 2015
2015-04-15T19:34:22Z
<p>Kevin Dunn: </p>
<hr />
<div>* The final exam is on 16 April 2015, at 19:00. The location is IWC 2. Please confirm your section.<br />
* Practice questions for the exam have been posted for you: http://yint.org/4G3-practice <br />
* The final exam will cover everything from the course. We discussed all the topics in the course [https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM during the last class]. Please see the last page of that handout.<br />
* The exam is comprehensive. You will not have time to learn/look up information from your notes that is unfamiliar, ie. deferring your studying to the exam time is not an option. I recommend you treat this exam like a closed-book exam; have a few page of summary notes to refer to. If you are searching through the notes for information in the middle of the exam you are using the wrong approach.<br />
<br />
The top of the exam paper appears as follows:<br />
<br />
[[Image:2015-4G3-Exam-header.png|700px]]</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=294
Main Page
2015-04-15T18:53:08Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 03 Apr: some practice questions for the final exam are being added to the document below. Treat this as a final (ungraded) assignment, since it contains questions on the materials recently covered in class.<br />
<br />
* 15 Apr: there is a minor error in the exam on 16 April which I hope to draw your attention to:<br />
:: Question 1, part 8 starts: "''What is the new overall cost transportation ...''"; <br />
:: it should be: "''What is the new overall cost '''of''' transportation ...''"<br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<br />
<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Final_exam_-_2015&diff=293
Final exam - 2015
2015-04-15T18:37:34Z
<p>Kevin Dunn: </p>
<hr />
<div>* The final exam is on 16 April 2015, at 19:00. The location is IWC 2. Please confirm your section.<br />
* Practice questions for the exam have been posted for you: http://yint.org/4G3-practice <br />
* The final exam will cover everything from the course. We discussed all the topics in the course [https://docs.google.com/document/d/1VZRQ_aaQjMiK_brME9y1dhHYtkhTI_2NLt4PQ51OyhM during the last class]. Please see the last page of that handout.<br />
<br />
<br />
The top of the exam paper appears as follows:<br />
<br />
[[Image:2015-4G3-Exam-header.png|700px]]</div>
Kevin Dunn
https://learnche.org/wiki_4G3/index.php?title=Main_Page&diff=292
Main Page
2015-04-15T18:37:13Z
<p>Kevin Dunn: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
<div id="mainpage_pagetitle">'''Optimization for Chemical Engineers''': CHE 4G3</div><br />
<br />
<!-- TOP ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Administrative'''<br />
! align="center" | '''Class materials'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_action_configure.png|80x80px]]<br />
| width="85%" |<br />
* [[Course_outline_(2015) | Course outline]]<br />
* [[Suggested_readings|Supplementary readings]]<br />
* [[Software_tutorial| Self-paced software tutorials]]<br />
* [[Optimization_for_Chemical_Engineering:_4G3:About | Copyright and other legal stuff]]<br />
* [http://learnche.mcmaster.ca/feedback-questions Comments, questions, feedback?] Don't wait for official course evaluations.<br />
<hr><br />
<br />
'''Announcements''' ([[Archived-Announcements-2015|previous ones]]) <!-- or <html><a href="https://twitter.com/opt4eng" class="twitter-follow-button" data-show-count="true" data-lang="en">Follow @opt4eng</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></html> --> <br />
<br />
* 03 Apr: some practice questions for the final exam are being added to the document below. Treat this as a final (ungraded) assignment, since it contains questions on the materials recently covered in class.<br />
<br />
* 15 Apr: I have posted some additional information about [[Final_exam_-_2015 |the final exam here]].<br />
|} <br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_korganizer.png|80x80px]]<br />
| width="85%" |<br />
'''Notes for 2015 class'''<br />
<br />
* [[Course_overview_(2015) |Course outline and course overview]]<br />
* [[Linear_programming_(2015) |Linear optimization problems]]<br />
* [[Non-linear_programming_(2015) |Non-linear optimization problems]]<br />
* [[Mixed-Integer linear programming (2015) |Mixed-integer linear problems]]<br />
<br />
<br />
<hr><br />
* [[Suggested readings]] (''use this to read ahead if you are in the 2015 class'')<br />
|}<br />
</div><br />
|- <!-- leave this here: end of row --><br />
|}<br />
<br />
<br />
<!-- BOTTOM ROW --><br />
<br />
{| style="border:0; margin: 0;" width="100%" cellspacing="10"<br />
|-<br />
! align="center" | '''Assignments, projects, exams'''<br />
! align="center" | '''Course calendar'''<br />
|-<br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="3" width="100%"<br />
| width="15%" valign="top" | [[File:Crystal_Clear_app_kedit.png|80x80px]]<br />
| width="85%" |<br />
'''Assignments and tutorials''': <br />
* [https://docs.google.com/document/d/1LtiQdDOZQuXN6HQ2Q4Rf07F2ISuA74GZJwvME1z5Vgw/ Tutorial 1] <br />
* [https://docs.google.com/document/d/16M5na5IVjo4Dcj3xNM9XZBxmr8dSDGDKTFz06Niz87E Assignment 1/Tutorial 2] and the [https://docs.google.com/document/d/1xJRnXdxvgkJHjO03kLz96t426QG7zyWj5I-yspCM148 solution]<br />
* [https://docs.google.com/document/d/1ui9YPpeAcMAwvdaWMdZCqGo5061QO3-Bip50DBCzt_M Assignment 2/Tutorial 3] and the [https://docs.google.com/document/d/1H_mcrRu2Y9J3fYrmmB5_kLCzWkHqLNnj4UzUoiUPWq4/ solution]<br />
* [https://docs.google.com/document/d/1slHrYGWgOXxn-7PCuahj80r6y-8utfCHrezJ-ptRnyg Assignment 3/Tutorial 4] and the [https://docs.google.com/document/d/1e5CM2exwgZogUt5DZYElJi5K-W1NkEnTFJL1LvXhbhY solution]<br />
* [https://docs.google.com/document/d/1MfGaArbzwFgMOQUvlD8U1HvjCFIj9kjTb56D00Qc7LI Assignment 4/Tutorial 5] and the [https://docs.google.com/document/d/134JGsFNjwF8a4dITKqzC4fLZVMQHXk3K4AFOqWigedw solution]<br />
* [https://docs.google.com/document/d/17GMTeWOhNN0OoJqA12TzKUqcaML8CCdnj3HO93hoDco Assignment 5/Tutorial 6] and the [https://docs.google.com/document/d/11eebvLZIW2OlarASFvWsctNi9wKbN1vi4wFmFJl7J0A solution]<br />
* [https://docs.google.com/document/d/1uc4K60FSRJ0lepuSfyglsRsiEKK9kVxUFRl0aCqoDIA/edit?usp=sharing Assignment 6/Tutorial 7] and the [https://docs.google.com/document/d/1FyV_uqqKRpOrrAPfNqjElPmbmUtCTx2Hp_Gd5xOJ1uw solution]<br />
* [https://docs.google.com/document/d/1dY8M8nvUpJ8XB74AUkaf164Ppcgj5pj2v2P8qfjUmrw/edit?usp=sharing Assignment 7/Tutorial 8] and the [https://docs.google.com/document/d/18yH_HcIExRC-TUQSPxKELrIg4wKFgln463G006oKrSw solution]<br />
<br />
:How to [[Electronic_submissions_-_2015|submit an assignment electronically]]<br />
<hr><br />
'''Tests, exams and project'''<br />
:* [[Written_midterm_-_2015|Midterm]]<br />
:* [[Optimization project - 2015| Optimization project]]<br />
:* [[Final exam - 2015|Final exam]]<br />
:* [https://docs.google.com/document/d/1q6zb3zcwBkqDpfB4RQlTNcj4lzPmh-E-JHbyBPfHOdU Practice questions for tests and exams]<br />
<br />
|} <br />
<br />
</div><br />
| width="50%" valign="top" class="mainpage_hubbox" | <br />
<!--row 1, cell 1 content here --><br />
<div class="mainpage_boxcontents"><br />
{| style="border: 0; margin: 0;" cellpadding="0" width="100%"<br />
| <br />
{| width="100%"<br />
|-<br />
| align="center" | <!-- See all your course calendars here: http://learnche.mcmaster.ca/calendar --><br />
|}<br />
{{#widget:Google Calendar<br />
|id= k9ksuf1a2gf9er8t3ps8nim7rs@group.calendar.google.com<br />
|color=528800<br />
|id=mac.chemeng@gmail.com<br />
|color=B1440E<br />
|title=4G3 class calendar<br />
|weekstart=2<br />
}}<br />
</div><br />
<br />
|- <!-- leave this here: end of row --><br />
|}</div>
Kevin Dunn