This is the way to teach. The jupyterlab is prepared so there is no time wasted writing on a chalkboard. Also, there are files to play with. This is much better than the MIT lectures where the professor talks with his back to the students while copying his notes to a blackboard where the students must take notes but there is no working solution.
I don't understand how the solution at min 23:16 is the correct one for the figure shown. The contour line with value 3 intersects the region at a point beyond x=1.75. Can you cross-check?
For minimization, there are two local solutions. When using the initial guess "x.value=2.25; y.value = 2", the solution is "x: 2.5 y: 2.0 obj: 0.25" (Global optimum). When using the initial guess "x.value=1.25; y.value = 3", the solution is "x: 1.0 y: 3.0 obj: 1.0". When switching to maximization with "m.Maximize(x*y**2-x**2-y**2)", there is one local / global solution at "x: 1.6666666667 y: 3.0 obj: 3.2222222222". Even though the line extends, it is not in the feasible region because y
Thanks for catching that. I was reporting -obj in the script. This is only needed when reporting Maximization problems because the solver automatically converts Maximization problems to Minimization problems. You are correct that -1 is the global minimum.
Sure, there are a few examples in the online courses for Process Dynamics and Control (apmonitor.com/pds), Design Optimization (apmonitor.com/me575) and Engineering Programming (apmonitor.com/che263). Here is one in particular: apmonitor.com/che263/index.php/Main/PythonOptimization
Sure, here is a contour plot of a related problem that shows the optimal steps towards the solution. You'd just need to modify this visualization to include integer points. apmonitor.com/me575/index.php/Main/BoxFolding
Hi John, I want to maximize profit/revenue with binary variables, but result always coming as nan, can you tell why, I want to achieve max gross profit margin, trying to solve with gekko mixed integer non linear programming as you showed say whether products will be in mix or not by that binary variables will be 1 or 0, here is the example for 3 products, variables are x1, x2 and x3 total profit = 150*x1 + 120*x2 + 100*x3 total revenue = 200*x1 + 150*x2 + 250*x3 m = GEKKO() x1 = m.Var(integer=True, lb=0, ub=1) x2 = m.Var(integer=True, lb=0, ub=1) x3 = m.Var(integer=True, lb=0, ub=1) m.Maximize((150*x1 + 120*x2 + 100*x3)/(200*x1 + 150*x2 + 250*x3)) m.Equation(x1 + x2 + x3 = 2) m.options.SOLVER = 1 m.solve() it is giving me solution as all x is 0, objective function as nan I have tried only with the numerator i.e profit maximization, then it is working, but with the denominator it is not working thanks in advance
Great question - I think I have a solution. Could you ask the question on StackOverflow so that it is easier to find for others who have a similar question? stackoverflow.com/questions/tagged/gekko
This is the way to teach. The jupyterlab is prepared so there is no time wasted writing on a chalkboard. Also, there are files to play with. This is much better than the MIT lectures where the professor talks with his back to the students while copying his notes to a blackboard where the students must take notes but there is no working solution.
25:43 MILP
I don't understand how the solution at min 23:16 is the correct one for the figure shown. The contour line with value 3 intersects the region at a point beyond x=1.75. Can you cross-check?
For minimization, there are two local solutions. When using the initial guess "x.value=2.25; y.value = 2", the solution is "x: 2.5 y: 2.0 obj: 0.25" (Global optimum). When using the initial guess "x.value=1.25; y.value = 3", the solution is "x: 1.0 y: 3.0 obj: 1.0". When switching to maximization with "m.Maximize(x*y**2-x**2-y**2)", there is one local / global solution at "x: 1.6666666667 y: 3.0 obj: 3.2222222222". Even though the line extends, it is not in the feasible region because y
@@apm sorry but when we put x:1 and y:3 the obj will be -1 and its smaller than 0.25, so this wont make (x,y)=(1,3) the global solution?
Thanks for catching that. I was reporting -obj in the script. This is only needed when reporting Maximization problems because the solver automatically converts Maximization problems to Minimization problems. You are correct that -1 is the global minimum.
hello, your examples really speak to me, do you have other sources where I can find examples in the different models of scipy? THANKS
Sure, there are a few examples in the online courses for Process Dynamics and Control (apmonitor.com/pds), Design Optimization (apmonitor.com/me575) and Engineering Programming (apmonitor.com/che263). Here is one in particular: apmonitor.com/che263/index.php/Main/PythonOptimization
It's very interesting, thank you.
Question, any idea how to visualize the last MINLP case ?
Sure, here is a contour plot of a related problem that shows the optimal steps towards the solution. You'd just need to modify this visualization to include integer points. apmonitor.com/me575/index.php/Main/BoxFolding
Thank you ❤
great tutorial
Thanks
Hi John, I want to maximize profit/revenue with binary variables, but result always coming as nan, can you tell why, I want to achieve max gross profit margin, trying to solve with gekko mixed integer non linear programming as you showed
say whether products will be in mix or not by that binary variables will be 1 or 0, here is the example for 3 products, variables are x1, x2 and x3
total profit = 150*x1 + 120*x2 + 100*x3
total revenue = 200*x1 + 150*x2 + 250*x3
m = GEKKO()
x1 = m.Var(integer=True, lb=0, ub=1)
x2 = m.Var(integer=True, lb=0, ub=1)
x3 = m.Var(integer=True, lb=0, ub=1)
m.Maximize((150*x1 + 120*x2 + 100*x3)/(200*x1 + 150*x2 + 250*x3))
m.Equation(x1 + x2 + x3 = 2)
m.options.SOLVER = 1
m.solve()
it is giving me solution as all x is 0, objective function as nan
I have tried only with the numerator i.e profit maximization, then it is working, but with the denominator it is not working
thanks in advance
Great question - I think I have a solution. Could you ask the question on StackOverflow so that it is easier to find for others who have a similar question? stackoverflow.com/questions/tagged/gekko