Git Product home page Git Product logo

nursescheduler's People

Contributors

legraina avatar rosat avatar sergebisaillon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nursescheduler's Issues

Create output directory

If the output folder /outfile/parameter_file/instance_name/ is not created before running the solver, it is not created anywhere and the solution files are written nowhere, hence the impossibility to run the validator.
We should create the folder automatically when not present nor user-specified.

Stronger formulation of the rotation decomposition

Try a stronger formulation of the rotation MP where each worked week-end leads to a new level until the maximum number of weekends is worked. At the last level, every rotation where a weekend day is worked is penalized.
This requires a major revision of the subproblem, since there is one day-shift node per level. Optimality can only be certified by solving one subproblem per level.

Allow preferences on shifts and shift types

Currently, preferences on rest and work periods are specified on specific shifts. Actually, it seems reasonable that these requests could be on all shifts of a given type on a given day (just like they can be on all shifts of a given day).
Currently, this can be done by enumerating all the shifts of a given type in the preferences, but a more explicit specification would be preferable.

Self-recommend

I will so sorry if I disturb you. I adore you very much. I hope to be your student fortunately ! ! !

Fix the default parameters

The default parameters does not compute an optimal solution and, even worse, does not goes to optimality at the root node (so the root LB is wrong!).

Refactor fix/unfix and relax/unrelax methods in MP

It seems that the methods for fixing and relaxing days, shifts, etc. are all defined in the MasterProblem.cpp although they should be specific to the the decomposition. This will be of importance if the LNS is extended to the rotation decomposition.

Refactor use of int as indices

Many integers are used through the code to represent objects or indices, but could lead to bugs. We need something more robust.

Adding cuts

We know that cutting planes have allowed for major improvements of VRP solvers. There would be a need to scan the litterature for good cutting planes for workforce scheduling.

Major refactoring

1- Have the notion of shift and shift type. Different shift can be performed during a certain shift type and each of them has also a demand
2- A shift has also a time consumption for a min/max constraint over the horizon: generalized the min/max worked days (consumption of 1 day).
3- The preferences are more general: the shift off request has 4 levels from weak to compulsory (very high cost). There is also a field shift on request now (could be used to fix part of the solution).
4- The subproblem has been modified to be able to be solved with/without the enumeration of all the short rotations.
5- A major refactoring has been done: the code is now separated into sub-directories. The subproblem has been recoded in an object oriented mind. The rotations have been removed from the pricer and Bcp to allow more general object into the code.

WARNING: there is a bug with the readerwriter, the preferences are not parsed correctly (the same line is always read)

Delete every reference to Greedy

Greedy is never used, but still appears in the code. For instance in DemandGenerator::checkDemandFeasibility, which by the way does not seem to be used either.

Segmentation Error when no upper bound

When the time limit does not allow for the computation of a feasible solution, the code runs into a segmentation fault. It should be caught.
For reproduction:
./bin/staticscheduler --dir datasets/ --instance n030w4 --weeks 6-2-9-1 --his 1 --param paramfiles/default.txt --sol outfiles/default/n030w4_1_6-2-9-1 --timeout 10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.