Overview
Operations research courses and research projects share a common pipeline: understand the decision, formulate the mathematical program, implement it in a modeling language or solver, verify the solution and analyze its sensitivity. Most difficulties arise in formulation, for example representing either-or conditions, fixed costs or logical rules with binary variables, or writing constraints that are correct but weak for the solver.
We cover linear programming, integer and mixed-integer programming, network flows, nonlinear and stochastic programming, and the classic OR application areas: production planning, transportation and facility location, scheduling, vehicle routing and inventory. Implementation can be in LINGO, Gurobi through Python (gurobipy) or other interfaces, Pyomo, PuLP, AMPL-style modeling, or Excel Solver.
For students we teach formulation, solution methods and interpretation using parallel examples and review models you write. For researchers and professionals we can formulate and implement models, tune solver performance and help you present the results.
Who it’s for and the problems it solves
This is for you if you are…
- Undergraduate and master's students in operations research, industrial engineering, management science or supply chain courses
- PhD researchers developing optimization models for logistics, energy, healthcare or scheduling
- Business analytics students using Excel Solver or Python for prescriptive analytics
- Professionals prototyping planning or scheduling models before building production tools
- Researchers with a model that is infeasible, unbounded or too slow to solve
Common problems we help with
- You can describe the decision in words but cannot write the constraints
- Big-M constraints make your model slow or numerically unstable
- The solver reports 'infeasible' and gives no hint why
- You do not know how to read shadow prices, reduced costs or ranging reports
- Your MILP runs for hours with a large optimality gap
What’s included — and what isn’t
Included
- Formulation: decision variables, objective functions and constraints from verbal problem statements
- Linear programming: graphical method, simplex method, duality, complementary slackness and sensitivity analysis
- Integer and mixed-integer programming: binary logic, fixed-charge and either-or constraints, big-M and indicator constraints, branch and bound, cutting planes
- Network models: transportation, assignment, shortest path, maximum flow and minimum cost flow
- Nonlinear, quadratic and convex optimization basics, and when a problem can be linearized
- Stochastic and robust optimization concepts, including two-stage models with recourse
- Heuristics and metaheuristics (greedy, local search, simulated annealing, genetic algorithms) when exact methods are impractical
- Solver use: LINGO models and set notation, Gurobi via gurobipy, Pyomo or PuLP, Excel Solver
- Debugging: irreducible infeasible subsystem (IIS) analysis, unboundedness checks, numerical scaling
- Performance: tighter formulations, symmetry breaking, solver parameters, MIP gap and time limits
Not included
- Solving graded OR assignments, case studies or exams for students
- Supplying or sharing solver licenses; you need a valid academic or commercial license
- Deploying and maintaining production optimization systems
What you receive
- Formulation document
- A clear mathematical statement of sets, parameters, variables, objective and constraints, with each constraint explained in words.
- Model code
- For research and professional clients: LINGO, gurobipy, Pyomo or Excel Solver implementation with data kept separate from model logic.
- Solution and sensitivity report
- Optimal decisions, objective value, binding constraints, shadow prices or MIP gap, and what-if scenarios interpreted in plain language.
- Tutoring materials
- For students, parallel formulation exercises with solutions and notes on the solution methods your course covers.
- Performance notes
- Where speed matters, a record of formulation changes and solver settings tried and their effect on solve time.
How it works
Understand the decision
We discuss what is being decided, what limits the decision and how success is measured, using your data or case description.
Formulate
We write the model mathematically and check it on a tiny instance that can be solved by hand or inspection.
Implement and verify
The model is coded in your chosen tool; we check feasibility, compare with the small instance and test edge cases.
Analyze
We examine sensitivity, scenarios and, for MILPs, solution quality and gaps.
Explain
A walkthrough helps you interpret and present the results yourself.
Solvers and modeling approaches
- Gurobi
- Commercial LP, MILP, QP and related solver with Python (gurobipy), C, C++, Java, .NET, MATLAB and R interfaces. Academic licenses are available at no cost to eligible students, faculty and staff at degree-granting institutions for non-commercial use; check Gurobi's academic page for current license types.
- LINGO
- LINDO Systems' modeling language and solver suite for linear, nonlinear, quadratic, integer, stochastic and global optimization, popular in teaching for its compact set-based syntax.
- Open-source stack
- Pyomo or PuLP with HiGHS, CBC or GLPK, useful when licenses are not available or results must be fully reproducible by others.
- Excel Solver
- Simplex LP, GRG Nonlinear and Evolutionary engines, common in business courses, with sensitivity reports for LP models.
- Infeasibility diagnosis
- Computing an IIS, relaxing constraints with penalty variables and checking data for impossible combinations.
- Formulation strength
- Choosing the smallest valid big-M values, using indicator constraints and adding valid inequalities so LP relaxations are tighter.
From words to constraints
Most formulation errors come from translating logical statements. 'If we open warehouse j, it must handle at least 500 units' and 'we can open at most three warehouses' become binary variables linked to continuous flows. We teach a small set of patterns (linking constraints, either-or with big-M, at-most-k, precedence) and practice them until you can recognize which one a sentence needs.
Reading solver output
Solver logs and reports contain more than the optimal value. For LPs, shadow prices tell you how much the objective would improve per unit of extra resource, and ranging reports show how far a coefficient can change before the solution changes. For MILPs, the log shows the best bound, the incumbent solution and the gap between them. We explain each so you can make and defend statements in your report.
- Shadow prices and reduced costs are only valid within their allowable ranges
- MILP models do not have a sensitivity report in the LP sense; use scenarios instead
- A time-limited MILP result is feasible but may not be optimal: report the gap
Choosing between exact and heuristic methods
Modern MILP solvers handle surprisingly large problems, and an exact method with a reported gap is usually easier to defend in research than a heuristic. Heuristics make sense for very large or real-time problems, or when the objective cannot be expressed in a solver-friendly form. We help you choose and, if you use a heuristic, benchmark it against exact solutions on smaller instances.
What the work can look like
Illustrative example — fictional data
Sample formulation note: a small facility location model
A master's researcher studying humanitarian logistics needed to choose which of 12 candidate warehouses to open to serve 40 districts. The figures are invented for illustration.
Formulation
Binary y_j = 1 if warehouse j opens; continuous x_ij = units shipped from j to district i. Minimize fixed opening costs plus transport costs, subject to demand satisfaction for each district, capacity x_ij summed over i ≤ C_j·y_j, and at most four warehouses open.
Solver result
Gurobi (via gurobipy) solved the instance to optimality in under a second; four warehouses open. Capacity constraints at two warehouses are binding, which suggests that expanding them would lower total cost; a scenario with 20% extra capacity quantifies this.
Robustness check
Re-solving under three demand scenarios shows that three of the four chosen sites remain in every optimal solution, which the researcher can present as a robust core of the network.
Illustrative example with invented data. Your results depend on your data, formulation and solver.
What you’ll need to provide
- Problem description, case study or research question
- Data files (costs, capacities, demands, times) with units
- Preferred solver and license status (for example Gurobi academic license, LINGO version, Excel)
- Course policy on outside help, if the work is assessed
- Any existing model files and solver logs
You don’t need everything ready to ask for a quote — tell us what you have and we’ll say what’s missing.
What affects price and turnaround
Price depends on
- Model type: LP, MILP, nonlinear or stochastic
- Problem size and data preparation effort
- Tutoring, model review or full model development for research and professional clients
- Performance tuning and scenario analysis requirements
Turnaround depends on
- Availability of clean data and clear business or research rules
- Solve times for large instances
- License access for the solver you want to use
Every project is quoted individually. How we price our work.
Questions people ask before starting
Can you solve my OR homework?
No. We teach formulation patterns and solution methods with parallel examples, and review models you write. Graded assignments and exams remain your own work.
Can I use Gurobi for free as a student?
Gurobi offers free academic licenses to students, faculty and staff at accredited degree-granting institutions for non-commercial teaching, coursework and research, with several license types. Activation typically requires your institution's network. Check Gurobi's academic program page for the current terms.
My course uses LINGO but I prefer Python. Is that a problem?
Use what your course or supervisor requires for assessed work. The formulation is the same in any tool, and we can show you the equivalent model in both LINGO and Python so the concepts transfer.
Why does my model say infeasible?
Common causes are data errors (demand larger than total capacity), constraints with the wrong direction, or logical conditions that cannot all hold. We teach you to compute an irreducible infeasible subsystem and to add penalty variables that show which constraints must be violated.
How should I report optimization results in a thesis?
State the formulation fully, the solver and version, hardware, time limits and gaps, and the instances used. Present decisions and costs in a form readers understand, and include sensitivity or scenario analysis. We help you understand each element so you can write it up yourself.