nurse-rostering-solution's People
nurse-rostering-solution's Issues
S5 - Complete week-end (30)
Every nurse that has the complete weekend value set to true, must work both
week-end days or none. If she/he works only one of the two days Sat and Sun this is penalised by the
corresponding weight.
Create tests
May be informal (just display on terminal), but required to ensure a valid implementation.
H4 - Missing required skill
A shift of a given skill must necessarily be fullled by a nurse having that skill.
S7 - Total working week-ends (30)
For each nurse the number of working weed-ends must be less than or equal to the maximum. The number of worked week-ends in excess is added to the objective function multiplied by the weight. A week-end is considered \working" if at least one of the two days (Sat and Sun) is busy for the nurse.
S1 - Insufficient staffng for optimal coverage (30)
The number of nurses for each shift for each skill must be equal to the optimal requirement. Each missing nurse is penalised according to the weight provided.
Extra nurses above the optimal value are not considered in the cost.
H1 - Single assignment per day
A nurse can be assigned to at most one shift per day.
H2 - Under-staffing
The number of nurses for each shift for each skill must be at least equal to the minimum requirement.
H3 - Shift type successions:
The shift type assignments of one nurse in two consecutive days must belong to
the legal successions provided in the scenario.
S6 - Total assignments (20)
For each nurse the total number of assignments (working days) must be included
within the limits (minimum and maximum) enforced by her/his contract. The di�erence (in either
direction), multiplied by its weight, is added to the objective function.
Improve JSON handling
At this moment, JSON is passed by argument by value (not by reference) and without any kind of trim (it is not deleted unnecessary parts). As the number of JSON files is low and their length is short, this issue does not require our attention, for now.
Implement pre-processing
At this moment, the parser only stores IDs as references even though the objects of those IDs were already read. This enhancement has not been done, yet, due to constant restructuring of the project. It is strongly advisable to do this only after the parser is completed as it'll lead to more efficient coding.
S2 - Consecutive assignments (15/30)
Minimum and maximum number of consecutive assignments, per
shift or global, should be respected. Their evaluation involves also the border data. Each extra or missing
day is multiplied by the corresponding weight. The weights for consecutive shift constraint and for
consecutive working days are respectively 15 and 30.
Check project structure
The project structure needs a fresh new vision before starting the implementation of the algorithm. In case of any mistakes or improvements, they should be implemented.
S4 - Preferences (10)
Each assignment to an undesired shift is penalised by the corresponding weight.
Improve Data Structures
At this moment, the only thing being done is the parser. Therefore, it is too soon to know the best data structure to be applied (map, tree, ...). So, before or at the same time of the implementation of the algorithm, it is necessary to choose better data structures as the current data structure, vectors, won't probably be the best choice.
Nurse assignments validate constraints H1, H3 and H4
S3 - Consecutive days off (30)
Minimum and maximum number of consecutive days o� should be respected.
Their evaluation involves also the border data. Each extra or missing day is multiplied by the corresponding
weight.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.