Moopt (Moola Optimized) is your gateway to earn Bitcoin as a Lightning Service Provider (LSP) through AI-driven incentivized learning.
Don't wanna be here? Send us removal request.
Text
Integer Programming (IP) Intro & 3 Types
Integer Linear Programming (ILP) is required to solve optimization problems with integer values as the solution.
Integer Linear Programming is a subset of Linear Programming (LP). It has all the characteristics of an LP, an attempt to find a maximum or minimum solution to a function given certain constraints, except for some or all of the variables to the LP solution must be restricted to integers.
There are many events we need to solve the real world optimization problems with Integer Linear Programming, instead of Linear Programming. It doesn't make sense to use a continuous variable to represent the number of airplanes to produce because there is no point in manufacturing a partial airplane. The production of large indivisible items is one of the use case of ILP.
We showed how to load boxes to a set of lorries in our previous article Graphical Method for Integer Linear Programming (ILP), in which we cannot rent a partial lorry (7.5 lorries). It has to be a whole lorry (7 or 8 lorries), leaving the empty space unoccupied.
The variables take only integer values, instead of a solid area of feasible region. The optimal solution is always on the edge of the feasible region, however, rounding off the floating point solution can lead to infeasible solution.
So, the integer solution may not lie on an extreme point of continuous feasible region, and LP cannot be used. From the graphic, the collection of dots/points indicate the new feasible solutions.
Types of Integer Programming
According to the nature of the variables, we can distinguish three types of IP models, which are Pure IP, Mixed IP and Binary IP.
Pure IP requires that all decision variables have integer values in the final solution.
Mixed IP requires some, not all, of the decision variables to have integer solutions.
Binary IP, also 0-1 IP, involves problems in which the variables are restricted to be either 0 or 1, such as state or mode decisions, yes/no decisions or logical decisions.
Example:
Unit commitment problem with the state or mode decisions. A particular stage 0-1 binary variables (boolean), i.e. on or off.
Planning of investments as a yes/no decisions. It takes a value 1 to invest in a warehouse (yes) and 0 to ignore it (no).
A given tax break is only applicable (true/false) if a certain investment is made. This is a logical decisions, the logic constraints between different decision variables, i.e. AND, OR, NOT, IMPLY, ... etc.
The solution complexity increases with the number of possible combinations of integer variables (combinatorial problem). Even the fastest computer can take excessively long time to solve a big integer programming problem.
Integer programming is NP-complete. In particular, the special case of 0-1 integer linear programming, in which unknowns are binary, and only the restrictions must be satisfied, is one of Karp's 21 NP-complete problems.
There are some methods for solving ILP problems, such as:
Rounding off a non-integer solution
Cutting Plane method
Branch and Bound method
The addictive algorithm for 0-1 IP
which we will explain in details in the coming lessons.
#integer programming#Integer Linear Programming#ip#ilp#pure ip#mixed ip#binary ip#note#school#Mathematical programming#optimization
0 notes
Text
Graphical Method for Integer Linear Programming (ILP)
Revisiting the lorry loading puzzle as an integrer linear programming problem with the graphical method.
Consider the following problem from Linear Programming with Minizinc Introduction:
300 boxes need to be loaded and shipped to a supermarket from a warehouse. We may rent lorries that can accommodate 30 boxes and 40 boxes, costing us RM 400 and RM 500 respectively. How many lorries of each type to load all boxes while minimizing the cost?
Our goal is to minimize the cost of loading these boxes by selecting the right amount of the different lorries.
Previously from Linear Programming with Graphical Method - Part 1, we concluded that with 7.5 lorries of 40 boxes (total 300 boxes), we can load all the boxes and pay only RM 3750 (7.5 x RM 500).
However, in reality, we cannot rent a 0.5 lorry.
It has to be a whole lorry, leaving the empty space unoccupied.
So, based on our graph, we will have to go for the 10 lorries of 30 boxes with the cost of RM 4000.
If we really think so, we are leaving money on the table!
Any point under the shaded area is the possible solution.
Luckily, not many are integer coordinates, i.e. a pair of integer numbers.
In order to find the coordinates, simply insert an integer value for either nLorry30 or nLorry40.
For example, we can find the value of nLorry30 when nLorry40 = 0 by inserting zero in place of nLorry40 and solving the equation as follows:
Capacity: 30*nLorry30 + 40*(0) = 300 30*nLorry30 + 0 = 300 30*nLorry30 = 300 nLorry30 = 300/30 = 10
So the coordinates of the second point are nTruck40 = 0 and nTruck30 = 10 which can be written as (10, 0).
nTruck30 nTruck40 -0.67 8 0 7.5 0.67 7 1 6.75 2 6 3 5.25 3.33 5 4 4.5 4.67 4 5 3.75 6 3 7 2.25 7.33 2 8 1.5 8.67 1 10 0
Only three integer coordinates, i.e. (10,0), (2,6) and (6,3)
We can now calculate the cost for these three points, using the straight parallel line, by substituting in values for the objective.
Cost = 400 * nLorry30 + 500 * nLorry40
For point 0 (0, 0):
Cost = 400(0) + 500(0) = RM 0
For point (2, 6):
Cost = 400(2) + 500(6) = RM 3800
For point (6, 3):
Cost = 400(6) + 500(3) = RM 3900
We actually need 6 lorries of 40 boxes (240 boxes @ RM 3000) and 2 lorries with 30 seats (60 boxes @ RM 800).
So that we can load all the boxes and pay only RM 3800.
It is slightly higher cost, extra RM 50 from previous solution, but now we satisfy the real world constraint that we cannot rent a partial lorry.
It is actually a more specific case of linear programming problem, called Integer Linear Programming (ILP).
#ILP#Integer Linear Programming#integer programming#graphical method#optimization#Mathematical programming#school
0 notes
Text
Boring Notes of Linear Programming
Linear Programming is a mathematical technique to find the optimal value for a linear system of objective function and constraints.
Modeling is an art, not a precise science. All mathematical models necessarily contain some degree of simplification of the real world that we are attempting to describe.
Different modelers will make different assumptions, and come up with different models of more or less precision, and certainly of different sizes, having different numbers of decision variables.
Linear Programming (LP)
Linear programming (LP) is the best known mathematical optimization technique to allocate scarce resources to competing activities in an optimal manner when the problem can be expressed with continuous decision variables, linear in both objective function and inequality constraints.
LP is the first category of optimization problems that were considered by early scientists and researchers in the OR field.
It turns out that many models can be cast in the form of LP models, without too many wild assumptions.
To solve an optimization problem, a model file contains at least the elements, i.e Objective Function, Constraints and Bounds.
1) Objective Functions
Objective function is a mathematical representation of the business objectives or goals to be achieved. It always starts with maximize or minimize of the outputs, for minimizing costs or maximizing revenue.
$\min c_1 x_1 + c_2 x_2 +\ ...\ +\ c_n x_n$
min means minimize. It can be maximize based on modeler's logic.
$c_1, c_2, ..., c_n$ are the objective function coefficients.
$x_1, x_2, ..., x_n$ are the variables or unknowns.
2) Constraints
Constraints are the elements that limit or restrict the decision variables in some way.
$\begin{aligned} a_{11} x_1 + a_{12} x_2 + ... + a_{1n} x_n \leq b_1 \\\ a_{21} x_1 + a_{22} x_2 + ... + a_{2n} x_n \leq b_2 \\\ ... \\\ a_{m1} x_1 + a_{m2} x_2 + ... + a_{mn} x_n \leq b_m \\\ x1, x2, ..., x_n \geq 0 \end{aligned}$
$a_{11}, a_{12}, ..., a_{1n}, a_{m1}, a_{m2}, ..., a_{mn}$ are the constraint coefficients.
$\leq, \geq, \lt, \gt$ are the relations between both sides in inequalities form.
$b_1, b_2, ..., b_m$ are the righthand side values.
3) Bounds
Bounds are the special contraints to define lower and upper boundaries.
$l_1 \leq x_1 \leq u1,\ ...,\ l_n \leq x_n \leq u_n$
$u_1, u_2, ..., u_n$ are the upper bounds.
$l_1, l_2, ..., l_n$ are the lower bounds.
This is the Simplest Structure of a Model with the conventional form or typical symbolic representation of a LP.
Minimize (or Maximize) c1 x1 + c2 x2 + ... + cn xn Subject To a11 x1 + a12 x2 + ... + a1n xn = 0 l1 = 0
model starts with the objective, i.e. to minimize a linear function.
c is the vector of objective coefficients.
s.t. means subject to constraints in the form of linear expressions.
b is the vector of right-hand side constants of constraints.
A is the matrix of constraint coefficient.
x is the decision variable.
$x \geq 0$ is the variable domain.
This example shows how to a general linear programming problem, and illustrates how scripting can be combined with the model to display results and obtain details on the solution. The problem we want to solve can be written in matrix form as
$\begin{aligned} \max c^T x \\\ s.t.\ A_x \leq b \\\ x \geq 0 \\\ \end{aligned}$
Simplest form of a LP
min c^T x s. t. Ax = b x >= 0
$c^T$ is the c transpose x.
if y represents the dual variables for a given basic solution, the reduced costs are defined as $c - y^T A$.
the basic solution is optimal if $c - y^T A \geq 0$.
if all reduced costs for this LP are non-negative, it follows that the objective value can only increase with a change in variable value and therefore the solution when minimizing is optimal.
for large LPs, the reduced costs can be used to determine whether multiple optimal solutions exist.
Multiple solutions exist when at least one non-basic variable with a zero reduced cost exists in an optimal solution, that is, the variables values that can change without affecting the objective values.
It is possible that a LP has multiple optimal solutions. This can happen when the slope of the objective function is the same as the slope of the constraints.
We have stressed the linearity condition, where the objective function and all of the constraints must be linear in the decision variables. But there are two further properties that we must have, which are Divisibility and Determinism.
Divisibility means that in an acceptable solution any values of the decision variables are allowed within the restrictions imposed by the linear constraints. In particular, we are not constrained to accept only whole number (integer) values for some or all of the decision variables.
Deterministic requires all the coefficients in the constraints and the objective function are known exactly. Determinism is sometimes a very strong assumption, particularly if we are building planning models which extend some way into the future.
Problems where we must consider the Variability in objective function coefficients, right hand sides or coefficients in the constraints are Stochastic Programming problems. In fact, it can be argued that all planning models have stochastic elements and we will later demonstrate some methods for dealing with uncertainty in an LP framework.
Nowadays Linear Programming is still frequently taught from a very academic perspective. With the exception of a few students in applied mathematics who have learned to deal with applications, the others do not retain much.
In the coming lessons, we will show you the possible applications, readily available software tools and most importantly, the best practice on how to model.
1 note
·
View note
Text
Linear Programming with Graphical Method
Before the computers and the optimization software are available to public, students are restricted to solving linear programming problems in two variables graphically.
Graphical method of linear programming is used to solve problems by finding the highest or lowest point of intersection between the objective function line and the feasible region on a graph.
Consider the following problem from Linear Programming with Minizinc Introduction:
300 boxes need to be loaded and shipped to a supermarket from a warehouse. We may rent lorries that can accommodate 30 boxes and 40 boxes, costing us RM 400 and RM 500 respectively. How many lorries of each type to load all boxes while minimizing the cost?
Our goal (also known as objective function), is to minimize the cost of loading these boxes by selecting the right amount of the different lorries.
We found that with 6 lorries of 40 boxes (240 boxes @ RM 3000) and 2 lorries with 30 boxes (60 boxes @ RM 800), we can load all the boxes and pay only RM 3800.
Here is the summary of the information we have:
We can use 2 kinds of lorries, which can accommodate 30 boxes and 40 boxes. We label their amount as nLorry30 and nLorry40 respectively.
lorry30 and lorry40 are charged for RM 400 and RM 500 each respectively.
Our objective is to minimize the cost, by allocating just enough lorries of different kinds.
The total capacity from the lorries must be equal to the number of boxes, which is 300.
The number of lorries of each type must be zero or more than zero. That's because we cannot have negative lorry.
We can turn the information into mathematical representations.
Minimize Cost = 400 x nLorry30 + 500 x nLorry40 - (1), (2) and (3)
Capacity: 30 x nLorry30 + 40 x nLorry40 = 300 - (4)
nLorry30, nLorry40 >= 0 - (5)
Which is:
$\begin{aligned} \min 400 * nLorry30 + 500 * nLorry40 \quad (0) \\\ 30 * nLorry30 + 40 * nLorry40 \geq 300 \quad (1) \\\ nLorry30, nLorry40 \geq 0 \quad (2) \end{aligned}$
For the purpose of plotting, we need the coordinates of any 2 points from the above equation.
In order to find the coordinates, simply insert a random value for either nLorry30 or nLorry40.
Solving the equation after inserting the random values could then be used to find the value of the other coordinate.
To solve this graphically we nullify each variable. This means that we assume that all boxes are loaded to each type of lorry separately.
For example, we can find the value of nLorry30 when nLorry40 = 0 by inserting zero in place of nLorry40 and solving the equation as follows:
Capacity: 30*nLorry30 + 40*(0) = 300 30*nLorry30 + 0 = 300 30*nLorry30 = 300 nLorry30 = 300/30 = 10
So the coordinates of the second point are nLorry40 = 0 and nLorry30 = 10 which can be written as (10, 0).
Similarly, we can find the value of nLorry40 when nLorry30 = 0 by inserting zero in place of nLorry30:
Capacity: 30*(0) + 40*nLorry40 = 300 0 + 40*nLorry40 = 300 40*nLorry40 = 300 nLorry40 = 300/40 = 7.5
So the coordinates of the first point are nLorry30 = 0 and nLorry40 = 7.5 which can be written as (0, 7.5).
Once we have determined the coordinates of any 2 points from the equation, we simply mark them on the graph and draw a straight line across them, which is a linear function graph.
It is a 2 dimensional graph using x and y axes represent 2 variables.
The sign of the inequalities determine which side of the lines define the constraints.
Feasible Region
Feasible Region is the set of all points that satisfy all the constraints. One of them will be our optimal solution point.
We can shade the area on graph, according to our constraints, which lies on or below the linear equation line and above zero for x/y axes.
A feasible region is the region where the shaded area intersect satisfies all three constraints.
In this region, the solutions satisfy the constraints and all are feasible solutions.
To find the optimum point, we need to slide a ruler across the graph.
For maximization problem, we will use isoprofit line, the parallel lines with all the points along such a line represent the same profit, move up to find optimal solution. While for minimization problem, we will move down the isocost line.
The last isocost line that touches the feasible region (extreme point, vertex or edge) is the smallest value possible for the objective function.
To minimize the cost, we must slide the ruler up to the point within the area that is nearest to the origin.
Optimal Solution
The optimal solution to the LP is the point for the decision variables within feasible region AND minimize our cost (defined by objective function).
A corner point is a point that falls along the corner of a feasible region.
We have 3 corner points, which are (0,0), (10, 0) and (0. 7.5).
These 3 corner points are the potential point that is minimizing our costs.
We can now calculate the cost for these three points, using the straight parallel line, by substituting in values for the objective.
Cost = 400 * nLorry30 + 500 * nLorry40
For point 0 (0, 0):
Cost = 400(0) + 500(0) = RM 0
So, our cost is RM 0?
Yes, our cost is zero because we do not load any boxes to any lorries.
This is not a solution.
For point B (10, 0):
Cost = 400(10) + 500(0) = RM 4000
Not bad!
How's about point A (0, 7.5)?
Cost = 400(0) + 500(7.5) = RM 3750
Better! Lower cost!
So, we just need 7.5 lorries that can accommodate 40 boxes each.
This is a very simple linear programming problem with only 2 variables, which are 2 types of lorries.
0 notes
Text
Learn Constraints Optimization with Minizinc Online: Moopt School
Moopt School equips operational researchers with the skills to analyze, model and solve real-world optimization problems through simple terms, plenty of real-world examples and helpful illustrations.
Our analysts are working with commercial-quality products, rather than educational-level optimisation software. We believe that if we could teach them on the same technologies that they will be using in workspace, we would be doing a better job of preparing the next generation for a successful Optimization or Operations Research career.
Introduction
Traditionally businesses will focus on efficiency to differentiate themselves from competitors. This includes waste reduction, faster throughput time and better customer service. While efficiency is still important in today’s environment, it is no longer sufficient for differentiation.
Today’s buzzwords include Big Data and Analytics. We have huge IT infrastructure for data collection and storage, better skills in processing data with advanced statistical software like SAS or R and friendlier data visualisation dashboard. Provided that data is available and usable, companies will have personnel and tools for reporting and prediction.
However, we still has to make decisions based on gut feel. There is no actionable recommendation provided by the systems and reports or what-if analyses to quantify what will happen if different course of actions are taken.
There are 3 types of analytics: descriptive (what has happened), predictive (what will happen), and prescriptive (what should happen).
Refer Descriptive, Predictive & Prescriptive Analytics: Port Operations Case Study, a nonfiction that explains the three stages of advanced analytics: Descriptive, Predictive & Prescriptive Analytics from the view of a port operator.
Prescriptive analytics, the third level analytics, which sits at the top of analytics evolution diagram above. It uses advanced analytical methods from Operations Research (OR), Management Science (MS) or Decision Science for quantitative decision making to help make better decisions.
It recommends one or more courses of action and showing the likely outcome of each decision so that the business decision makers can take this information and act. No more gut feel or crystal ball in decision making.
OR/MS is not new as it started during World War II. Optimization problems need to be formulated as mathematical models and solved with the optimization engine to get the solutions/recommendations.
Today’s computing capability has enabled very large and complex practical problems to be solved very quickly. Unfortunately OR/MS applications are not widespread in Malaysia compared to USA, Europe, South Korea, Taiwan and Singapore. Asia’s economy and competition require optimization of the business operations.
A decision-support environment is essential for business people to review their options and make confident decisions. Optimization technology has long been used to find the best solutions to complex planning and scheduling problems. It helps businesses make complex decisions and trade-offs about limited resources, better and faster.
Barriers to Learning & Modeling
Do you want to increase your salary exponentially? Constraints Programming with Minizinc is a very niche skill, but it is highly valued by the critical industries, like Oil and Gas, Supply Chain and Manufacturing.
Let’s face it. Learning Minizinc can be a nightmare. It is hard, boring and expensive.
Hard: People gave up. Beginners to modelling languages often find it difficult to get started.
Bad Tutor: They don’t have a good teacher. They tend to ignore the computer science aspects of writing robust models.
Boring: The learning resources are too boring. They assume a base level of knowledge of modelling languages or a deep familiarity with some certain optimisation problems.
Expensive: Almost all optimization training courses are mainly for big corporations. Our standard training is just way too expensive for individuals, starting at USD 2000, per day.
We have many training requests from individual operational scientists and planners, to improve their skills and increase their salaries.
Solution
We're experimenting a standardized Minizinc e-learning course that lets you learn how to start from nothing and get models up and running.
Different from other courses, we focus more on practical lessons, less on theory. We stick with one general problem and expand on that model in simple steps.
Instead of meeting a real person expert trainer, you can learn Minizinc modeling at any time, any place, by reading through our bite-sized lessons.
Think of Codecademy for Minizinc. A 8 minutes lesson is superior than a 2-hour class or lecture.
For whom is this e-course for?
The objective of this e-Course is to teach those aspiring IT analysts with varying degrees of Operations Research knowledge, about how to use the most important features of Minizinc IDE.
1) Developers who want to leverage mathematical optimization or constraint programming engine into real-world applications. Business Analysts, Modelers, IT developers and managers working with OR professionals derive maximum value out of the course.
2) Managers and executives who are involved in what-if analyses and recommendations / decision making of investment, pricing and revenue management, portfolio management, risk analysis, strategic planning, facility site location, production planning and scheduling, resource allocation, assets optimization, cost reduction, etc.
3) University students of Mathematics or Engineering Schools (MSc. or PhD). This course will equip you with the necessary skills and knowledge to provide effective solutions to complex organizational challenges in a business environment.
Ideal Profiles
In the early stage of your career
Want to enhance your career
Changing career to Operations Research industry as a planner or scheduler
Employed under critical industries
Operations research / Mathematics / Engineering background
Self-learning
Don’t have big budget for self-development
Benefits
Upon a successful completion of this course, we want you to be able to:
Understand where Operations Research fits in the analytics big picture and how it helps decision making
Understand Mathematical Programming and Constraint Optimization concepts and modelling techniques
Formulate decision-making problems as different models and solve with Minizinc IDE
Build production planning models and scheduling models
Course Content
A 8 minutes bite-sized lesson is superior than a 2-hour class or lecture for learning Minizinc.
1. Linear Programming Model with Minizinc Introduction
2. Why Minizinc? and its Components
3. Minizinc Desktop IDE Setup & MooptDev Cloud IDE
4. Simple Minizinc Model Explanation
5. Comments for Minizinc Model
6. Debugging Minizinc Model
7. Minizinc Decision Variable Expressions
8. Non-negativity Constraints
9. Minizinc Output Statement
10. Separate Parameters from Minizinc Model
11. Separate Data from Miniznc Model
12. Modelling Range with Sets, Arrays & Indices
13. Forall Loop to Output Result
14. Modelling with Summation Function
15. Naming with Strings Array
16. Compact Modelling with Enumerated Type
More ...
Participants who complete our Minizinc Optimization e-course, can take an online 35 questions multiple choice free assessment exam. Upon successful completion of the exam, you will receive Course Completion Certificate.
Learn Minizinc like your career depends on it. Your one-time investment will make an exponential 40% increase in your annual salary!
Access to all courses and lessons
Education in the most relevant tools and skills
Increased coding knowledge and understanding
More career opportunities
Track your progress: points / experience = ranking
Gain confidence and expertise
Direct contribution to open-source software
I HAVE A NEW ADDICTION. IT’S POWERFUL. IT’S DISTURBING. IT’S MOOPT SCHOOL.
Minizinc is one of the best option in the market, highly valued by the critical industries. Beginners often find it difficult to get started and gave up early. Are you ready to learn Minizinc and upgrade your career?
#school#blog#minizinc#e-learning#online course#Decision Optimization#linear programming#Mathematical programming#constraints programming#operations research#announcement
0 notes
Text
Welcome to Moopt
Moopt equips operational researchers with the skills and tools to analyze, model and solve real-world optimization problems.
Hey everyone! I’m Kai. I'm a full-stack developer with actuarial statistics background. I had been building backend systems and web applications for more than 10 years. I’ve worked on all kinds of algorithms for professionals, especially in both logistics and public sector.
I'm deeply passionate about building optimization models and data visualization that help businesses automating their supply chain planning.
I love the thrill of constructing elegant logical creations and teach people about them. It feels a bit more like being in the driver's seat of an alien spacecraft and very engaging.
Previously, I founded CloudStat, one of the earliest cloud-based on demand statistical platform for big data analysis and application deployment, using R and Hadoop. Then, I had been staying with Croakun and CoEnzyme as Technical Director and Technical Sales Director respectively for 10+ years in total before moving on to launch Moopt.
In the last decade, I witnessed many startups, organizations and even small businesses adopting Decision Optimization solutions. But I quickly learned that there was a lot of confusion around how Decision Optimization was being used in business and how to get started.
I created Moopt to be a resource for aspiring operational researchers. Moopt is a platform that educates, inspires and helps each of us achieve our Decision Optimization goals one hack at a time.
My goal with Moopt is to help you learn Decision Optimization through simple terms, plenty of real-world examples and helpful illustrations. Equip you with the skills to analyze, model and solve real-world problems in operations research and optimization.
At the same time, I wish to provide a more user-friendly end-to-end optimization applications development and deployment platform. So that, you can build models, test and integrate as a working application in hours - not days, to start making optimal decision.
Welcome to Moopt. It is just the beginning. Stay tuned!
0 notes
Text
Optimization Licensing & Configuration for IBM ILOG CPLEX & Decision Optimization Center
This Licensing and Configuration helps you to estimate the cost of developing and deploying a custom IBM ILOG CPLEX Optimization application with CPLEX Studio or Decision Optimization Center (DOC).
When you are ready to leverage IBM Decision Optimization to develop and deploy a custom optimization application, here we listed the IBM Decision Optimization licensing and potential configuration.
You can have an early rough cost estimation. Or you can contact us directly to get the exact quote.
For in depth details about IBM Decision Optimization offerings, please refer IBM Decision Optimization for Application Development and Deployment.
CPLEX Studio Community Edition (CE) / Preview Edition
When you solve locally with CPLEX Studio CE, your optimization problem size is limited to 1000 variables and 1000 constraints.
Licenses for ILOG CPLEX Optimization Studio (as of Feb 2015)
Product Name D p/n Description Price Subscription & Support IBM ILOG CPLEX Optimization Studio Developer Edition Authorized User License + SW Subscription & Support 12 Months D0CV0LL Named (aka authorized) user for development. 9550 per AU 20% of list IBM ILOG CPLEX Optimization Studio Developer Edition Floating User Single Session License + SW Subscription & Support 12 Months D16I8LL Simultaneous use, where the entitlement quantity specifies how many users can use the SW at the same time for development 14400 per FUSS 20% of list IBM CPLEX Optimizer Deployment Entry Edition Processor Value Unit (PVU) License + SW Subscription & Support 12 Months D120VLL This is a PVU metric but it has a 140 PVU limit, how much a client can buy maximum of this type. Once the client reached the 140 PVU, the client cannot buy more of this type. Then the "entry" has to be traded up to "ordinary" PVU, then more PVU can be purchased. 175 per PVU 20% of list IBM CPLEX Optimizer Deployment Edition Processor Value Unit License + SW Subscription & Support 12 Months D0CV2LL The "regular" deployment metric. 290 per PVU 20% of list IBM CPLEX Optimizer Deployment for Non-Production Processor Value Unit (PVU) License + SW Subscription & Support 12 Months D0TKXLL The non-production version of the deployment metric. 137 per PVU 20% of list IBM CPLEX Enterprise Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months D0LF1LL The deployment metric for the optimization server. 845 per PVU 20% of list IBM CPLEX Enterprise Server for Non-Production Environment Processor Value Unit (PVU) License + SW Subscription & Support 12 Months D12N0LL The non production version of the deployment metric. 411 per PVU 20% of list IBM CPLEX Optimizer Single User Edition Client Device License License + SW Subscription & Support 12 Months D0TLFLL This entitlement's intention is to embed on intelligent devices (like smart meters). The entitlement has 3 limitations. 19700 per client device 20% of list
Licenses for Decision Optimization Center (as of Feb 2015)
Product Name Part ID Description IBM List Price Subscription & Support IBM Decision Optimization Center Developer Edition D0951LL All you need to develop, debug and test Decision Optimization Center applications. For SW developers and optimization experts. Includes CPLEX Optimization Studio. 11,200 per Authorized User (Lic. + Maint.) 20% of list IBM Decision Optimization Center CPLEX Server D0955LL Deployment to serve remote solve requests. Includes IBM WebSphere Application Server for Developers 8.5. 820 per PVU (Lic. + Maint.) 20% of list IBM Decision Optimization Center CPLEX Engine D0IV2LL Deployment to serve local solve requests. 492 per PVU (Lic. + Maint.) 20% of list IBM Decision Optimization Center Data Server D0IV6LL Manages the Scenario Repository. Deployment to serve remote scenario management. Includes IBM WebSphere Application Server for Developers 8.5.5. 546 per PVU (Lic. + Maint.) 20% of list IBM Decision Optimization Center Client Edition D0IVQLL This is the business UI. Scenario creation / edition / modifications via Decision Optimization Center Data Server. Submit of solve requests to Decision Optimization Center CPLEX Server (remote) or Decision Optimization Center CPLEX Engine (local) 5,000 per Authorized User (Lic. + Maint.) 20% of list IBM Decision Optimization Center Planer Edition D095PLL Same functionality as Client Edition + single-user local scenario management. Possible direct access to Scenario DB (for legacy users, deprecated) 90,000 per Authorized User (Lic. + Maint.) 20% of list IBM Decision Optimization Center Solution Accelerator Client Edition D0N7BLL Provides components that allows the execution and customization of business optimization solutions developed with Decision Optimization Center. 4,670 per Authorized User (Lic. + Maint.) 20% of list IBM Decision Optimization Center Solution Accelerator Server Edition D0N2ULL Provides components that allow the execution and customization of business optimization solutions developed with Decision Optimization center. 796 per PVU (Lic. + Maint.) 20% of list
Licensing & Configuration Remark
Authorized User
The number of named individuals authorized to use the program at any point in time.
Floating user single session
The number of individuals using the program at any given time is limited by the entitlement (quantity).
Processor Value Units (PVU)
Used to differentiate distributed processor technologies (defined by Processor Vendor, Brand, Type and Model Number) based on cores.
pricing metric through Passport Advantage.
Each processor has a unique price per PVU.
PVUs are transferrable among systems and product within the enterprise.
PVU pricing provides flexibility and granularity.
Fair price per core for software value on multi-core technology.
enables virtualization sub-capacity licensing at the processor core level.
Client Device
Meant for (small) device embedding. It has 3 limitations:
the device cannot have more than 6 cores
only 1 "derived application" can run with an entitlement on the device.
only 1 simultaneous user can access the "derived application"
Multiple entitlement cannot be combined for cores, e.g. 2 purchasing 2 entitlements would not enable the user to have a 12 cores machine use.
However, for other 2 types (users / "derived applications") multiple entitlements can be combined on 1 machine, e.g. 3 client device entitlements would allow a client to use 3 "derived applications" with 1 simultaneous user OR 3 simultaneous user using 1 "derived application" on a 6 cores machine.
Look up exact values by server vendor / model and processor at https://www-112.ibm.com/software/howtobuy/passportadvantage/valueunitcalculator/vucalc.wss?
Processor Technology PVUs per processor core x86 or RISC, single core 100 x86, multi-core 50 or 70* RISC, multi-core 30 - 120 * IFL, single core (running Linux on System z) 100 or 120*
Common License Configurations
Case Study 1: Analysis Research ~10,000
1) D0CV0LL IBM ILOG CPLEX Optimization Studio Developer Edition Authorized User License + SW Subscription & Support 12 Months
License Metric is per Authorized User.
Required for each 'developer' of Optimization model.
User is entitled to develop and test/run optimization model.
User is not entitled to run optimization model in stand alone environment or distributed results (service bureau).
Case Study 2: Departmental Application ~75,000
1) D0CV0LL IBM ILOG CPLEX Optimization Studio Developer Edition Authorized User License + SW Subscription & Support 12 Months
License Metric is per Authorized User.
2) D0CV2LL IBM ILOG CPLEX Optimizer Deployment Edition Processor Value Unit License + SW Subscription & Support 12 Months
License Metric is per PVU.
Must calculate number of PVUs required for hardware that will be running optimization based application.
Example: Intel Xeon, 4 cores = 200 PVUs (50 PVUs per core x 4 cores).
Case Study 3: Enterprise wide Application ~250,000
1) D0CV0LL IBM ILOG CPLEX Optimization Studio Developer Edition Authorized User License + SW Subscription & Support 12 Months
License Metric is per Authorized User.
2) D0LF1LL IBM ILOG CPLEX Enterprise Server Processor Value Unit License + SW Subscription & Support 12 Months
License Metric is per PVU.
Production: IBM Power 6/550, dual core = 240 PVUs (120 PVUs x 2 cores)
Non-production (50% discount with use of IBM approved Sales Play)
QA: IBM PowerPC 970, dual core = 100 PVUs (50 PVUs x 2)
Hot Back-up: IBM Power 6/550, dual core = 240 PVUs
D0CV2LL can be substitute product.
Optimization Server Optimization Engine Planner Data Server Client Enterprise Yes Yes Yes Hybrid Yes Yes Yes Desktop Yes Yes
0 notes
Text
Linear Programming with Minizinc Introduction
Introducing Linear Programming, a mathematical programming method to solve a simple truck loading optimization puzzle with Minizinc.
Consider this problem: 300 boxes need to be loaded and shipped to a supermarket from a warehouse. We may rent lorries that can accommodate 30 boxes and 40 boxes, costing us RM 400 and RM 500 respectively. How many lorries of each type to load all boxes while minimizing the cost?
How many lorries of each type do we need?
The term "lorry" is more common in the United Kingdom while "truck" is often used in American contexts. Both terms can be used interchangeably. Our goal is to minimize the cost of loading these boxes by selecting the right amount of the different lorries.
At first glance this seems a simple task. A box costs RM 12.50 for 40-boxes-lorry (RM 500 / 40 boxes) and RM 13.33 for 30-boxes-lorry. So we would prefer the 40-boxes-lorry over 30-boxes-lorry, for cheaper unit price. However, what complicates matters are the resources needed.
We first put 280 boxes into 7 lorries of 40-boxes for RM 3500 (7 x RM 500). Then we add an eighth 30-boxes-lorry for RM 400 for the remaining 20 boxes. Total cost is RM 3900 for 8 lorries. This looks fine. But this is not the best solution.
Better Solution - Saving extra RM 100!
With 6 lorries of 40 boxes (240 boxes @ RM 3000) and 2 lorries with 30 seats (60 boxes @ RM 800), we can load all the boxes and pay only RM 3800. We can save RM 100! The best decision is not that obvious.
Solving puzzle with Minizinc
Mathematical Formulation:
$\begin{aligned} \min 400 * nLorry30 + 500 * nLorry40 \quad (0) \\\ 30 * nLorry30 + 40 * nLorry40 \geq 300 \quad (1) \\\ nLorry30, nLorry40 \geq 0 \quad (2) \end{aligned}$
We can easily solve the puzzle above with Minizinc code:
var int: nLorry30; var int: nLorry40; constraint 30 * nLorry30 + 40 * nLorry40 >= 300; constraint nLorry30 > 0; constraint nLorry40 > 0; solve minimize 400 * nLorry30 + 500 * nLorry40;
You can try at Moopt Dev, a web-based optimization modeling platform and get the result:
nLorry30 = 9; nLorry40 = 1; ---------- nLorry30 = 6; nLorry40 = 3; ---------- nLorry30 = 2; nLorry40 = 6;
Solving Real World Problems for Millions of ROI
This problem is a very simple example with only 2 variables, which are 2 types of lorries. In reality, real business problems in real companies can contain up to thousands or more variables. Solving it using our brain purely or graphically is totally impossible.
With modern tools, like Minizinc, companies can tackle more complex real-world problems and the return of investment would not be just RM 100 as in our toy lorry problem but millions of dollars. Other practical applications are production planning, resource allocation, investment decisions, military operations, inventory management, transportation scheduling, ... etc.
In the coming lessons, we will be revisiting how to code in Minizinc to solve this puzzle in details!
0 notes