12

The programming language used to setup the problem can matter under two circumstances. One is setup time of the problem this not only differs by programming language but also by the Gurobi interface used See page 30+. The other situations in which it might matter are user callbacks. If one programming language is slower at those time spent in these is not ...


8

There are many ways to do this. Here is a popular one: define a binary variable $x_i$ per interval $[b_i,b_{i+1}]$ and use the following constraints: \begin{align*} 1&=x_0+x_1+\cdots+x_n \tag{1}\\ 0x_0 + (b_0+\epsilon)x_1 + \cdots+ (b_{n-1}+\epsilon)x_n \le Y_t &\le b_0x_0 + b_1x_1 + \cdots+ b_nx_n \tag{2}\\ r_t &\ge f_i - M_i(1-x_i) \tag{3}\\ ...


6

The Mittlemann benchmarks are an excellent benchmark as ever in particular these two: Benchmark of Barrier LP solvers Large Network-LP Benchmark (commercial vs free) Note that Pyomo doesn't have bindings for most of these locally. If you are just looking for high-level modeling language and are not tied to Python you could use the JuMP modeling language ...


6

A variable that can assume values of zero or between some lower and upper bound is called a semi-continuous variable. Most high-end solvers have direct support for this type of variable. If not supported, you can model this with an additional binary variable: $$\begin{align} & \color{darkblue}L\cdot \color{darkred}\delta \le \color{darkred}x \le \color{...


5

Yes, of course you can remove the $x\ge0$ constraint if you like. Maybe your data is such that that short selling is not worthwhile. Hard to say.


5

When defining multiple components in an objective function, you should take care of a couple of items: All elements (i.e.e $a \cdot x_1$, $b\cdot x_2$ etc.) should have the same unit. This sounds obvious, but I have seen adding kg and seconds together. Whenever possible, I would always normalize the sum of the coefficients to 1, so that you can think of ...


4

I invite you to first check Wikipedia pages on computational complexity and Big O notation. Then, I would recommend you to study the celebrated book "Introduction to Algorithms" written by Cormen, Leiserson, Rivest, and Stein. It will allow you to improve your knowledge and understanding of problem and algorithm theoretical complexity.


4

This sounds like a network optimization problem with inventory consideration. There could be two possible scenarios: You have already determined the location of potential warehouses. You'd like to determine potential locations in 1 - Do a greenfield analysis aka Centre-Of-Gravity https://www.anylogistix.com/solving-facility-location-problem-with-greenfield-...


4

One industry which we see in our daily life that is under-optimized (mainly in developing & under-developed nations) is HealthCare where we see lot of OR based application. Paper[1] provided more details and survey of the same. Reference: Bradley, B.D., Jung, T., Tandon-Verma, A. et al. Operations research in global health: a scoping review with a focus ...


4

For OptaPlanner (implemented in Java), we have done benchmarks and see no performance difference between use cases implemented in Java or Kotlin. This is no surprise, because both are running on a JVM. For other JVM languages Scala, Groovy, JRuby, Closure, ..., we haven't run enough benchmarks yet, but as far as I can tell, they are in the same ballpark, ...


4

The second line in the table at https://www.mosek.com/documentation/ has all the Fusion manuals. For instance https://docs.mosek.com/latest/pythonfusion/api-reference.html is what you are looking for in the Python case. In any case we at Mosek are not aware of any other documentation. A Fusion model cannot be converted to an optimizer API model automatically....


3

For each state $s$, you want to compute the value function $V(s)$, which satisfies $V(0)=0$ and the Bellman equation for $s \not= 0$: $$V(s) = \min_\mu\left\{1+\sum_z V(f(s,z)) p(z;\mu)\right\}. \tag{13}$$ The $\min_\mu$ is over all legal actions $\mu$ in state $s$. The $\sum_z$ is over all outcomes $z$ that can occur when action $\mu$ is taken in state $s$....


3

As far as I know, the core of many of the mathematical optimization solvers have been designed with C/C++ and other programming languages are treating as an exchange layer. It does not affect directly the solving time, but for the pre-processing or post-processing, it is important. For example, I am aware that initializing/manipulating data with python might ...


3

I can give you my bias opinion because I am freelancer ( I don't know anything about other specific OR websites, linkedin, glassdoor, recruitment agencies or networking methods ) but if I were you my mainly choices were: Fiverr.com you can check here for specific OP expert, 194 OP freelancer working there. Upwork.com you can check here 239 OP specialist ...


3

For large LPs you need an interior point solver. On top of what others have mentioned, you can use CLP's interior point method, or, interestingly, just plain old IPOPT can work perfectly fine since it will also apply an interior point algorithm.


2

If I understand the problem correctly, it might be modeled as a variant of the resource-constrained project schedule in which you have some parallel machines and the tasks should be performed with some limitation. From the above-given data, some noisy things should be considered. First, limiting the start time of a task by being started from the same point ...


2

I have suggestions for your two recently added constraints. Your first one is: $$\text{board}(i_1,i_2,j_1,t,k) + \text{board}(i_1,i_2,j_2,t,k) \leq 1 + m[j_1][j_2]\\\forall i_1,i_2 \in V^2, \forall j_1,j_2 \in J^2, \forall t \in T, \forall k \in K \tag1$$ You do not need to impose $(1)$ when $m[j_1][j_2] = 1$ because it is redundant. You can also ...


2

First, let's split this into two separate problems: making the initial assignments; and updating assignments over time. (If you already have assignments in place, you may only need the second problem.) The initial problem can be modeled a generalized assignment problem (GAP). Technically this is an integer linear program, with a zero-one variable for each ...


2

Dynamic Programming is often a good method of choice for solving this class of problems. Chapter 3 of The Art and Theory of Dynamic Programming refers to this class of problems as Resource Allocation problems. There is one constraint restricting the amount of available resource, the parameter $B$, with a linear or nonlinear objective function. An interesting ...


1

You can refer to the list that is on Gurobi's website: https://www.gurobi.com/partners/consulting-services/.


1

Rough-cut capacity planning is an essential tool for rapidly calculating the needed capacity and trade-off between the available and required resources which is frequently used in the planning software. As a reference: RCCP is a long-term plan capacity planning tool that marketing and production use to balance required and available capacity and to ...


1

Which options to use The problem is that the "time limit" is not handled by Pyomo (which just connects to a solver), but by the solver itself. Different solvers have different names for "time limit" options. See this StackOverflow post about that. The timelimit option you're setting above would work for CPLEX, but maybe not for GAMS (see ...


Only top voted, non community-wiki answers of a minimum length are eligible