List of Contributions

David Gravot

Contact Details

My Content

1 to 20 of 26 total
Posted By David Gravot Tue March 05, 2024 12:34 PM
Found In Egroup: Decision Optimization
\ view thread
Say your problem is a minimization one. The best bound is by definition the 'best' value of the relaxation of the open nodes, eg the one with the smallest LP_relaxation. Its is no surprise that it can be fractional On the other hand, you're right that CPLEX could/should take into account of the integrality ...
Posted By David Gravot Mon January 15, 2024 09:07 AM
Found In Egroup: Decision Optimization
\ view thread
Then you can design your model using IloCplex Api directly, using either oplall.jar or cplex.jar ------------------------------ David Gravot ------------------------------
Posted By David Gravot Tue September 05, 2023 04:44 AM
Found In Egroup: Decision Optimization
\ view thread
simply update the formula int idleDuration[m in Mchs] = sum(j in 1..nbJobs-1) ( item(startItvM[m], j) - item(endItvM[m], j-1) ------------------------------ David Gravot ------------------------------
Posted By David Gravot Thu August 31, 2023 10:12 AM
Found In Egroup: Decision Optimization
\ view thread
Hi Pedro As you saw, one can access interval start and end in OplScript. In the following postprocess, I store the results in two matrices that I will use later to created sorted collections for start and end per machine. I then use collections methods first and item to compute the idle time ...
Posted By David Gravot Thu June 22, 2023 06:19 AM
Found In Egroup: Decision Optimization
\ view thread
Hi Pierre You welcome. I like to share experience about this nice scheduling language CPO The code I send is still open to reformulations. For instance, it allows to "open" a variable number of plants of the same type at different time periods, whereas in your example, it seems to me you want ...
Posted By David Gravot Mon June 12, 2023 01:21 PM
Found In Egroup: Decision Optimization
\ view thread
Yes, that's the idea. Not sure it will scale up if you have a huge number of facilities, and a very long horizon, but for your dataset, I find a cover that looks like your solution after 10 seconds. It does not provide the optimal (?) solution you provided even giving more time I attach the ...
Posted By David Gravot Mon June 12, 2023 01:20 PM
Found In Library: Decision Optimization
Posted By David Gravot Tue June 06, 2023 09:55 AM
Found In Egroup: Decision Optimization
\ view thread
Hi I understand from your paper that you want/ need (?) to separate the sizing of the plants (how many of each type) before scheduling them (eg covering the demand with plant patterns) What if you would directly solve the sole scheduling problem ? With CPO, it's possible to model optional intervals ...
Posted By David Gravot Mon June 05, 2023 01:47 PM
Found In Egroup: Decision Optimization
\ view thread
Thanks Jerome, yes this makes sense to add alternative of each interval with one alternative per time window. I'll give a try. My motivation is about performance, I would expect this to have a better propagation than with arithmetic expressions (the 'or' of starts in my original post) --------- ...
Posted By David Gravot Thu May 25, 2023 04:34 AM
Found In Egroup: Decision Optimization
\ view thread
Hi Say I have a set S of optional interval decision variables and I want to know when any of them starts in given time ranges r1=[0 .. 60), r2=[60, 120), r3=[120, 180) I could define for each range i something such as startIn(i) = or(a in S) startOf(a, M) in r(i), where M is for instance 1000 (forbidding ...
Posted By David Gravot Wed June 22, 2022 09:18 AM
Found In Egroup: Decision Optimization
\ view thread
Hello What if you do cp.add(x[i]) ?Maybe in the absence of any constraint on x, cp presolve could remove the variable David ------------------------------ David Gravot ------------------------------
Posted By David Gravot Tue April 05, 2022 04:01 AM
Found In Egroup: Decision Optimization
\ view thread
Hi Don't forget to pass the required arguments while setting your "run configuration" arguments Then if it still crashed, try to debug step by step within your visual editor David ------------------------------ David Gravot ------------------------------
Posted By David Gravot Fri March 25, 2022 06:50 AM
Found In Egroup: Decision Optimization
\ view thread
Indeed, launching a single model within the ide triggers the feasopt algorithm automatically while running in a main control will by default call the cplex.solve that stops if the model is infeasible The way feasopt handle infeasibillities is by default having all variables and named constraints candidates ...
Posted By David Gravot Thu February 03, 2022 12:53 PM
Found In Egroup: Decision Optimization
\ view thread
Hi a model with only one time window could be using CP; range rTrucks = 1 .. 10; range rVisits = 1 .. 100; tuple TW( int v; int s; int e; ) TW tw[v in rVisits] = ; dvar interval visit[t in rTrucks, v in rVisits] optional in tw[v].s .. tw[v].e size 1; constraints( forall(t in ...
Posted By David Gravot Wed December 01, 2021 12:09 PM
Found In Egroup: Decision Optimization
\ view thread
You should not call end(), end public void end() This member function first removes the invoking extractable object from all other extractable objects where it is used (such as a model, ranges, etc.) and then deletes the invoking extractable object. That is, it frees all the resources used by ...
Posted By David Gravot Tue November 09, 2021 05:29 AM
Found In Egroup: Decision Optimization
\ view thread
21.1 Beta COS is working on BigSur but not displaying correctly the scheduling charts (gantt and cumulatzive functions) . This is supposed to be fixed in the next official version David Gravot
Posted By David Gravot Fri November 05, 2021 06:37 AM
Found In Egroup: Decision Optimization
\ view thread
You could use the constraint ifThenElse(c1,c2,c3) with c1: MaxTT - MinTT < ConstantValue c2 : TimeDif==0 c3 : TimeDif==MaxTT - MinTT note this requires to define TimeDif as a var (and not an expression) The grammar you can use in a CP model is 99% the same calling it from OPL or C++. Note ...
Posted By David Gravot Mon November 01, 2021 12:44 PM
Found In Egroup: Decision Optimization
\ view thread
You can do with redefining A as a set of possible precedences among machines in the .mod file: using CP; range Jobs = 1..1; (int) machines = ...; tuple Precedence ( int pre; int post;) (Precedence) precedences with pre, post in machines = ...; dvar interval itvs[Jobs][machines]; ...
Posted By David Gravot Sun January 10, 2021 09:42 AM
Found In Egroup: Decision Optimization
\ view thread
Hello This API is only available in model, not in Opl Script. Use directly itvs.start instead You can have a look at the examples provided in the distribution , and also the documentation David ------------------------------ David Gravot ------------------------------
Posted By David Gravot Tue November 10, 2020 01:10 PM
Found In Egroup: Decision Optimization
\ view thread
Thanks Philippe, I'll give a try ! ------------------------------ David Gravot ------------------------------