SlideShare a Scribd company logo
SCHEDULING ALGORITHM
WITH EXCEL
VIA OPENSOLVER.ORG
PRESENTED BY:
LYNDON MARTIN W. BEHARRY
NOVEMBER 20, 2015
EXECUTIVE SUMMARY
Businesses routinely suffer inefficiencies and managers often suffer stress responding to scheduling issues. While many
software providers sell solutions catered to different types of enterprise: Schools and Universities, Hospitals, Factories, and
other organizations involving labor shift-work; off-the-shelf solutions are notoriously expensive, and sometimes malfunction
due to the inability of the underlying personal computer architecture to handle the range of variables within the model.
This report looks at one approach to the standard scheduling problem by constructing a model for use
by high schools and small colleges/universities. This iteration of the model builds up an integer
programming optimization model, aiming to maximize credit hours following constraints: 1) required
class hours per course-week; 2) instructor preference for teaching-free days; 3) restricting group-room
assignments to Integer: (0,1); 4) restricting number of instructors per group-room to Integer:(0,1); and
other constraints. The model searches through two thousand variable fields: 1) ten instructors; with
potential to occupy: 2) eight group-room assignments; over 3) five potential course time slots per day;
over 4) five days each week – viz. 10 X 8 X 5 X 5.
But the model has capability beyond the two thousand variables. For instance, if the system limits a
department teaching hours to two time slots per day (or different days), the system could
accommodate several departments to minimize scheduling conflicts while maximizing satisfaction for
instructors and students.
This project uses the robust solver mechanism in OpenSolver, an open source project developed by
Andrew Mason in the Department of Engineering Science at the University of Auckland. The
standard solver issued with Microsoft Excel is limited to only 200 variable fields. The OpenSolver
mechanism does not impose artificial limits to the number of potential variable fields.
EXECUTIVE SUMMARY Scheduling Optimization | 2015-11-20_Scheduler.docx |
11/24/2015 10:29
AM
CONTENTS | Page 2 of 33
Table of Contents
EXECUTIVE SUMMARY.......................................................................................................................................................................................................................1
A REVIEW OF THE STANDARD OPTIMIZATION ROUTINES..................................................................................................................................................3
THE STANDARD SCHEDULING PROBLEM .................................................................................................................................................................................4
THIS INSTANT SCHEDULING MODEL.........................................................................................................................................................................................5
THE MODEL’S CONSTRAINTS .......................................................................................................................................................................................................6
THE BENEFITS OF THE MODEL...................................................................................................................................................................................................9
OTHER MATERIAL01......................................................................................................................................................................................................................10
OTHER MATERIAL03 .....................................................................................................................................................................................................................12
OTHER MATERIAL04 .....................................................................................................................................................................................................................13
APPENDICES .....................................................................................................................................................................................................................................14
APPENDIX I: OPENSOLVER – OPEN SOURCE OPTIMIZATION FOR EXCEL...................................................................................................................15
APPENDIX II:....................................................................................................................................................................................................................................26
APPENDIX III:..................................................................................................................................................................................................................................27
APPENDIX IV:...................................................................................................................................................................................................................................28
APPENDIX V:.....................................................................................................................................................................................................................................29
APPENDIX VI:...................................................................................................................................................................................................................................30
REFERENCES.....................................................................................................................................................................................................................................A
CONTENTS Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
A REVIEW OF STANDARD OPTIMIZATION ROUTINES | Page 3 of 33
A REVIEW OF THE STANDARD OPTIMIZATION ROUTINES
Since the beginnings of human civilization, governments and other authorities have been vexed with
issues concerning optimization of resources: Maximize benefit and reduce cost. The military forces of
ancient empires, for example, continually aimed to improve scheduling of forces and transport of
equipment, food, and fodder. Scheduling logistics, in other words, was and remains paramount for
survival on the march to battle; and superior scheduling in logistics and assignment of tasks remains
decisive in battle, in business, and in other socio-economic endeavor.
Modern mathematics theory has made great strides in computing optimization routines within the two
major fields of Linear Programming and Integer
Programming. Linear programming (LP; also called linear
optimization) seeks the best outcome (such as maximum
profit or lowest cost) in a mathematical model whose
requirements are represented by linear relationships.1
Similarly, Integer Programming seeks an optimum solution
in which some or all of the variables are restricted to be
integers. In many settings the term refers to integer linear
programming (ILP), in which the objective function and the
constraints (other than the integer constraints) are linear.2
The introduction of the personal computer in the late 1970’s
brought optimization routines into the domain of non-
academic persons. MatLab, Microsoft Excel, Palisades Risk
Optimizer, and other software packages bring the discipline into the range of anyone with the
discipline to learn the theory and some rudimentary mathematic formulae to outline the optimization
model and constraints.
Linear and Integer Optimization algorithms must translate a real-world situation into a mathematical
model. For instance:
XYZ building supply Company has two locations. Two customers submit orders for 3/4-inch
plywood. Customer A requests fifty sheets and Customer B needs seventy sheets.
XYZ’s east-side warehouse stores inventory of eighty sheets; its west-side warehouse has forty-five
sheets. Delivery costs per sheet: $0.50 from the eastern warehouse to Customer A, $0.60 from the
eastern warehouse to Customer B, $0.40 from the western warehouse to Customer A, and $0.55
from the western warehouse to Customer B. The equation: C = 0.5Ae + 0.6Be + 0.4Aw + 0.55Bw3
shipped from east warehouse to Customer A: Ae
shipped from west warehouse to Customer A: Aw
shipped from east warehouse to Customer B: Be
shipped from west warehouse to Customer B: Bw
Finally, the tandem of optimization formula and constraint defines a range of potential solutions,
typically a polyhedron. If one is testing for a local minimum point, subject to constraints, one views
the polyhedron as convex. Conversely, if seeking a maximum point, one views the polyhedron as
concave. Integer optimization routines are a variant of linear programming, but with the added
constraint that the feasible region must only offer integer values of solutions, typically binary 0 or 1.
Algorithms which optimize scheduling of persons, machines, or equipment follow the Integer
Optimization binary 0 or 1 model.
1 From: https://en.wikipedia.org/wiki/Linear_programming
2 From: https://en.wikipedia.org/wiki/Integer_programming
3 From http://www.purplemath.com/modules/linprog5.htm
-3 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
THE STANDARD SCHEDULING PROBLEM | Page 4 of 33
THE STANDARD SCHEDULING PROBLEM
In general, workplace scheduling problems evolve out of the nurse scheduling problem, an
optimization query aiming to assign shifts to workers subject to a range of constraints: a) which shift
(i.e. day shift, night shift, early morning shift, swing shift); b) number of hours worked per day; c)
number of days worked per week; d) maximum number of hours per week; e) employee preference
for rest days; f) employee preference for room; etc. Similarly, job shop scheduling involves
optimization of job assignment, contingent upon resource availability during particular daily intervals:
the system requires n jobs J1, J2, ..., Jn of varying sizes, scheduled on m identical machines, while
minimizing the time duration of the entirety.
This instant Course Scheduling routine aims to combine the nurse schedule optimization and the job
shop optimization algorithms, where the worker schedule optimizer aims to maximize satisfaction
following worker preferences for shifts, room assignments, and non-teaching days; and the job-shop
optimizer seeks to maximize usage of room-group resources, subject to minimizing room conflicts
and total hours, subject to satisfying requirements for contact hours.
-4 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
THIS INSTANT SCHEDULING MODEL | Page 5 of 33
THIS INSTANT SCHEDULING MODEL
This instant scheduling optimizer constructs a relatively simple model to assist schools schedule course
group and room assignments. The optimizer aims to:
1. minimize group-room conflicts;
2. maximize instructor satisfaction for preference for room and time; and
3. satisfy constraints for credit hours.
The developer built this optimizer using Microsoft Excel. Microsoft Excel is the current-day standard
for business spreadsheet and finance; but increasingly is applied to science and engineering regimens.
And even though the standard Excel Solver optimization routine limits variable assignments to an
arbitrary 200 potential fields, OpenSolver is Excel friendly, and OpenSolver imposes no artificial
constraints to variable fields. The combination of Excel and OpenSolver provides a robust and low-
cost alternative for creating optimization routines of great design complexity, along the extreme ranges
of functionality.
In overview, this scheduling model links student Groups to certain Rooms; hence – a Preparatory
Group One might be linked to a Room 101. This structure aims to satisfy instructor preference for
Room. And this structure also imposes a barrier to whether the Preparatory Group One could
potentially be scheduled twice during the same time slot. Bear in mind: the schedule shows availability
of all rooms at each time. Hence, during the final phase of scheduling, it is quite simple to adjust a
room assignment for the given group to another open room. But for simplicity in initial calculation,
the algorithm restricts each Group to a certain room.
Secondly, the model permits the scheduler to honor instructor preferences for non-teach days, to
satisfy such requirements as outside seminars, applied research, faculty conferences, office hours, and
other matters. At present, the user must input the constraint directly within the solver constraint
profile.
Lastly, the model aims to satisfy all of the following criteria:
1. Maximize total teaching hours per week, subject to the required inputs;
2. Restrict Group-Room use to 0 or 1 per time slot. In other words, no two Groups may occupy
the same room at the same time slot;
3. Restrict Instructor-Room use to 0 or 1 per time slot. In other words, no two Instructors may
occupy the same room at the same time slot;
4. Maximize Instructor satisfaction for non-teach days;
5. Restrict daily teaching periods to some limit: 1, 2, or 3 class periods per Instructor day
(obviously to maximize Instructor preference, but also to avoid stress and burn-out);
6. Minimize the potential for errors, and usage of time for administrators involved with
scheduling.
-5 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
THE MODEL’S CONSTRAINTS | Page 6 of 33
THE MODEL’S CONSTRAINTS
The functional worksheet Schedule Solver contains a comment description in cell E2:
This is the functional Solver worksheet. The user must input the course information on Schedule
Inputs Worksheet, and run the Solver routine here.
Set the following parameters manually, with course credit hours. {The system will automatically
draw class assignments by teacher from Schedule Inputs Worksheet. Type in total weekly
time slots for each course assignment (i.e. 2, 3, or 4 for each class assignment)}:
$E$87:$L87
$E$92:$L92
$E$97:$L97
$E$102:$L102
$E$107:$L107
$E$112:$L112
$E$117:$L117
$E$122:$L122
$E$127:$L127
$E$132:$L132
then run Solver under the following parameters:
Set $BD$21 to Max {Possible class hours subject to constraint}
Changing $E$10:$AR$59 {{Run the Macro CTRL +SHIFT R from Schedule Inputs Worksheet
to clear the range}
Subject to constraints:
Instructor Days Off {Set these constraints according to Instructor/Facility Requirements} For
Example:
$CC$12=0
$CD$11=0
$CE$10=0
Set the schedule to Integer "0" (not occupied) or "1" (occupied) :
$E$10:$AR$59<=1
$E$10:$AR$59=OR(0,1)
$E$10:$AR$59=Integer
Set Instructor Classes per Week to Max allowed:
$BD$10:$BD$119 = $BE$10:$BE$19
$BD$10:$BD$19>=$BF10:$BF$19
$BQ$10:$BU$59<=1
$CC$10:$CG$19<=$CH$6
Constrain each Room to Maximum one Instructor Group per Time Slot
$E$76:AZ$80<=1
Set classes Taught to Classes Required
-6 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
THE MODEL’S CONSTRAINTS | Page 7 of 33
$E$86:$L$86=$E$87:$L$87
$E$91:$L91=$E$92:$L92
$E$96:$L96=$E$97:$L$97
$E$101:$L$101=$E$102:$L$102
$E$106:$L$106=$E$107:$L$107
$E$111:$L$111=$E$112:$L$112
$E$116:$L$116=$E$117:$L$117
$E$121:$L$121=$E$122:$L$122
$E$126:$L$126=$E$127:$L$127
$E$131:$L$131=$E$132:$L$132
THE SPECIFICS
The user must input all course and teacher data within the worksheet =Schedule Inputs!. Teacher
information ($C$7:$D$16), list of available rooms ($L$7:$L$14), and course information By Teacher
and Group-Room ($R$7:$S$166), and Student Group Names ($U$7; $U$9, $U$11, $U$13, $U$15,
$U$17, $U$19, $U$21)
Though this iteration of the Optimization model accommodates only 8 possible Group-Room
assignments, one may stretch the functionality by 1) limiting the number of Rooms available for these
8 Groups; 2) constraining days or times available for these Groups; or a combination. Hence, by
limiting these groups to a certain four rooms, for example; or by scheduling another set of groups
within another set of rooms, it is easy to Optimize for larger assortments of groups (viz. by rooms
allocated by Department, or by major field of study, for example – with certain time slots allocated for
overlap, in the event of electives).
This model creates matrices for each of ten potential instructor sets including within the worksheet
=Schedule Solver!:
1. A list of each of ten potential Teachers;
2. Occupying one of 8 rooms for each of six potential working days;
a. Monday: Columns $E:$L
b. Tuesday: Columns $M:$T
c. Wednesday: Columns $U:$AB
d. Thursday: Columns $AC:$AJ
e. Friday: Columns $AK:$AR
f. Saturday: Columns $AS:$AZ
3. Over each of five time slots each for each teacher-day
a. Teacher 01: Rows $10:$14
b. Teacher 02: Rows $15:$19
c. Teacher 03: Rows $20:$24
d. Teacher 04: Rows $25:$29
e. Teacher 05: Rows $30:$34
f. Teacher 06: Rows $35:$39
g. Teacher 07: Rows $40:$44
h. Teacher 08: Rows $45:$49
i. Teacher 09: Rows $50:$54
j. Teacher 10: Rows $55:$59
4. Sums of Group-Room per Teacher-Day
a. Teacher 01: =Sum(E14:E19) and etc.
-7 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
THE MODEL’S CONSTRAINTS | Page 8 of 33
5. The Integer Optimization seeks to isolate the Integer Value (0,1) across each Teacher-Room
time slot matrix so that Weekly Group-Room time slots Per Teacher-Room is equivalent to
the required hours per Group-Room course; in other words
a. Teacher 01 $E$86:$N$86
b. Teacher 02 $E$91:$N$91
c. Teacher 03 $E$96:$N$96
d. Teacher 04 $E$101:$N$101
e. Teacher 05 $E$106:$N$106
f. Teacher 06 $E$111:$N$111
g. Teacher 07 $E$116:$N$116
h. Teacher 08 $E$121:$N$121
i. Teacher 09 $E$126:$N$126
j. Teacher 10 $E$131:$N$131
1. Where, for instance, $E$86 defines the constraint for weekly
Teacher-Room time slots per Group-Room course
=+SUM(E10,E15,E20,E25,E30,E35,E40,E45,E50,E55) and etc.
a. Must equal $E$87 (Required time-slots per Course Week);
6. Additional Matrix: $E$63:$AZ$72 calculates Teacher-Room occupancy by day {i.e.
=+SUM(E10:E14), and etc.};
7. Additional Matrix: $E$76:$AZ$80 calculates Teacher-Room and Group-Room occupancy by
hour {i.e. =+SUM(E10,E15,E20,E25,E30,E35,E40,E45,E50,E55), and etc.}; Constrain each
point to Integer (0,1) so that only One Teacher and only One Group may occupy any given
room any time slot;
8. Additional Matrix: $CC$10:$CH$19 defines the constraint for Teacher preference for non-
teach days: {Monday, Teacher 01 =SUM(E10:L14), and etc.}
9. Additional Matrix: $BD$9:$BD$18 defines the time slots taught per week by teacher {Teacher
01 =+SUM(E10:AZ14), and etc.}
10. The Optimization routine aims to maximize total Teacher Hours Taught each week: $BD$21,
while satisfying the defined constraints;
-8 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
THE BENEFITS OF THE MODEL | Page 9 of 33
THE BENEFITS OF THE MODEL
This scheduler model should reduce time constraints to administrators in scheduling Group-Room
assignments for studies. In addition, the model should provide sufficient leeway for the user to satisfy
many Instructor preferences for room and times. Lastly, the model offers sufficient flexibility for the
user to schedule special study days, including after hours and Saturdays.
-9 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
OTHER MATERIAL01 | Page 10 of 33
OTHER MATERIAL01
Blah blah blah.
-10 of
33-
Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
OTHER MATERIAL02 | Page 11 of 33
OTHER MATERIAL02
Blah blah blah.
-11 of
33-
Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
OTHER MATERIAL03 | Page 12 of 33
OTHER MATERIAL03
Blah…Blah…Blah
-12 of
33-
Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
OTHER MATERIAL04 | Page 13 of 33
OTHER MATERIAL04
Blah blah blah.
-13 of
33-
Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
APPENDICES | Page 14 of 33
APPENDICES
-14 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
APPENDIX I: OPEN SOLVER: OPEN SOURCE OPTIMIZATION FOR EXCEL| Page 15 of 33
APPENDIX I: OPENSOLVER – OPEN SOURCE OPTIMIZATION FOR EXCEL
-15 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
OpenSolver:
Open Source Optimisation for Excel
www.opensolver.org
Andrew J Mason
Department of Engineering Science
University of Auckland
New Zealand
a.mason@auckland.ac.nz
Iain Dunning
Department of Engineering Science
University of Auckland
New Zealand
Abstract
We have developed an open source Excel add-in, known as OpenSolver, that allows
linear and integer programming models developed in Excel to be solved using the
COIN-OR CBC solver. This paper describes OpenSolver‟s development and features.
Key words: OpenSolver, Open Source, Excel, Solver, Add-in, COIN-OR, CBC.
1 Introduction
Microsoft Excel (Wikipedia, 2010) contains a built-in optimisation tool known as
Solver (Frontline, 2010). Solver is developed by Frontline Systems, who provide the
software to Microsoft. Using Solver, a user can develop a spreadsheet optimisation
model and then solve it to find an optimal solution. Many introductory optimisation
courses use Solver and Excel to introduce students to modelling and optimisation.
Unfortunately, when students apply their optimisation skills to real-world problems,
they often discover that the size of problem Solver can optimise is artificially limited to
no more than 200 decision variables (Solver Limits, 2010), and that they need to
upgrade Solver to one of Frontline‟s more expensive products, such as Premium Solver.
(Beta versions of the latest Excel version, Excel 2010, have a smaller variable limit
(Dunning 2010); the current variable limit in shipping versions of Excel 2010 has not
been confirmed.)
We have recently been involved in the development of a large staff scheduling
model. This model was developed as part of a consultancy exercise where it was
important that the model could be used and scrutinised by a range of different users.
Satisfying this requirement using commercial products would have been logistically
difficult and expensive.
For a number of years, a group known as COIN-OR (Computational Infrastructure
for OR) (COIN-OR, 2010) have been developing and promoting open source
optimisation software, including the linear/integer programming optimiser known as
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
181
CBC (CBC, 2010). While typically not as fast as its commercial equivalents, the COIN-
OR software has gained a reputation for quality and reliability and is now widely used in
industrial applications.
The combination of Excel and COIN-OR is a compelling one, and appeared to be a
perfect solution for our large staff scheduling model. Unfortunately, we were unable to
find any software that allowed Excel spreadsheet models to be solved using any of the
COIN-OR optimisers. A decision was taken to develop such software to progress the
scheduling project. This decision eventually led to the development of OpenSolver, a
freely available Excel add-in that allows existing spreadsheet linear and integer
programming models to be solved using the COIN-OR CBC optimiser
2 Solver Operation
We start by briefly describing how optimisation models are built using Solver. Readers
familiar with Solver may wish to skip this section.
A typical linear programming model is shown in Figure 1. The decision variables are
given in cells C2:E2. Cell G4 defines the objective function using a „sumproduct‟
formula defined in terms of the decision variables and the objective coefficients in cells
C4:E4. Each of the constraints are defined in terms of a constraint left hand side (LHS)
in G6:G9 and right hand side (RHS) in I6:I9. Note that the „min‟ in B4 and the
constraint relations in H6:H9 are for display purposes only, and are not used by Solver.
Figure 1: A typical spreadsheet optimization model. Many models do not follow
this layout, but instead ‘hide’ the model inside the spreadsheet formulae.
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
182
Figure 2 shows how this model is set up using Solver. The decision variables,
objective function cell and constraint left and right hand side cells must all be specified
by the user within Solver. Note that a constraint can either consist of two multi-cell
ranges of the same dimension, such as A4:A8 >= B4:B8, or a multi-cell range and a
constant or single-cell range such as A4:A8 <= 8. Integer and binary restrictions on the
variables can also be specified using constraints.
Figure 2: Solver setup for the model above.
The means by which Solver stores a model does not appear to be documented.
However, a Google search eventually uncovered a comment that Solver uses hidden
named ranges (see, e.g., Walkenbach 2010). The Excel Name Manager add-in (Pieterse,
2010), developed by Jan Karel Pieterse of Decision Models UK, was then used to reveal
this hidden data. The names used by Solver are documented in Appendix 1. OpenSolver
uses these named ranges to determine the decision variables, the objective function and
LHS and RHS ranges of each constraint.
3 Constructing a Model from Excel Ranges
We wish to analyse the spreadsheet data to build an optimisation model which has
equations of the form:
Min/max c1x1+c2x2+... cnxn
Subject to a11x1+a12x2+... a1nxn ≤/=/≥ b1
a21x1+a22x2+... a2nxn ≤/=/≥ b2
...
am1x1+am2x2+... amnxn ≤/=/≥ bm
x1, x2, ..., xn >= 0
Assuming the model is linear, then the Excel data can be thought of as defining an
objective function given by
Obj(x) = c0+c1x1+c2x2+...cnxn
where x=(x1, x2, ..., xn) are the decision variable values, Obj(x) is the objective function
cell value, and c0 is a constant. Similarly, each constraint equation i is defined in Excel
by
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
183
LHSi(x) ≤/=/≥ RHSi(x)  LHSi(x) - RHSi(x) ≤/=/≥ 0, i=1, 2, ..., m
where LHSi(x) and RHSi(x) are the cell values for the LHS and RHS of constraint i
respectively given decision variable values x. Because Solver allows both LHSi(x) and
RHSi(x) to be expressions, we assume that both of these are linear functions of the
decision variables. Thus, we have
ai1x1+ai2x2+...ainxn- bi = LHSi(x) - RHSi(x), i=1, 2, ..., m.
OpenSolver determines the coefficients for the objective function and constraints
through numerical differentiation. First, all the decision variables are set to zero,
x=x0
=(0,0,...,0) giving:
c0=Obj(x0
)
bi = RHSi(x0
) - LHSi(x0
), i=1, 2, ..., m
Then, each variable xj is set to 1 in turn, giving decision variables values x=xj
, where
xj
=(x1
j
, x2
j
, ..., xn
j
) is a unit vector with the single non-zero element xj
j
=1. Then, the
spreadsheet is recalculated, and the change in the objective and LHS and RHS of each
constraint recorded. This allows us to calculate the following coefficients:
cj = Obj(xj
)-c0
aij = LHS(xj
)-RHS(xj
)+bi, i=1, 2, ..., m
This process assumes that these equations are indeed all linear. OpenSolver does not
currently check this, but will do so in a future release.
The speed of this process is set by the speed at which Excel can re-calculate the
spreadsheet. As an example, the large staff scheduling model discussed earlier has 532
variables and 1909 constraints, and took 22s to build (and just 1 second to solve) on an
Intel Core-2 Duo 2.66GHz laptop. There are a number of different Excel calculation
options available, such as just recalculating individual cells or recalculating the full
worksheet or workbook. OpenSolver currently does a full workbook recalculation as the
other options did not appear to give any faster results.
In our model form above, we have specified that the decision variables are all non-
negative. This assumption is also made by the COIN-OR CBC solver we use. To ensure
this is the case, OpenSolver requires the user to set Solver‟s “Assume Non-Negative”
option. OpenSolver cannot currently solve models for which this is not the case.
OpenSolver also requires that Solver‟s “Assume Linear Model” is set.
4 Integration with COIN-OR CBC Solver
OpenSolver uses the COIN-OR CBC linear/integer programming solver to generate its
solutions. While this solver can be called directly as a DLL, OpenSolver adopts the
simpler process of writing a „.lp‟ file that contains the model definition and then calling
the command line version of CBC with this file as an input argument. CBC then
produces an output file which is read back by OpenSolver. If a solution has been found,
OpenSolver uses this to set the values of the decision variable cells. Any infeasibility or
unboundedness, or early termination caused by time limits, is reported using a dialog.
Solver provides the user with a number of solution options. Of these, the “Max
Time” option is passed to CBC (using the CBC parameter “-seconds”), and the
“Tolerance” option is passed (using “-ratioGap”) to set the percentage tolerance required
for CBC integer solutions. Other CBC options can be set by creating a two column
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
184
range named “OpenSolver_CBCParameters”on the spreadsheet that contains CBC
parameter names and values.
If the “Show Iteration Results” option is set, OpenSolver displays the CBC
command line window while CBC is running. (OpenSolver does not provide the step-
by-step functionality that this option enables in Solver.)
5 Excel Integration and User Interface
OpenSolver is coded in Visual Basic for Applications and runs as an Excel add-in. The
add-in presents the user with new OpenSolver controls using the standard ribbon
interface. These OpenSolver buttons and menus are shown in Figure 3 and Figure 4.
Figure 3: OpenSolver’s buttons and menu appear in Excel's Data ribbon.
Figure 4: OpenSolver’s menu gives access to its more advanced options.
OpenSolver is downloaded as a single .zip file which when expanded gives a folder
containing the CBC files and the OpenSolver.xlam add-in. Double clicking
OpenSolver.xlam loads OpenSolver and adds the new OpenSolver buttons and menu to
Excel. OpenSolver then remains available until Excel is quit. If required, the
OpenSolver and CBC files can be copied to the appropriate Office folder to ensure
OpenSolver is available every time Excel is launched. Note that no installation program
needs to be run to install either OpenSolver or CBC.
6 Performance
We have found OpenSolver‟s performance to be similar or better than Solver‟s. CBC
appears to be a more modern optimizer than Solver‟s, and so gives much improved
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
185
performance on some difficult problems. For example, large knapsack problems which
take hours with Solver are solved instantly using OpenSolver, thanks to the newer
techniques such as problem strengthening and preprocessing used by CBC.
7 Model Visualisation
To view an optimisation model developed using the built-in Solver, the user needs to
check both the equations on the spreadsheet and the model formulation as entered into
Solver. This separation between the equations and the model form makes checking and
debugging difficult. OpenSolver provides a novel solution to this in the form of direct
model visualisation on the spreadsheet. As Figure 5 shows, OpenSolver can annotate a
spreadsheet to display a model as follows:
• The objective cell is highlighted and labelled min or max
• The adjustable cells are shaded. Binary and integer decision variable cells are
labelled „b‟ and „i‟ respectively.
• Each constraint is highlighted, and its sense (≥,≤, or =) shown (using a „>‟, „<‟ or
„=‟ respectively).
We have found this model visualisation to be very useful for checking large models, and
believe it will be very useful debugging tool for students learning to use Solver.
Figure 5: OpenSolver can display an optimisation model directly on the
spreadsheet. The screenshot on the left shows OpenSolver’s highlighting for the
model given earlier, while the screenshot on the right illustrates OpenSolver’s
highlighting for several other common model representations.
8 Automatic Model Construction
The original design of OpenSolver envisaged the continued use of Solver to build (but
not solve) the optimisation models. However, we have developed additional
functionality that allows OpenSolver to build Solver-compatible models itself without
requiring any user-interaction with Solver. Our approach builds on the philosophy that
the model should be fully documented on the spreadsheet. Thus, we require that the
spreadsheet identifies the objective sense (using the keyword „min‟ or „max‟ or variants
of these), and gives the sense (>=,<=, or =) of each constraint. Our example problem
shown in Figure 1 satisfies these requirements. In our teaching, we have always
recommended this model layout as good practice, and note that many textbooks follow a
similar approach. Our keyword-based approach creates only a minimal additional
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
186
burden for the user but, by allowing the model construction process to be automated,
delivers what we consider to be a significantly improved modelling experience.
To identify the model, OpenSolver starts by searching for a cell containing the text
`min‟ or „max‟ (or variants on these). It then searches the cells in the vicinity of this
min/max cell to find a cell containing a formula (giving preference to any cell
containing a „sumproduct‟ formula); if one is found, this is assumed to define the
objective function. The user is then asked to confirm that this is the objective function
cell, or manually set or change the objective function cell.
After identifying the objective function cell, OpenSolver then tries to locate the
decision variables. Because the objective function depends on the decision variable
cells, these decision cells must be contained in the set of the objective function‟s
„precedent‟ cells (i.e. the cells referred to by the objective function formula, either
directly or indirectly through other intermediate cells). However, if a sumproduct is
used, for example, these precedents will also contain the objective function coefficients.
OpenSolver attempts to distinguish between decision variables and objective function
coefficients by looking at the number of dependent cells. An objective function
coefficient will typically only have one dependent cell, being the objective function cell.
However, decision variables will have many dependents as they feature in both the
objective function cell and in the constraint cells. Thus, OpenSolver examines each
objective function precedent cell, and keeps as decision variables those cells with more
than 1 successor. The resultant set of decision variables is presented to the user to
confirm or change.
The next step is to identify any binary or integer restrictions on the decision
variables. These are assumed to be indicated in the spreadsheet by the text „binary‟ or
„integer‟ (and variants of these) entered in the cell beneath any restricted decision
variable.
The final requirement is to determine the constraints. OpenSolver considers all cells
(except for the objective function cell) that are successors of the decision variables, and
searches in the vicinity of each of these for one of the symbols „<=‟, „<‟, „=‟, „>=‟, or
„>‟. A constraint is created for each occurrence of these symbols.
As shown in , OpenSolver allows the user to correct mistakes made when
determining the objective function cell, the decision variable cells, and/or any binary or
integer restrictions on these cells. Errors in the constraints currently need to be corrected
using Solver. Once the model has been confirmed (and/or corrected) by the user, it is
constructed and stored using the standard Solver named ranges, and thus can be solved
using Solver or OpenSolver. It can also be edited using Solver. Testing on a range of
spreadsheet models has shown that the auto-model algorithms work correctly for
commonly taught model layouts including tabular models such as transportation.
The AutoModel feature has been developed by Iain Dunning, a student in the
Engineering Science department at the University of Auckland
9 Advanced Features
OpenSolver offers a number of features for advanced users, including:
 The ability to easily solve an LP relaxation,
 Interaction with the CBC solver via the command line,
 Faster running using „Quick Solve‟ when repeatedly solving the same
problem with a succession of different right hand sides, and
 Viewing of the .lp problem file and CBC‟s solution file
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
187
Note that our large scheduling problem had to be solved repeatedly for 52 different right
hand side values. The Quick Solve feature was developed to remove the need to
repeatedly analyse the spreadsheet to determine the model coefficients. Using Quick
Solve reduced the scheduling problem‟s run times for from one hour to one minute.
Figure 6: The auto-model dialog, shown here for the model in Figure 1, guides the
user through the model building steps, allowing them to correct any mistakes made
by OpenSolver’s auto-model algorithms.
10 User Feedback
As at 10 November 2010, OpenSolver has been downloaded over 750 times since 16
July 2010. Since 20 June 2010, the OpenSolver web site, www.opensolver.org, has
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
188
served over 6000 page views to over 1800 visitors. Much of this interest can be
attributed to OpenSolver being featured on Mike Trick‟s OR blog (Trick, 2010) and
mentioned on the “IEOR Tools” website (Larry, 2010). It is difficult to determine how
OpenSolver is being used, but a comment by Joel Sokol from Georgia Tech on the
OpenSolver web site describes one use of OpenSolver as follows:
Thanks, Andrew! I’m using OpenSolver on a project I’m doing for a Major League
Baseball team, and it’s exactly what I needed. It lets the team use their preferred
platform, creates and solves their LPs very quickly, and doesn’t constrain them with any
variable limits. Thanks again! - Joel Sokol, August 11, 2010
11 Conclusions
We have shown that it is possible to leverage the COIN-OR software to provide users
with a new open source option for delivering spreadsheet-based operations research
solutions. While our software is compatible with Solver, it also provides novel tools for
visualising and building spreadsheet models that we hope will benefit both students and
practitioners.
References
CBC, 8 November 2010, https://projects.coin-or.org/Cbc
COIN-OR, 8 November 2010, www.coin-or.org
Dunning, I., personal communication, August 2010
FrontLine, 8 November 2010, www.solver.org
Larry, 7 July 2010, http://industrialengineertools.blogspot.com/2010/07/open-source-
solver-for-excel.html
Pieterse, J.K., 6 November 2010, http://www.jkp-ads.com/officemarketplacenm-en.asp
Solver Limits, 8 November 2010, http://www.solver.com/suppstdsizelim.htm
Trick, M., 7 July 2010, http://mat.tepper.cmu.edu/blog/?p=1167
Walkenbach, J., “Excel 2010 Formulas”, p75, Wiley Publishing, Indiana, 2010, online
on 7 November 2010 at Google Books.
Wikipedia, “Microsoft Excel”, 7 November 2010,
http://en.wikipedia.org/wiki/Microsoft_Excel
Appendix 1: Solver’s internal model representation under Excel 2010
and earlier versions. (This is a partial listing for Excel 2010.)
Name1
Interpretation Example Values2
solver_lhs1,
solver_lhs2, ...5
A range defining the left hand side of
constraints 1, 2, ...,
=Sheet1!$G$6:$G$7
=Sheet1!$G$8
solver_rhs1,
solver_rhs2, ...5
The right hand side of constraints 1, 2, ...
defined by either a range or a constant value
or one of the keywords: integer, binary
=Sheet1!$I$6:$I$7
=7
solver_rel1,
solver_rel2, ...5
The nature of the constraint, being one of
the following integer values: 1: <=, 2: =,
3: >=, 4: integer, 5: binary
=1
=binary
solver_num5
The number of constraints. =2
solver_adj A range defining the decision variables
(termed adjustable cells)
=Sheet1!$C$2:$E$2
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
189
solver_lin3,7
1 if the user has ticked “Assume linear
model”, 2 if this is unchecked.
=1
=2
solver_neg3
1 if the user has ticked “Assume non-
negative”, 2 if this is unchecked.
=1
=2
solver_nwt Solver‟s “Search” option value,
1=”Newton”, 2=”Conjugate”
=1
solver_pre Solver‟s “Precision” option value =0.000001
solver_cvg Solver‟s “Convergence” option value =0.0001
solver_drv Solver‟s “Derivative” option value,
1=”Forward”, 2=”Central”
=1
solver_est Solver‟s “Estimates” option value,
1=”Tangent”, 2=”Quadratic”
=1
solver_itr Solver‟s “Iterations” option value, the
maximum number of iterations (branch and
bound nodes?) Solver can run for before the
user is alerted
=100
solver_scl Solver‟s “Use Automatic Scaling” option
value, 1=true, 2=false
=2
solver_sho8
Solver‟s “Show Iteration Results” option
value, 1=true, 2=false
=2
solver_tim Solver‟s “Max time” option value, the
maximum number of seconds Solver can
run for before the user is alerted
=100
solver_tol Solver‟s “Tolerance” option value, stored as
a fraction and displayed to the user as a
percentage value.
=0.05
solver_typ Objective sense, as in “Set target cell to”:
1=”Max”, 2=”Min”, 3=”Value of”
=2
solver_val If solver_typ=3, this gives the target value
for the objective function.
=0
solver_ver8
Solver version.(=3 in Excel 2010) =3
solver_eng8
Engine. 1=Nonlinear, 2=Simplex,
3=Evolutionary
=2
Notes:
1: The name is local to the sheet, and so is prefixed by the sheet name, e.g.
Sheet1!solver_lhs1.
2: The value always begins with an “=”, e.g. “=2” or “=Sheet1!$C$2:$E$2”
3: Models built using older versions of Solver may not have this defined.
4: Some values may be missing. For example, a model can be defined that has no
decision variables.
5: solver_num may be less than the apparent number of constraints. This occurs when
constraints are deleted because Solver does not delete the unused solver_lhs,
solver_rhs and solver_rel names.
6: References such as =Sheet1!#REF! can occur in the current model if cells have been
deleted. These are detected by OpenSolver.
7: Excel 2010 removes the “Assume linear model” option, and instead asks the user to
choose the specific solver (linear solver, non-linear solver or genetic algorithm).
8: Not defined in versions before Excel 2010
Proceedings of the 45th
Annual Conference of the ORSNZ, November 2010
190
APPENDIX II: | Page 26 of 33
APPENDIX II:
-26 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
APPENDIX III: | Page 27 of 33
APPENDIX III:
-27 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
APPENDIX IV: | Page 28 of 33
APPENDIX IV:
-28 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
APPENDIX V: | Page 29 of 33
APPENDIX V:
-29 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
APPENDIX VI: | Page 30 of 33
APPENDIX VI:
-30 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
REFERENCES | PAGE A
REFERENCES
Mason, A.J., “OpenSolver – An Open Source Add-in to Solve Linear and Integer Progammes in Excel”, Operations
Research Proceedings 2011, eds. Klatte, Diethard, Lüthi, Hans-Jakob, Schmedders, Karl, Springer Berlin Heidelberg
pp 401-406, 2012, http://dx.doi.org/10.1007/978-3-642-29210-1_64, http://opensolver.org
.
- REFERENCES: A- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
REFERENCES | PAGE B
GRAPHICS:
TBD
- REFERENCES: B- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM

More Related Content

What's hot

Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...
Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...
Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...
IRJET Journal
 
Data Envelopment Analysis
Data Envelopment AnalysisData Envelopment Analysis
Data Envelopment Analysis
César Sobrino
 
Computational Aptitude of Handheld Calculator
Computational Aptitude of Handheld CalculatorComputational Aptitude of Handheld Calculator
Computational Aptitude of Handheld Calculator
mathsmasters
 
Optimization in power system
Optimization in power systemOptimization in power system
Optimization in power system
Hassan Khalid Uppal
 
DEA Model: A Key Technology for the Future
DEA Model: A Key Technology for the FutureDEA Model: A Key Technology for the Future
DEA Model: A Key Technology for the Future
inventionjournals
 
Data Structures and Algorithms Unit 01
Data Structures and Algorithms Unit 01Data Structures and Algorithms Unit 01
Data Structures and Algorithms Unit 01
Prashanth Shivakumar
 
A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...
A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...
A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...
Editor IJCATR
 
IRJET- Solving Supply Chain Network Design Problem using Center of Gravit...
IRJET-  	  Solving Supply Chain Network Design Problem using Center of Gravit...IRJET-  	  Solving Supply Chain Network Design Problem using Center of Gravit...
IRJET- Solving Supply Chain Network Design Problem using Center of Gravit...
IRJET Journal
 
SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...
SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...
SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...
Sudhendu Rai
 
function (mal120) By Wakil Kumar
function (mal120) By Wakil Kumarfunction (mal120) By Wakil Kumar
function (mal120) By Wakil Kumar
Wakil Kumar
 

What's hot (10)

Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...
Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...
Optimization Problems Solved by Different Platforms Say Optimum Tool Box (Mat...
 
Data Envelopment Analysis
Data Envelopment AnalysisData Envelopment Analysis
Data Envelopment Analysis
 
Computational Aptitude of Handheld Calculator
Computational Aptitude of Handheld CalculatorComputational Aptitude of Handheld Calculator
Computational Aptitude of Handheld Calculator
 
Optimization in power system
Optimization in power systemOptimization in power system
Optimization in power system
 
DEA Model: A Key Technology for the Future
DEA Model: A Key Technology for the FutureDEA Model: A Key Technology for the Future
DEA Model: A Key Technology for the Future
 
Data Structures and Algorithms Unit 01
Data Structures and Algorithms Unit 01Data Structures and Algorithms Unit 01
Data Structures and Algorithms Unit 01
 
A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...
A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...
A Comparison between FPPSO and B&B Algorithm for Solving Integer Programming ...
 
IRJET- Solving Supply Chain Network Design Problem using Center of Gravit...
IRJET-  	  Solving Supply Chain Network Design Problem using Center of Gravit...IRJET-  	  Solving Supply Chain Network Design Problem using Center of Gravit...
IRJET- Solving Supply Chain Network Design Problem using Center of Gravit...
 
SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...
SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...
SIMULATION-BASED OPTIMIZATION USING SIMULATED ANNEALING FOR OPTIMAL EQUIPMENT...
 
function (mal120) By Wakil Kumar
function (mal120) By Wakil Kumarfunction (mal120) By Wakil Kumar
function (mal120) By Wakil Kumar
 

Viewers also liked

2016 03-18 sample-graphics
2016 03-18 sample-graphics2016 03-18 sample-graphics
2016 03-18 sample-graphics
Lyndon Martin W. Beharry
 
2016 03-07 mnt-fx-paper
2016 03-07 mnt-fx-paper2016 03-07 mnt-fx-paper
2016 03-07 mnt-fx-paper
Lyndon Martin W. Beharry
 
90 day-ma-gold mnt-regression
90 day-ma-gold mnt-regression90 day-ma-gold mnt-regression
90 day-ma-gold mnt-regression
Lyndon Martin W. Beharry
 
Monte carloanalysisstakeholderinterestot tr_print
Monte carloanalysisstakeholderinterestot tr_printMonte carloanalysisstakeholderinterestot tr_print
Monte carloanalysisstakeholderinterestot tr_print
Lyndon Martin W. Beharry
 
Gmit biodiesel project student presentation
Gmit biodiesel project student presentationGmit biodiesel project student presentation
Gmit biodiesel project student presentation
Lyndon Martin W. Beharry
 
2016 03-18 mongol-forex
2016 03-18 mongol-forex2016 03-18 mongol-forex
2016 03-18 mongol-forex
Lyndon Martin W. Beharry
 
Monte Carlo Analysis of Oyu Tolgoi CashFlows
Monte Carlo Analysis of Oyu Tolgoi CashFlowsMonte Carlo Analysis of Oyu Tolgoi CashFlows
Monte Carlo Analysis of Oyu Tolgoi CashFlows
Lyndon Martin W. Beharry
 
Model of Mongolian Tugrik Foreign Exchange
Model of Mongolian Tugrik Foreign ExchangeModel of Mongolian Tugrik Foreign Exchange
Model of Mongolian Tugrik Foreign Exchange
Lyndon Martin W. Beharry
 
BIIB Report_lmbenterprises
BIIB Report_lmbenterprisesBIIB Report_lmbenterprises
BIIB Report_lmbenterprises
Lyndon Martin W. Beharry
 
2015 09-13 mcs-apb-spent_grains
2015 09-13 mcs-apb-spent_grains2015 09-13 mcs-apb-spent_grains
2015 09-13 mcs-apb-spent_grains
Lyndon Martin W. Beharry
 
GMIT-Biodiesel-Pro-Forma-Scale50L_02
GMIT-Biodiesel-Pro-Forma-Scale50L_02GMIT-Biodiesel-Pro-Forma-Scale50L_02
GMIT-Biodiesel-Pro-Forma-Scale50L_02
Lyndon Martin W. Beharry
 

Viewers also liked (11)

2016 03-18 sample-graphics
2016 03-18 sample-graphics2016 03-18 sample-graphics
2016 03-18 sample-graphics
 
2016 03-07 mnt-fx-paper
2016 03-07 mnt-fx-paper2016 03-07 mnt-fx-paper
2016 03-07 mnt-fx-paper
 
90 day-ma-gold mnt-regression
90 day-ma-gold mnt-regression90 day-ma-gold mnt-regression
90 day-ma-gold mnt-regression
 
Monte carloanalysisstakeholderinterestot tr_print
Monte carloanalysisstakeholderinterestot tr_printMonte carloanalysisstakeholderinterestot tr_print
Monte carloanalysisstakeholderinterestot tr_print
 
Gmit biodiesel project student presentation
Gmit biodiesel project student presentationGmit biodiesel project student presentation
Gmit biodiesel project student presentation
 
2016 03-18 mongol-forex
2016 03-18 mongol-forex2016 03-18 mongol-forex
2016 03-18 mongol-forex
 
Monte Carlo Analysis of Oyu Tolgoi CashFlows
Monte Carlo Analysis of Oyu Tolgoi CashFlowsMonte Carlo Analysis of Oyu Tolgoi CashFlows
Monte Carlo Analysis of Oyu Tolgoi CashFlows
 
Model of Mongolian Tugrik Foreign Exchange
Model of Mongolian Tugrik Foreign ExchangeModel of Mongolian Tugrik Foreign Exchange
Model of Mongolian Tugrik Foreign Exchange
 
BIIB Report_lmbenterprises
BIIB Report_lmbenterprisesBIIB Report_lmbenterprises
BIIB Report_lmbenterprises
 
2015 09-13 mcs-apb-spent_grains
2015 09-13 mcs-apb-spent_grains2015 09-13 mcs-apb-spent_grains
2015 09-13 mcs-apb-spent_grains
 
GMIT-Biodiesel-Pro-Forma-Scale50L_02
GMIT-Biodiesel-Pro-Forma-Scale50L_02GMIT-Biodiesel-Pro-Forma-Scale50L_02
GMIT-Biodiesel-Pro-Forma-Scale50L_02
 

Similar to 2015 11-24 scheduler

Operations Research Digital Material.pdf
Operations Research Digital Material.pdfOperations Research Digital Material.pdf
Operations Research Digital Material.pdf
TANVEERSINGHSOLANKI
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
smumbahelp
 
A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...
A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...
A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...
Cemal Ardil
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
smumbahelp
 
Computational optimization, modelling and simulation: Recent advances and ove...
Computational optimization, modelling and simulation: Recent advances and ove...Computational optimization, modelling and simulation: Recent advances and ove...
Computational optimization, modelling and simulation: Recent advances and ove...
Xin-She Yang
 
L..p..
L..p..L..p..
L..p..
Dronak Sahu
 
linearprogramingproblemlpp-180729145239.pptx
linearprogramingproblemlpp-180729145239.pptxlinearprogramingproblemlpp-180729145239.pptx
linearprogramingproblemlpp-180729145239.pptx
KOUSHIkPIPPLE
 
Lpp through graphical analysis
Lpp through graphical analysis Lpp through graphical analysis
Lpp through graphical analysis
YuktaBansal1
 
3 Introduction To Linear Programming
3 Introduction To Linear Programming3 Introduction To Linear Programming
3 Introduction To Linear Programming
Dawn Cook
 
J0313052055
J0313052055J0313052055
J0313052055
theijes
 
Fdp session rtu session 1
Fdp session rtu session 1Fdp session rtu session 1
Fdp session rtu session 1
sprsingh1
 
#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf
bizuayehuadmasu1
 
chapter 2 revised.pptx
chapter 2 revised.pptxchapter 2 revised.pptx
chapter 2 revised.pptx
DejeneDay
 
chapter 2 revised.pptx
chapter 2 revised.pptxchapter 2 revised.pptx
chapter 2 revised.pptx
DejeneDay
 
Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...
Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...
Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...
Khalil Alhatab
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
smumbahelp
 
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptxUNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
MinilikDerseh1
 
Ees 300
Ees 300Ees 300
Ees 300
AgwonaMAllan
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
smumbahelp
 
OPS 571 HELP Redefined Education--ops571help.com
OPS 571 HELP Redefined Education--ops571help.comOPS 571 HELP Redefined Education--ops571help.com
OPS 571 HELP Redefined Education--ops571help.com
claric212
 

Similar to 2015 11-24 scheduler (20)

Operations Research Digital Material.pdf
Operations Research Digital Material.pdfOperations Research Digital Material.pdf
Operations Research Digital Material.pdf
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
 
A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...
A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...
A weighted-sum-technique-for-the-joint-optimization-of-performance-and-power-...
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
 
Computational optimization, modelling and simulation: Recent advances and ove...
Computational optimization, modelling and simulation: Recent advances and ove...Computational optimization, modelling and simulation: Recent advances and ove...
Computational optimization, modelling and simulation: Recent advances and ove...
 
L..p..
L..p..L..p..
L..p..
 
linearprogramingproblemlpp-180729145239.pptx
linearprogramingproblemlpp-180729145239.pptxlinearprogramingproblemlpp-180729145239.pptx
linearprogramingproblemlpp-180729145239.pptx
 
Lpp through graphical analysis
Lpp through graphical analysis Lpp through graphical analysis
Lpp through graphical analysis
 
3 Introduction To Linear Programming
3 Introduction To Linear Programming3 Introduction To Linear Programming
3 Introduction To Linear Programming
 
J0313052055
J0313052055J0313052055
J0313052055
 
Fdp session rtu session 1
Fdp session rtu session 1Fdp session rtu session 1
Fdp session rtu session 1
 
#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf
 
chapter 2 revised.pptx
chapter 2 revised.pptxchapter 2 revised.pptx
chapter 2 revised.pptx
 
chapter 2 revised.pptx
chapter 2 revised.pptxchapter 2 revised.pptx
chapter 2 revised.pptx
 
Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...
Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...
Lecture 2 Basic Concepts of Optimal Design and Optimization Techniques final1...
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
 
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptxUNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
 
Ees 300
Ees 300Ees 300
Ees 300
 
Mb0048 operations research
Mb0048  operations researchMb0048  operations research
Mb0048 operations research
 
OPS 571 HELP Redefined Education--ops571help.com
OPS 571 HELP Redefined Education--ops571help.comOPS 571 HELP Redefined Education--ops571help.com
OPS 571 HELP Redefined Education--ops571help.com
 

More from Lyndon Martin W. Beharry

2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf
2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf
2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf
Lyndon Martin W. Beharry
 
2016_IMPC_UB-Proceedings-pdf.pdf
2016_IMPC_UB-Proceedings-pdf.pdf2016_IMPC_UB-Proceedings-pdf.pdf
2016_IMPC_UB-Proceedings-pdf.pdf
Lyndon Martin W. Beharry
 
2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf
2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf
2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-28_LMT-MC-ValuationReport_Draft03.pdf
2022-07-28_LMT-MC-ValuationReport_Draft03.pdf2022-07-28_LMT-MC-ValuationReport_Draft03.pdf
2022-07-28_LMT-MC-ValuationReport_Draft03.pdf
Lyndon Martin W. Beharry
 
2022-07-26_LMT-MC-ValuationReport_Draft02.pdf
2022-07-26_LMT-MC-ValuationReport_Draft02.pdf2022-07-26_LMT-MC-ValuationReport_Draft02.pdf
2022-07-26_LMT-MC-ValuationReport_Draft02.pdf
Lyndon Martin W. Beharry
 
2022-07-26_LMT-MC-ValuationReport_Draft01.pdf
2022-07-26_LMT-MC-ValuationReport_Draft01.pdf2022-07-26_LMT-MC-ValuationReport_Draft01.pdf
2022-07-26_LMT-MC-ValuationReport_Draft01.pdf
Lyndon Martin W. Beharry
 
2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf
2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf
2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf
2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf
2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf
2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf
2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf
Lyndon Martin W. Beharry
 
2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf
2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf
2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf
2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf
2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-15_BIIB_MC-Equity-July-Trials.pdf
2022-07-15_BIIB_MC-Equity-July-Trials.pdf2022-07-15_BIIB_MC-Equity-July-Trials.pdf
2022-07-15_BIIB_MC-Equity-July-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf
2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf
2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf
Lyndon Martin W. Beharry
 
2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf
2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf
2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf
Lyndon Martin W. Beharry
 
2022-BeharryLyndonMartinW-CV-References.pdf
2022-BeharryLyndonMartinW-CV-References.pdf2022-BeharryLyndonMartinW-CV-References.pdf
2022-BeharryLyndonMartinW-CV-References.pdf
Lyndon Martin W. Beharry
 
2022-05-05_AAPL-MC-VLTN.pdf
2022-05-05_AAPL-MC-VLTN.pdf2022-05-05_AAPL-MC-VLTN.pdf
2022-05-05_AAPL-MC-VLTN.pdf
Lyndon Martin W. Beharry
 
2022 01-28 lmt-mc-equity-wkbk-trial
2022 01-28 lmt-mc-equity-wkbk-trial2022 01-28 lmt-mc-equity-wkbk-trial
2022 01-28 lmt-mc-equity-wkbk-trial
Lyndon Martin W. Beharry
 
2022 01-04 l-mw_b_exc-report
2022 01-04 l-mw_b_exc-report2022 01-04 l-mw_b_exc-report
2022 01-04 l-mw_b_exc-report
Lyndon Martin W. Beharry
 
2022 01-03 l-mw_b_exc-report
2022 01-03 l-mw_b_exc-report2022 01-03 l-mw_b_exc-report
2022 01-03 l-mw_b_exc-report
Lyndon Martin W. Beharry
 
2021 12-13 l-mw_b_exc-report
2021 12-13 l-mw_b_exc-report2021 12-13 l-mw_b_exc-report
2021 12-13 l-mw_b_exc-report
Lyndon Martin W. Beharry
 

More from Lyndon Martin W. Beharry (20)

2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf
2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf
2022-03-31_GILD-MC-ValuationReport_Draft03_Signed.pdf
 
2016_IMPC_UB-Proceedings-pdf.pdf
2016_IMPC_UB-Proceedings-pdf.pdf2016_IMPC_UB-Proceedings-pdf.pdf
2016_IMPC_UB-Proceedings-pdf.pdf
 
2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf
2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf
2022-08-21_LANC_Equity-Valuation_1MM-Trials.pdf
 
2022-07-28_LMT-MC-ValuationReport_Draft03.pdf
2022-07-28_LMT-MC-ValuationReport_Draft03.pdf2022-07-28_LMT-MC-ValuationReport_Draft03.pdf
2022-07-28_LMT-MC-ValuationReport_Draft03.pdf
 
2022-07-26_LMT-MC-ValuationReport_Draft02.pdf
2022-07-26_LMT-MC-ValuationReport_Draft02.pdf2022-07-26_LMT-MC-ValuationReport_Draft02.pdf
2022-07-26_LMT-MC-ValuationReport_Draft02.pdf
 
2022-07-26_LMT-MC-ValuationReport_Draft01.pdf
2022-07-26_LMT-MC-ValuationReport_Draft01.pdf2022-07-26_LMT-MC-ValuationReport_Draft01.pdf
2022-07-26_LMT-MC-ValuationReport_Draft01.pdf
 
2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf
2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf
2022-07-22_KHC_MC-Equity-1Million_July-Trials.pdf
 
2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf
2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf
2022-07-20_GILD_MC-Equity-1Million_July-Trials.pdf
 
2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf
2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf
2022-07-19_BBBY_MC-Equity-1Million_July-Trials-SWOT.pdf
 
2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf
2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf
2022-07-18_DVN_MC-Equity-1Million_July-Trials.pdf
 
2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf
2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf
2022-07-16_MMM_MC-Equity-1Million_July-Trials.pdf
 
2022-07-15_BIIB_MC-Equity-July-Trials.pdf
2022-07-15_BIIB_MC-Equity-July-Trials.pdf2022-07-15_BIIB_MC-Equity-July-Trials.pdf
2022-07-15_BIIB_MC-Equity-July-Trials.pdf
 
2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf
2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf
2022-07-15_LMT_MC-Equity_July-2022-Trials.pdf
 
2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf
2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf
2022-07-13_AAPL-MC-Equity_July-2022-Trials.pdf
 
2022-BeharryLyndonMartinW-CV-References.pdf
2022-BeharryLyndonMartinW-CV-References.pdf2022-BeharryLyndonMartinW-CV-References.pdf
2022-BeharryLyndonMartinW-CV-References.pdf
 
2022-05-05_AAPL-MC-VLTN.pdf
2022-05-05_AAPL-MC-VLTN.pdf2022-05-05_AAPL-MC-VLTN.pdf
2022-05-05_AAPL-MC-VLTN.pdf
 
2022 01-28 lmt-mc-equity-wkbk-trial
2022 01-28 lmt-mc-equity-wkbk-trial2022 01-28 lmt-mc-equity-wkbk-trial
2022 01-28 lmt-mc-equity-wkbk-trial
 
2022 01-04 l-mw_b_exc-report
2022 01-04 l-mw_b_exc-report2022 01-04 l-mw_b_exc-report
2022 01-04 l-mw_b_exc-report
 
2022 01-03 l-mw_b_exc-report
2022 01-03 l-mw_b_exc-report2022 01-03 l-mw_b_exc-report
2022 01-03 l-mw_b_exc-report
 
2021 12-13 l-mw_b_exc-report
2021 12-13 l-mw_b_exc-report2021 12-13 l-mw_b_exc-report
2021 12-13 l-mw_b_exc-report
 

Recently uploaded

EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptxEV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
nikshimanasa
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
b0754201
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
paraasingh12 #V08
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
Dwarkadas J Sanghvi College of Engineering
 
Impartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 StandardImpartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 Standard
MuhammadJazib15
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
vmspraneeth
 
Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...
pvpriya2
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
wafawafa52
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
Lubi Valves
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
FULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back EndFULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back End
PreethaV16
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
Paris Salesforce Developer Group
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
sydezfe
 

Recently uploaded (20)

EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptxEV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
EV BMS WITH CHARGE MONITOR AND FIRE DETECTION.pptx
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
 
Impartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 StandardImpartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 Standard
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
 
Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
FULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back EndFULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back End
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
 

2015 11-24 scheduler

  • 1. SCHEDULING ALGORITHM WITH EXCEL VIA OPENSOLVER.ORG PRESENTED BY: LYNDON MARTIN W. BEHARRY NOVEMBER 20, 2015
  • 2. EXECUTIVE SUMMARY Businesses routinely suffer inefficiencies and managers often suffer stress responding to scheduling issues. While many software providers sell solutions catered to different types of enterprise: Schools and Universities, Hospitals, Factories, and other organizations involving labor shift-work; off-the-shelf solutions are notoriously expensive, and sometimes malfunction due to the inability of the underlying personal computer architecture to handle the range of variables within the model. This report looks at one approach to the standard scheduling problem by constructing a model for use by high schools and small colleges/universities. This iteration of the model builds up an integer programming optimization model, aiming to maximize credit hours following constraints: 1) required class hours per course-week; 2) instructor preference for teaching-free days; 3) restricting group-room assignments to Integer: (0,1); 4) restricting number of instructors per group-room to Integer:(0,1); and other constraints. The model searches through two thousand variable fields: 1) ten instructors; with potential to occupy: 2) eight group-room assignments; over 3) five potential course time slots per day; over 4) five days each week – viz. 10 X 8 X 5 X 5. But the model has capability beyond the two thousand variables. For instance, if the system limits a department teaching hours to two time slots per day (or different days), the system could accommodate several departments to minimize scheduling conflicts while maximizing satisfaction for instructors and students. This project uses the robust solver mechanism in OpenSolver, an open source project developed by Andrew Mason in the Department of Engineering Science at the University of Auckland. The standard solver issued with Microsoft Excel is limited to only 200 variable fields. The OpenSolver mechanism does not impose artificial limits to the number of potential variable fields. EXECUTIVE SUMMARY Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 3. CONTENTS | Page 2 of 33 Table of Contents EXECUTIVE SUMMARY.......................................................................................................................................................................................................................1 A REVIEW OF THE STANDARD OPTIMIZATION ROUTINES..................................................................................................................................................3 THE STANDARD SCHEDULING PROBLEM .................................................................................................................................................................................4 THIS INSTANT SCHEDULING MODEL.........................................................................................................................................................................................5 THE MODEL’S CONSTRAINTS .......................................................................................................................................................................................................6 THE BENEFITS OF THE MODEL...................................................................................................................................................................................................9 OTHER MATERIAL01......................................................................................................................................................................................................................10 OTHER MATERIAL03 .....................................................................................................................................................................................................................12 OTHER MATERIAL04 .....................................................................................................................................................................................................................13 APPENDICES .....................................................................................................................................................................................................................................14 APPENDIX I: OPENSOLVER – OPEN SOURCE OPTIMIZATION FOR EXCEL...................................................................................................................15 APPENDIX II:....................................................................................................................................................................................................................................26 APPENDIX III:..................................................................................................................................................................................................................................27 APPENDIX IV:...................................................................................................................................................................................................................................28 APPENDIX V:.....................................................................................................................................................................................................................................29 APPENDIX VI:...................................................................................................................................................................................................................................30 REFERENCES.....................................................................................................................................................................................................................................A CONTENTS Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 4. A REVIEW OF STANDARD OPTIMIZATION ROUTINES | Page 3 of 33 A REVIEW OF THE STANDARD OPTIMIZATION ROUTINES Since the beginnings of human civilization, governments and other authorities have been vexed with issues concerning optimization of resources: Maximize benefit and reduce cost. The military forces of ancient empires, for example, continually aimed to improve scheduling of forces and transport of equipment, food, and fodder. Scheduling logistics, in other words, was and remains paramount for survival on the march to battle; and superior scheduling in logistics and assignment of tasks remains decisive in battle, in business, and in other socio-economic endeavor. Modern mathematics theory has made great strides in computing optimization routines within the two major fields of Linear Programming and Integer Programming. Linear programming (LP; also called linear optimization) seeks the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships.1 Similarly, Integer Programming seeks an optimum solution in which some or all of the variables are restricted to be integers. In many settings the term refers to integer linear programming (ILP), in which the objective function and the constraints (other than the integer constraints) are linear.2 The introduction of the personal computer in the late 1970’s brought optimization routines into the domain of non- academic persons. MatLab, Microsoft Excel, Palisades Risk Optimizer, and other software packages bring the discipline into the range of anyone with the discipline to learn the theory and some rudimentary mathematic formulae to outline the optimization model and constraints. Linear and Integer Optimization algorithms must translate a real-world situation into a mathematical model. For instance: XYZ building supply Company has two locations. Two customers submit orders for 3/4-inch plywood. Customer A requests fifty sheets and Customer B needs seventy sheets. XYZ’s east-side warehouse stores inventory of eighty sheets; its west-side warehouse has forty-five sheets. Delivery costs per sheet: $0.50 from the eastern warehouse to Customer A, $0.60 from the eastern warehouse to Customer B, $0.40 from the western warehouse to Customer A, and $0.55 from the western warehouse to Customer B. The equation: C = 0.5Ae + 0.6Be + 0.4Aw + 0.55Bw3 shipped from east warehouse to Customer A: Ae shipped from west warehouse to Customer A: Aw shipped from east warehouse to Customer B: Be shipped from west warehouse to Customer B: Bw Finally, the tandem of optimization formula and constraint defines a range of potential solutions, typically a polyhedron. If one is testing for a local minimum point, subject to constraints, one views the polyhedron as convex. Conversely, if seeking a maximum point, one views the polyhedron as concave. Integer optimization routines are a variant of linear programming, but with the added constraint that the feasible region must only offer integer values of solutions, typically binary 0 or 1. Algorithms which optimize scheduling of persons, machines, or equipment follow the Integer Optimization binary 0 or 1 model. 1 From: https://en.wikipedia.org/wiki/Linear_programming 2 From: https://en.wikipedia.org/wiki/Integer_programming 3 From http://www.purplemath.com/modules/linprog5.htm -3 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 5. THE STANDARD SCHEDULING PROBLEM | Page 4 of 33 THE STANDARD SCHEDULING PROBLEM In general, workplace scheduling problems evolve out of the nurse scheduling problem, an optimization query aiming to assign shifts to workers subject to a range of constraints: a) which shift (i.e. day shift, night shift, early morning shift, swing shift); b) number of hours worked per day; c) number of days worked per week; d) maximum number of hours per week; e) employee preference for rest days; f) employee preference for room; etc. Similarly, job shop scheduling involves optimization of job assignment, contingent upon resource availability during particular daily intervals: the system requires n jobs J1, J2, ..., Jn of varying sizes, scheduled on m identical machines, while minimizing the time duration of the entirety. This instant Course Scheduling routine aims to combine the nurse schedule optimization and the job shop optimization algorithms, where the worker schedule optimizer aims to maximize satisfaction following worker preferences for shifts, room assignments, and non-teaching days; and the job-shop optimizer seeks to maximize usage of room-group resources, subject to minimizing room conflicts and total hours, subject to satisfying requirements for contact hours. -4 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 6. THIS INSTANT SCHEDULING MODEL | Page 5 of 33 THIS INSTANT SCHEDULING MODEL This instant scheduling optimizer constructs a relatively simple model to assist schools schedule course group and room assignments. The optimizer aims to: 1. minimize group-room conflicts; 2. maximize instructor satisfaction for preference for room and time; and 3. satisfy constraints for credit hours. The developer built this optimizer using Microsoft Excel. Microsoft Excel is the current-day standard for business spreadsheet and finance; but increasingly is applied to science and engineering regimens. And even though the standard Excel Solver optimization routine limits variable assignments to an arbitrary 200 potential fields, OpenSolver is Excel friendly, and OpenSolver imposes no artificial constraints to variable fields. The combination of Excel and OpenSolver provides a robust and low- cost alternative for creating optimization routines of great design complexity, along the extreme ranges of functionality. In overview, this scheduling model links student Groups to certain Rooms; hence – a Preparatory Group One might be linked to a Room 101. This structure aims to satisfy instructor preference for Room. And this structure also imposes a barrier to whether the Preparatory Group One could potentially be scheduled twice during the same time slot. Bear in mind: the schedule shows availability of all rooms at each time. Hence, during the final phase of scheduling, it is quite simple to adjust a room assignment for the given group to another open room. But for simplicity in initial calculation, the algorithm restricts each Group to a certain room. Secondly, the model permits the scheduler to honor instructor preferences for non-teach days, to satisfy such requirements as outside seminars, applied research, faculty conferences, office hours, and other matters. At present, the user must input the constraint directly within the solver constraint profile. Lastly, the model aims to satisfy all of the following criteria: 1. Maximize total teaching hours per week, subject to the required inputs; 2. Restrict Group-Room use to 0 or 1 per time slot. In other words, no two Groups may occupy the same room at the same time slot; 3. Restrict Instructor-Room use to 0 or 1 per time slot. In other words, no two Instructors may occupy the same room at the same time slot; 4. Maximize Instructor satisfaction for non-teach days; 5. Restrict daily teaching periods to some limit: 1, 2, or 3 class periods per Instructor day (obviously to maximize Instructor preference, but also to avoid stress and burn-out); 6. Minimize the potential for errors, and usage of time for administrators involved with scheduling. -5 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 7. THE MODEL’S CONSTRAINTS | Page 6 of 33 THE MODEL’S CONSTRAINTS The functional worksheet Schedule Solver contains a comment description in cell E2: This is the functional Solver worksheet. The user must input the course information on Schedule Inputs Worksheet, and run the Solver routine here. Set the following parameters manually, with course credit hours. {The system will automatically draw class assignments by teacher from Schedule Inputs Worksheet. Type in total weekly time slots for each course assignment (i.e. 2, 3, or 4 for each class assignment)}: $E$87:$L87 $E$92:$L92 $E$97:$L97 $E$102:$L102 $E$107:$L107 $E$112:$L112 $E$117:$L117 $E$122:$L122 $E$127:$L127 $E$132:$L132 then run Solver under the following parameters: Set $BD$21 to Max {Possible class hours subject to constraint} Changing $E$10:$AR$59 {{Run the Macro CTRL +SHIFT R from Schedule Inputs Worksheet to clear the range} Subject to constraints: Instructor Days Off {Set these constraints according to Instructor/Facility Requirements} For Example: $CC$12=0 $CD$11=0 $CE$10=0 Set the schedule to Integer "0" (not occupied) or "1" (occupied) : $E$10:$AR$59<=1 $E$10:$AR$59=OR(0,1) $E$10:$AR$59=Integer Set Instructor Classes per Week to Max allowed: $BD$10:$BD$119 = $BE$10:$BE$19 $BD$10:$BD$19>=$BF10:$BF$19 $BQ$10:$BU$59<=1 $CC$10:$CG$19<=$CH$6 Constrain each Room to Maximum one Instructor Group per Time Slot $E$76:AZ$80<=1 Set classes Taught to Classes Required -6 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 8. THE MODEL’S CONSTRAINTS | Page 7 of 33 $E$86:$L$86=$E$87:$L$87 $E$91:$L91=$E$92:$L92 $E$96:$L96=$E$97:$L$97 $E$101:$L$101=$E$102:$L$102 $E$106:$L$106=$E$107:$L$107 $E$111:$L$111=$E$112:$L$112 $E$116:$L$116=$E$117:$L$117 $E$121:$L$121=$E$122:$L$122 $E$126:$L$126=$E$127:$L$127 $E$131:$L$131=$E$132:$L$132 THE SPECIFICS The user must input all course and teacher data within the worksheet =Schedule Inputs!. Teacher information ($C$7:$D$16), list of available rooms ($L$7:$L$14), and course information By Teacher and Group-Room ($R$7:$S$166), and Student Group Names ($U$7; $U$9, $U$11, $U$13, $U$15, $U$17, $U$19, $U$21) Though this iteration of the Optimization model accommodates only 8 possible Group-Room assignments, one may stretch the functionality by 1) limiting the number of Rooms available for these 8 Groups; 2) constraining days or times available for these Groups; or a combination. Hence, by limiting these groups to a certain four rooms, for example; or by scheduling another set of groups within another set of rooms, it is easy to Optimize for larger assortments of groups (viz. by rooms allocated by Department, or by major field of study, for example – with certain time slots allocated for overlap, in the event of electives). This model creates matrices for each of ten potential instructor sets including within the worksheet =Schedule Solver!: 1. A list of each of ten potential Teachers; 2. Occupying one of 8 rooms for each of six potential working days; a. Monday: Columns $E:$L b. Tuesday: Columns $M:$T c. Wednesday: Columns $U:$AB d. Thursday: Columns $AC:$AJ e. Friday: Columns $AK:$AR f. Saturday: Columns $AS:$AZ 3. Over each of five time slots each for each teacher-day a. Teacher 01: Rows $10:$14 b. Teacher 02: Rows $15:$19 c. Teacher 03: Rows $20:$24 d. Teacher 04: Rows $25:$29 e. Teacher 05: Rows $30:$34 f. Teacher 06: Rows $35:$39 g. Teacher 07: Rows $40:$44 h. Teacher 08: Rows $45:$49 i. Teacher 09: Rows $50:$54 j. Teacher 10: Rows $55:$59 4. Sums of Group-Room per Teacher-Day a. Teacher 01: =Sum(E14:E19) and etc. -7 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 9. THE MODEL’S CONSTRAINTS | Page 8 of 33 5. The Integer Optimization seeks to isolate the Integer Value (0,1) across each Teacher-Room time slot matrix so that Weekly Group-Room time slots Per Teacher-Room is equivalent to the required hours per Group-Room course; in other words a. Teacher 01 $E$86:$N$86 b. Teacher 02 $E$91:$N$91 c. Teacher 03 $E$96:$N$96 d. Teacher 04 $E$101:$N$101 e. Teacher 05 $E$106:$N$106 f. Teacher 06 $E$111:$N$111 g. Teacher 07 $E$116:$N$116 h. Teacher 08 $E$121:$N$121 i. Teacher 09 $E$126:$N$126 j. Teacher 10 $E$131:$N$131 1. Where, for instance, $E$86 defines the constraint for weekly Teacher-Room time slots per Group-Room course =+SUM(E10,E15,E20,E25,E30,E35,E40,E45,E50,E55) and etc. a. Must equal $E$87 (Required time-slots per Course Week); 6. Additional Matrix: $E$63:$AZ$72 calculates Teacher-Room occupancy by day {i.e. =+SUM(E10:E14), and etc.}; 7. Additional Matrix: $E$76:$AZ$80 calculates Teacher-Room and Group-Room occupancy by hour {i.e. =+SUM(E10,E15,E20,E25,E30,E35,E40,E45,E50,E55), and etc.}; Constrain each point to Integer (0,1) so that only One Teacher and only One Group may occupy any given room any time slot; 8. Additional Matrix: $CC$10:$CH$19 defines the constraint for Teacher preference for non- teach days: {Monday, Teacher 01 =SUM(E10:L14), and etc.} 9. Additional Matrix: $BD$9:$BD$18 defines the time slots taught per week by teacher {Teacher 01 =+SUM(E10:AZ14), and etc.} 10. The Optimization routine aims to maximize total Teacher Hours Taught each week: $BD$21, while satisfying the defined constraints; -8 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 10. THE BENEFITS OF THE MODEL | Page 9 of 33 THE BENEFITS OF THE MODEL This scheduler model should reduce time constraints to administrators in scheduling Group-Room assignments for studies. In addition, the model should provide sufficient leeway for the user to satisfy many Instructor preferences for room and times. Lastly, the model offers sufficient flexibility for the user to schedule special study days, including after hours and Saturdays. -9 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 11. OTHER MATERIAL01 | Page 10 of 33 OTHER MATERIAL01 Blah blah blah. -10 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 12. OTHER MATERIAL02 | Page 11 of 33 OTHER MATERIAL02 Blah blah blah. -11 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 13. OTHER MATERIAL03 | Page 12 of 33 OTHER MATERIAL03 Blah…Blah…Blah -12 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 14. OTHER MATERIAL04 | Page 13 of 33 OTHER MATERIAL04 Blah blah blah. -13 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 15. APPENDICES | Page 14 of 33 APPENDICES -14 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 16. APPENDIX I: OPEN SOLVER: OPEN SOURCE OPTIMIZATION FOR EXCEL| Page 15 of 33 APPENDIX I: OPENSOLVER – OPEN SOURCE OPTIMIZATION FOR EXCEL -15 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 17. OpenSolver: Open Source Optimisation for Excel www.opensolver.org Andrew J Mason Department of Engineering Science University of Auckland New Zealand a.mason@auckland.ac.nz Iain Dunning Department of Engineering Science University of Auckland New Zealand Abstract We have developed an open source Excel add-in, known as OpenSolver, that allows linear and integer programming models developed in Excel to be solved using the COIN-OR CBC solver. This paper describes OpenSolver‟s development and features. Key words: OpenSolver, Open Source, Excel, Solver, Add-in, COIN-OR, CBC. 1 Introduction Microsoft Excel (Wikipedia, 2010) contains a built-in optimisation tool known as Solver (Frontline, 2010). Solver is developed by Frontline Systems, who provide the software to Microsoft. Using Solver, a user can develop a spreadsheet optimisation model and then solve it to find an optimal solution. Many introductory optimisation courses use Solver and Excel to introduce students to modelling and optimisation. Unfortunately, when students apply their optimisation skills to real-world problems, they often discover that the size of problem Solver can optimise is artificially limited to no more than 200 decision variables (Solver Limits, 2010), and that they need to upgrade Solver to one of Frontline‟s more expensive products, such as Premium Solver. (Beta versions of the latest Excel version, Excel 2010, have a smaller variable limit (Dunning 2010); the current variable limit in shipping versions of Excel 2010 has not been confirmed.) We have recently been involved in the development of a large staff scheduling model. This model was developed as part of a consultancy exercise where it was important that the model could be used and scrutinised by a range of different users. Satisfying this requirement using commercial products would have been logistically difficult and expensive. For a number of years, a group known as COIN-OR (Computational Infrastructure for OR) (COIN-OR, 2010) have been developing and promoting open source optimisation software, including the linear/integer programming optimiser known as Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 181
  • 18. CBC (CBC, 2010). While typically not as fast as its commercial equivalents, the COIN- OR software has gained a reputation for quality and reliability and is now widely used in industrial applications. The combination of Excel and COIN-OR is a compelling one, and appeared to be a perfect solution for our large staff scheduling model. Unfortunately, we were unable to find any software that allowed Excel spreadsheet models to be solved using any of the COIN-OR optimisers. A decision was taken to develop such software to progress the scheduling project. This decision eventually led to the development of OpenSolver, a freely available Excel add-in that allows existing spreadsheet linear and integer programming models to be solved using the COIN-OR CBC optimiser 2 Solver Operation We start by briefly describing how optimisation models are built using Solver. Readers familiar with Solver may wish to skip this section. A typical linear programming model is shown in Figure 1. The decision variables are given in cells C2:E2. Cell G4 defines the objective function using a „sumproduct‟ formula defined in terms of the decision variables and the objective coefficients in cells C4:E4. Each of the constraints are defined in terms of a constraint left hand side (LHS) in G6:G9 and right hand side (RHS) in I6:I9. Note that the „min‟ in B4 and the constraint relations in H6:H9 are for display purposes only, and are not used by Solver. Figure 1: A typical spreadsheet optimization model. Many models do not follow this layout, but instead ‘hide’ the model inside the spreadsheet formulae. Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 182
  • 19. Figure 2 shows how this model is set up using Solver. The decision variables, objective function cell and constraint left and right hand side cells must all be specified by the user within Solver. Note that a constraint can either consist of two multi-cell ranges of the same dimension, such as A4:A8 >= B4:B8, or a multi-cell range and a constant or single-cell range such as A4:A8 <= 8. Integer and binary restrictions on the variables can also be specified using constraints. Figure 2: Solver setup for the model above. The means by which Solver stores a model does not appear to be documented. However, a Google search eventually uncovered a comment that Solver uses hidden named ranges (see, e.g., Walkenbach 2010). The Excel Name Manager add-in (Pieterse, 2010), developed by Jan Karel Pieterse of Decision Models UK, was then used to reveal this hidden data. The names used by Solver are documented in Appendix 1. OpenSolver uses these named ranges to determine the decision variables, the objective function and LHS and RHS ranges of each constraint. 3 Constructing a Model from Excel Ranges We wish to analyse the spreadsheet data to build an optimisation model which has equations of the form: Min/max c1x1+c2x2+... cnxn Subject to a11x1+a12x2+... a1nxn ≤/=/≥ b1 a21x1+a22x2+... a2nxn ≤/=/≥ b2 ... am1x1+am2x2+... amnxn ≤/=/≥ bm x1, x2, ..., xn >= 0 Assuming the model is linear, then the Excel data can be thought of as defining an objective function given by Obj(x) = c0+c1x1+c2x2+...cnxn where x=(x1, x2, ..., xn) are the decision variable values, Obj(x) is the objective function cell value, and c0 is a constant. Similarly, each constraint equation i is defined in Excel by Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 183
  • 20. LHSi(x) ≤/=/≥ RHSi(x)  LHSi(x) - RHSi(x) ≤/=/≥ 0, i=1, 2, ..., m where LHSi(x) and RHSi(x) are the cell values for the LHS and RHS of constraint i respectively given decision variable values x. Because Solver allows both LHSi(x) and RHSi(x) to be expressions, we assume that both of these are linear functions of the decision variables. Thus, we have ai1x1+ai2x2+...ainxn- bi = LHSi(x) - RHSi(x), i=1, 2, ..., m. OpenSolver determines the coefficients for the objective function and constraints through numerical differentiation. First, all the decision variables are set to zero, x=x0 =(0,0,...,0) giving: c0=Obj(x0 ) bi = RHSi(x0 ) - LHSi(x0 ), i=1, 2, ..., m Then, each variable xj is set to 1 in turn, giving decision variables values x=xj , where xj =(x1 j , x2 j , ..., xn j ) is a unit vector with the single non-zero element xj j =1. Then, the spreadsheet is recalculated, and the change in the objective and LHS and RHS of each constraint recorded. This allows us to calculate the following coefficients: cj = Obj(xj )-c0 aij = LHS(xj )-RHS(xj )+bi, i=1, 2, ..., m This process assumes that these equations are indeed all linear. OpenSolver does not currently check this, but will do so in a future release. The speed of this process is set by the speed at which Excel can re-calculate the spreadsheet. As an example, the large staff scheduling model discussed earlier has 532 variables and 1909 constraints, and took 22s to build (and just 1 second to solve) on an Intel Core-2 Duo 2.66GHz laptop. There are a number of different Excel calculation options available, such as just recalculating individual cells or recalculating the full worksheet or workbook. OpenSolver currently does a full workbook recalculation as the other options did not appear to give any faster results. In our model form above, we have specified that the decision variables are all non- negative. This assumption is also made by the COIN-OR CBC solver we use. To ensure this is the case, OpenSolver requires the user to set Solver‟s “Assume Non-Negative” option. OpenSolver cannot currently solve models for which this is not the case. OpenSolver also requires that Solver‟s “Assume Linear Model” is set. 4 Integration with COIN-OR CBC Solver OpenSolver uses the COIN-OR CBC linear/integer programming solver to generate its solutions. While this solver can be called directly as a DLL, OpenSolver adopts the simpler process of writing a „.lp‟ file that contains the model definition and then calling the command line version of CBC with this file as an input argument. CBC then produces an output file which is read back by OpenSolver. If a solution has been found, OpenSolver uses this to set the values of the decision variable cells. Any infeasibility or unboundedness, or early termination caused by time limits, is reported using a dialog. Solver provides the user with a number of solution options. Of these, the “Max Time” option is passed to CBC (using the CBC parameter “-seconds”), and the “Tolerance” option is passed (using “-ratioGap”) to set the percentage tolerance required for CBC integer solutions. Other CBC options can be set by creating a two column Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 184
  • 21. range named “OpenSolver_CBCParameters”on the spreadsheet that contains CBC parameter names and values. If the “Show Iteration Results” option is set, OpenSolver displays the CBC command line window while CBC is running. (OpenSolver does not provide the step- by-step functionality that this option enables in Solver.) 5 Excel Integration and User Interface OpenSolver is coded in Visual Basic for Applications and runs as an Excel add-in. The add-in presents the user with new OpenSolver controls using the standard ribbon interface. These OpenSolver buttons and menus are shown in Figure 3 and Figure 4. Figure 3: OpenSolver’s buttons and menu appear in Excel's Data ribbon. Figure 4: OpenSolver’s menu gives access to its more advanced options. OpenSolver is downloaded as a single .zip file which when expanded gives a folder containing the CBC files and the OpenSolver.xlam add-in. Double clicking OpenSolver.xlam loads OpenSolver and adds the new OpenSolver buttons and menu to Excel. OpenSolver then remains available until Excel is quit. If required, the OpenSolver and CBC files can be copied to the appropriate Office folder to ensure OpenSolver is available every time Excel is launched. Note that no installation program needs to be run to install either OpenSolver or CBC. 6 Performance We have found OpenSolver‟s performance to be similar or better than Solver‟s. CBC appears to be a more modern optimizer than Solver‟s, and so gives much improved Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 185
  • 22. performance on some difficult problems. For example, large knapsack problems which take hours with Solver are solved instantly using OpenSolver, thanks to the newer techniques such as problem strengthening and preprocessing used by CBC. 7 Model Visualisation To view an optimisation model developed using the built-in Solver, the user needs to check both the equations on the spreadsheet and the model formulation as entered into Solver. This separation between the equations and the model form makes checking and debugging difficult. OpenSolver provides a novel solution to this in the form of direct model visualisation on the spreadsheet. As Figure 5 shows, OpenSolver can annotate a spreadsheet to display a model as follows: • The objective cell is highlighted and labelled min or max • The adjustable cells are shaded. Binary and integer decision variable cells are labelled „b‟ and „i‟ respectively. • Each constraint is highlighted, and its sense (≥,≤, or =) shown (using a „>‟, „<‟ or „=‟ respectively). We have found this model visualisation to be very useful for checking large models, and believe it will be very useful debugging tool for students learning to use Solver. Figure 5: OpenSolver can display an optimisation model directly on the spreadsheet. The screenshot on the left shows OpenSolver’s highlighting for the model given earlier, while the screenshot on the right illustrates OpenSolver’s highlighting for several other common model representations. 8 Automatic Model Construction The original design of OpenSolver envisaged the continued use of Solver to build (but not solve) the optimisation models. However, we have developed additional functionality that allows OpenSolver to build Solver-compatible models itself without requiring any user-interaction with Solver. Our approach builds on the philosophy that the model should be fully documented on the spreadsheet. Thus, we require that the spreadsheet identifies the objective sense (using the keyword „min‟ or „max‟ or variants of these), and gives the sense (>=,<=, or =) of each constraint. Our example problem shown in Figure 1 satisfies these requirements. In our teaching, we have always recommended this model layout as good practice, and note that many textbooks follow a similar approach. Our keyword-based approach creates only a minimal additional Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 186
  • 23. burden for the user but, by allowing the model construction process to be automated, delivers what we consider to be a significantly improved modelling experience. To identify the model, OpenSolver starts by searching for a cell containing the text `min‟ or „max‟ (or variants on these). It then searches the cells in the vicinity of this min/max cell to find a cell containing a formula (giving preference to any cell containing a „sumproduct‟ formula); if one is found, this is assumed to define the objective function. The user is then asked to confirm that this is the objective function cell, or manually set or change the objective function cell. After identifying the objective function cell, OpenSolver then tries to locate the decision variables. Because the objective function depends on the decision variable cells, these decision cells must be contained in the set of the objective function‟s „precedent‟ cells (i.e. the cells referred to by the objective function formula, either directly or indirectly through other intermediate cells). However, if a sumproduct is used, for example, these precedents will also contain the objective function coefficients. OpenSolver attempts to distinguish between decision variables and objective function coefficients by looking at the number of dependent cells. An objective function coefficient will typically only have one dependent cell, being the objective function cell. However, decision variables will have many dependents as they feature in both the objective function cell and in the constraint cells. Thus, OpenSolver examines each objective function precedent cell, and keeps as decision variables those cells with more than 1 successor. The resultant set of decision variables is presented to the user to confirm or change. The next step is to identify any binary or integer restrictions on the decision variables. These are assumed to be indicated in the spreadsheet by the text „binary‟ or „integer‟ (and variants of these) entered in the cell beneath any restricted decision variable. The final requirement is to determine the constraints. OpenSolver considers all cells (except for the objective function cell) that are successors of the decision variables, and searches in the vicinity of each of these for one of the symbols „<=‟, „<‟, „=‟, „>=‟, or „>‟. A constraint is created for each occurrence of these symbols. As shown in , OpenSolver allows the user to correct mistakes made when determining the objective function cell, the decision variable cells, and/or any binary or integer restrictions on these cells. Errors in the constraints currently need to be corrected using Solver. Once the model has been confirmed (and/or corrected) by the user, it is constructed and stored using the standard Solver named ranges, and thus can be solved using Solver or OpenSolver. It can also be edited using Solver. Testing on a range of spreadsheet models has shown that the auto-model algorithms work correctly for commonly taught model layouts including tabular models such as transportation. The AutoModel feature has been developed by Iain Dunning, a student in the Engineering Science department at the University of Auckland 9 Advanced Features OpenSolver offers a number of features for advanced users, including:  The ability to easily solve an LP relaxation,  Interaction with the CBC solver via the command line,  Faster running using „Quick Solve‟ when repeatedly solving the same problem with a succession of different right hand sides, and  Viewing of the .lp problem file and CBC‟s solution file Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 187
  • 24. Note that our large scheduling problem had to be solved repeatedly for 52 different right hand side values. The Quick Solve feature was developed to remove the need to repeatedly analyse the spreadsheet to determine the model coefficients. Using Quick Solve reduced the scheduling problem‟s run times for from one hour to one minute. Figure 6: The auto-model dialog, shown here for the model in Figure 1, guides the user through the model building steps, allowing them to correct any mistakes made by OpenSolver’s auto-model algorithms. 10 User Feedback As at 10 November 2010, OpenSolver has been downloaded over 750 times since 16 July 2010. Since 20 June 2010, the OpenSolver web site, www.opensolver.org, has Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 188
  • 25. served over 6000 page views to over 1800 visitors. Much of this interest can be attributed to OpenSolver being featured on Mike Trick‟s OR blog (Trick, 2010) and mentioned on the “IEOR Tools” website (Larry, 2010). It is difficult to determine how OpenSolver is being used, but a comment by Joel Sokol from Georgia Tech on the OpenSolver web site describes one use of OpenSolver as follows: Thanks, Andrew! I’m using OpenSolver on a project I’m doing for a Major League Baseball team, and it’s exactly what I needed. It lets the team use their preferred platform, creates and solves their LPs very quickly, and doesn’t constrain them with any variable limits. Thanks again! - Joel Sokol, August 11, 2010 11 Conclusions We have shown that it is possible to leverage the COIN-OR software to provide users with a new open source option for delivering spreadsheet-based operations research solutions. While our software is compatible with Solver, it also provides novel tools for visualising and building spreadsheet models that we hope will benefit both students and practitioners. References CBC, 8 November 2010, https://projects.coin-or.org/Cbc COIN-OR, 8 November 2010, www.coin-or.org Dunning, I., personal communication, August 2010 FrontLine, 8 November 2010, www.solver.org Larry, 7 July 2010, http://industrialengineertools.blogspot.com/2010/07/open-source- solver-for-excel.html Pieterse, J.K., 6 November 2010, http://www.jkp-ads.com/officemarketplacenm-en.asp Solver Limits, 8 November 2010, http://www.solver.com/suppstdsizelim.htm Trick, M., 7 July 2010, http://mat.tepper.cmu.edu/blog/?p=1167 Walkenbach, J., “Excel 2010 Formulas”, p75, Wiley Publishing, Indiana, 2010, online on 7 November 2010 at Google Books. Wikipedia, “Microsoft Excel”, 7 November 2010, http://en.wikipedia.org/wiki/Microsoft_Excel Appendix 1: Solver’s internal model representation under Excel 2010 and earlier versions. (This is a partial listing for Excel 2010.) Name1 Interpretation Example Values2 solver_lhs1, solver_lhs2, ...5 A range defining the left hand side of constraints 1, 2, ..., =Sheet1!$G$6:$G$7 =Sheet1!$G$8 solver_rhs1, solver_rhs2, ...5 The right hand side of constraints 1, 2, ... defined by either a range or a constant value or one of the keywords: integer, binary =Sheet1!$I$6:$I$7 =7 solver_rel1, solver_rel2, ...5 The nature of the constraint, being one of the following integer values: 1: <=, 2: =, 3: >=, 4: integer, 5: binary =1 =binary solver_num5 The number of constraints. =2 solver_adj A range defining the decision variables (termed adjustable cells) =Sheet1!$C$2:$E$2 Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 189
  • 26. solver_lin3,7 1 if the user has ticked “Assume linear model”, 2 if this is unchecked. =1 =2 solver_neg3 1 if the user has ticked “Assume non- negative”, 2 if this is unchecked. =1 =2 solver_nwt Solver‟s “Search” option value, 1=”Newton”, 2=”Conjugate” =1 solver_pre Solver‟s “Precision” option value =0.000001 solver_cvg Solver‟s “Convergence” option value =0.0001 solver_drv Solver‟s “Derivative” option value, 1=”Forward”, 2=”Central” =1 solver_est Solver‟s “Estimates” option value, 1=”Tangent”, 2=”Quadratic” =1 solver_itr Solver‟s “Iterations” option value, the maximum number of iterations (branch and bound nodes?) Solver can run for before the user is alerted =100 solver_scl Solver‟s “Use Automatic Scaling” option value, 1=true, 2=false =2 solver_sho8 Solver‟s “Show Iteration Results” option value, 1=true, 2=false =2 solver_tim Solver‟s “Max time” option value, the maximum number of seconds Solver can run for before the user is alerted =100 solver_tol Solver‟s “Tolerance” option value, stored as a fraction and displayed to the user as a percentage value. =0.05 solver_typ Objective sense, as in “Set target cell to”: 1=”Max”, 2=”Min”, 3=”Value of” =2 solver_val If solver_typ=3, this gives the target value for the objective function. =0 solver_ver8 Solver version.(=3 in Excel 2010) =3 solver_eng8 Engine. 1=Nonlinear, 2=Simplex, 3=Evolutionary =2 Notes: 1: The name is local to the sheet, and so is prefixed by the sheet name, e.g. Sheet1!solver_lhs1. 2: The value always begins with an “=”, e.g. “=2” or “=Sheet1!$C$2:$E$2” 3: Models built using older versions of Solver may not have this defined. 4: Some values may be missing. For example, a model can be defined that has no decision variables. 5: solver_num may be less than the apparent number of constraints. This occurs when constraints are deleted because Solver does not delete the unused solver_lhs, solver_rhs and solver_rel names. 6: References such as =Sheet1!#REF! can occur in the current model if cells have been deleted. These are detected by OpenSolver. 7: Excel 2010 removes the “Assume linear model” option, and instead asks the user to choose the specific solver (linear solver, non-linear solver or genetic algorithm). 8: Not defined in versions before Excel 2010 Proceedings of the 45th Annual Conference of the ORSNZ, November 2010 190
  • 27. APPENDIX II: | Page 26 of 33 APPENDIX II: -26 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 28. APPENDIX III: | Page 27 of 33 APPENDIX III: -27 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 29. APPENDIX IV: | Page 28 of 33 APPENDIX IV: -28 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 30. APPENDIX V: | Page 29 of 33 APPENDIX V: -29 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 31. APPENDIX VI: | Page 30 of 33 APPENDIX VI: -30 of 33- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 32. REFERENCES | PAGE A REFERENCES Mason, A.J., “OpenSolver – An Open Source Add-in to Solve Linear and Integer Progammes in Excel”, Operations Research Proceedings 2011, eds. Klatte, Diethard, Lüthi, Hans-Jakob, Schmedders, Karl, Springer Berlin Heidelberg pp 401-406, 2012, http://dx.doi.org/10.1007/978-3-642-29210-1_64, http://opensolver.org . - REFERENCES: A- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM
  • 33. REFERENCES | PAGE B GRAPHICS: TBD - REFERENCES: B- Scheduling Optimization | 2015-11-20_Scheduler.docx | 11/24/2015 10:29 AM