optaplanner-examples/data/nurserostering/import/long_late01.xml (779 lines of code) (raw):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<SchedulingPeriod ID="long_late01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="competition.xsd">
<StartDate>2010-01-01</StartDate>
<EndDate>2010-01-28</EndDate>
<Skills>
<Skill>Nurse</Skill>
<Skill>HeadNurse</Skill>
</Skills>
<ShiftTypes>
<Shift ID="E">
<StartTime>06:30:00</StartTime>
<EndTime>14:30:00</EndTime>
<Description>Early shift type</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="L">
<StartTime>14:30:00</StartTime>
<EndTime>22:30:00</EndTime>
<Description>Late shift type</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="D">
<StartTime>08:30:00</StartTime>
<EndTime>16:30:00</EndTime>
<Description>Day shift type</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="N">
<StartTime>22:30:00</StartTime>
<EndTime>06:30:00</EndTime>
<Description>Night shift</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="DH">
<StartTime>08:30:00</StartTime>
<EndTime>16:30:00</EndTime>
<Description>Head nurse day shift type</Description>
<Skills>
<Skill>HeadNurse</Skill>
</Skills>
</Shift>
</ShiftTypes>
<Patterns>
<Pattern ID="0" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>L</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>D</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="1" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>D</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>E</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="2">
<ShiftType>D</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="2" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>None</ShiftType>
<Day>Friday</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>Any</ShiftType>
<Day>Saturday</Day>
</PatternEntry>
<PatternEntry index="2">
<ShiftType>Any</ShiftType>
<Day>Sunday</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="3" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>L</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>E</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="4" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>D</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>N</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="5" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>N</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>D</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="6" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>N</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>E</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="7" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>L</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>DH</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
<Pattern ID="8" weight="1">
<PatternEntries>
<PatternEntry index="0">
<ShiftType>N</ShiftType>
<Day>Any</Day>
</PatternEntry>
<PatternEntry index="1">
<ShiftType>DH</ShiftType>
<Day>Any</Day>
</PatternEntry>
</PatternEntries>
</Pattern>
</Patterns>
<Contracts>
<Contract ID="0">
<Description>fulltime</Description>
<SingleAssignmentPerDay weight="1">true</SingleAssignmentPerDay>
<MaxNumAssignments on="1" weight="3">20</MaxNumAssignments>
<MinNumAssignments on="1" weight="3">10</MinNumAssignments>
<MaxConsecutiveWorkingDays on="1" weight="4">5</MaxConsecutiveWorkingDays>
<MinConsecutiveWorkingDays on="1" weight="4">3</MinConsecutiveWorkingDays>
<MaxConsecutiveFreeDays on="1" weight="7">4</MaxConsecutiveFreeDays>
<MinConsecutiveFreeDays on="1" weight="3">3</MinConsecutiveFreeDays>
<MaxConsecutiveWorkingWeekends on="1" weight="5">3</MaxConsecutiveWorkingWeekends>
<MinConsecutiveWorkingWeekends on="1" weight="5">2</MinConsecutiveWorkingWeekends>
<MaxWorkingWeekendsInFourWeeks on="0" weight="1">0</MaxWorkingWeekendsInFourWeeks>
<WeekendDefinition>SaturdaySunday</WeekendDefinition>
<CompleteWeekends weight="10">true</CompleteWeekends>
<IdenticalShiftTypesDuringWeekend weight="10">true</IdenticalShiftTypesDuringWeekend>
<NoNightShiftBeforeFreeWeekend weight="10">true</NoNightShiftBeforeFreeWeekend>
<AlternativeSkillCategory weight="10">true</AlternativeSkillCategory>
<UnwantedPatterns>
<Pattern>0</Pattern>
<Pattern>1</Pattern>
<Pattern>2</Pattern>
<Pattern>3</Pattern>
<Pattern>4</Pattern>
<Pattern>5</Pattern>
<Pattern>6</Pattern>
<Pattern>7</Pattern>
<Pattern>8</Pattern>
</UnwantedPatterns>
</Contract>
<Contract ID="1">
<Description>75_time</Description>
<SingleAssignmentPerDay weight="1">true</SingleAssignmentPerDay>
<MaxNumAssignments on="1" weight="3">15</MaxNumAssignments>
<MinNumAssignments on="1" weight="3">6</MinNumAssignments>
<MaxConsecutiveWorkingDays on="1" weight="4">5</MaxConsecutiveWorkingDays>
<MinConsecutiveWorkingDays on="1" weight="4">3</MinConsecutiveWorkingDays>
<MaxConsecutiveFreeDays on="1" weight="7">5</MaxConsecutiveFreeDays>
<MinConsecutiveFreeDays on="1" weight="3">2</MinConsecutiveFreeDays>
<MaxConsecutiveWorkingWeekends on="1" weight="5">3</MaxConsecutiveWorkingWeekends>
<MinConsecutiveWorkingWeekends on="1" weight="5">1</MinConsecutiveWorkingWeekends>
<MaxWorkingWeekendsInFourWeeks on="0" weight="0">0</MaxWorkingWeekendsInFourWeeks>
<WeekendDefinition>SaturdaySunday</WeekendDefinition>
<CompleteWeekends weight="10">true</CompleteWeekends>
<IdenticalShiftTypesDuringWeekend weight="10">true</IdenticalShiftTypesDuringWeekend>
<NoNightShiftBeforeFreeWeekend weight="10">true</NoNightShiftBeforeFreeWeekend>
<AlternativeSkillCategory weight="10">true</AlternativeSkillCategory>
<UnwantedPatterns>
<Pattern>0</Pattern>
<Pattern>1</Pattern>
<Pattern>2</Pattern>
<Pattern>3</Pattern>
<Pattern>4</Pattern>
<Pattern>5</Pattern>
<Pattern>6</Pattern>
<Pattern>7</Pattern>
<Pattern>8</Pattern>
</UnwantedPatterns>
</Contract>
<Contract ID="2">
<Description>50_percent</Description>
<SingleAssignmentPerDay weight="1">true</SingleAssignmentPerDay>
<MaxNumAssignments on="1" weight="3">10</MaxNumAssignments>
<MinNumAssignments on="1" weight="3">4</MinNumAssignments>
<MaxConsecutiveWorkingDays on="1" weight="4">4</MaxConsecutiveWorkingDays>
<MinConsecutiveWorkingDays on="1" weight="4">2</MinConsecutiveWorkingDays>
<MaxConsecutiveFreeDays on="1" weight="7">5</MaxConsecutiveFreeDays>
<MinConsecutiveFreeDays on="1" weight="3">3</MinConsecutiveFreeDays>
<MaxConsecutiveWorkingWeekends on="1" weight="5">1</MaxConsecutiveWorkingWeekends>
<MinConsecutiveWorkingWeekends on="0" weight="5">0</MinConsecutiveWorkingWeekends>
<MaxWorkingWeekendsInFourWeeks on="0" weight="0">0</MaxWorkingWeekendsInFourWeeks>
<WeekendDefinition>FridaySaturdaySunday</WeekendDefinition>
<CompleteWeekends weight="10">true</CompleteWeekends>
<IdenticalShiftTypesDuringWeekend weight="10">true</IdenticalShiftTypesDuringWeekend>
<NoNightShiftBeforeFreeWeekend weight="10">true</NoNightShiftBeforeFreeWeekend>
<AlternativeSkillCategory weight="10">true</AlternativeSkillCategory>
<UnwantedPatterns>
<Pattern>0</Pattern>
<Pattern>1</Pattern>
<Pattern>2</Pattern>
<Pattern>3</Pattern>
<Pattern>4</Pattern>
<Pattern>5</Pattern>
<Pattern>6</Pattern>
<Pattern>7</Pattern>
<Pattern>8</Pattern>
</UnwantedPatterns>
</Contract>
</Contracts>
<Employees>
<Employee ID="0">
<ContractID>0</ContractID>
<Name>0</Name>
<Skills>
<Skill>Nurse</Skill>
<Skill>HeadNurse</Skill>
</Skills>
</Employee>
<Employee ID="1">
<ContractID>0</ContractID>
<Name>1</Name>
<Skills>
<Skill>Nurse</Skill>
<Skill>HeadNurse</Skill>
</Skills>
</Employee>
<Employee ID="2">
<ContractID>0</ContractID>
<Name>2</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="3">
<ContractID>0</ContractID>
<Name>3</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="4">
<ContractID>0</ContractID>
<Name>4</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="5">
<ContractID>0</ContractID>
<Name>5</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="6">
<ContractID>0</ContractID>
<Name>6</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="7">
<ContractID>0</ContractID>
<Name>7</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="8">
<ContractID>0</ContractID>
<Name>8</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="9">
<ContractID>0</ContractID>
<Name>9</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="10">
<ContractID>0</ContractID>
<Name>10</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="11">
<ContractID>0</ContractID>
<Name>11</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="12">
<ContractID>0</ContractID>
<Name>12</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="13">
<ContractID>0</ContractID>
<Name>13</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="14">
<ContractID>0</ContractID>
<Name>14</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="15">
<ContractID>0</ContractID>
<Name>15</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="16">
<ContractID>0</ContractID>
<Name>16</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="17">
<ContractID>0</ContractID>
<Name>17</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="18">
<ContractID>0</ContractID>
<Name>18</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="19">
<ContractID>0</ContractID>
<Name>19</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="20">
<ContractID>1</ContractID>
<Name>20</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="21">
<ContractID>1</ContractID>
<Name>21</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="22">
<ContractID>1</ContractID>
<Name>22</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="23">
<ContractID>1</ContractID>
<Name>23</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="24">
<ContractID>1</ContractID>
<Name>24</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="25">
<ContractID>1</ContractID>
<Name>25</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="26">
<ContractID>1</ContractID>
<Name>26</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="27">
<ContractID>1</ContractID>
<Name>27</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="28">
<ContractID>1</ContractID>
<Name>28</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="29">
<ContractID>1</ContractID>
<Name>29</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="30">
<ContractID>1</ContractID>
<Name>30</Name>
<Skills>
<Skill>Nurse</Skill>
<Skill>HeadNurse</Skill>
</Skills>
</Employee>
<Employee ID="31">
<ContractID>1</ContractID>
<Name>31</Name>
<Skills>
<Skill>Nurse</Skill>
<Skill>HeadNurse</Skill>
</Skills>
</Employee>
<Employee ID="32">
<ContractID>1</ContractID>
<Name>32</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="33">
<ContractID>1</ContractID>
<Name>33</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="34">
<ContractID>1</ContractID>
<Name>34</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="35">
<ContractID>2</ContractID>
<Name>35</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="36">
<ContractID>2</ContractID>
<Name>36</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="37">
<ContractID>2</ContractID>
<Name>37</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="38">
<ContractID>2</ContractID>
<Name>38</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="39">
<ContractID>2</ContractID>
<Name>39</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="40">
<ContractID>2</ContractID>
<Name>40</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="41">
<ContractID>2</ContractID>
<Name>41</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="42">
<ContractID>2</ContractID>
<Name>42</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="43">
<ContractID>2</ContractID>
<Name>43</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="44">
<ContractID>2</ContractID>
<Name>44</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="45">
<ContractID>2</ContractID>
<Name>45</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="46">
<ContractID>2</ContractID>
<Name>46</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="47">
<ContractID>2</ContractID>
<Name>47</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="48">
<ContractID>2</ContractID>
<Name>48</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
<Employee ID="49">
<ContractID>2</ContractID>
<Name>49</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Employee>
</Employees>
<CoverRequirements>
<DayOfWeekCover>
<Day>Monday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>10</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>6</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>2</Preferred>
</Cover>
</DayOfWeekCover>
<DayOfWeekCover>
<Day>Tuesday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>10</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>6</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>2</Preferred>
</Cover>
</DayOfWeekCover>
<DayOfWeekCover>
<Day>Wednesday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>10</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>4</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>2</Preferred>
</Cover>
</DayOfWeekCover>
<DayOfWeekCover>
<Day>Thursday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>10</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>6</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>2</Preferred>
</Cover>
</DayOfWeekCover>
<DayOfWeekCover>
<Day>Friday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>10</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>6</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>2</Preferred>
</Cover>
</DayOfWeekCover>
<DayOfWeekCover>
<Day>Saturday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>3</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>4</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>1</Preferred>
</Cover>
</DayOfWeekCover>
<DayOfWeekCover>
<Day>Sunday</Day>
<Cover>
<Shift>E</Shift>
<Preferred>7</Preferred>
</Cover>
<Cover>
<Shift>L</Shift>
<Preferred>5</Preferred>
</Cover>
<Cover>
<Shift>D</Shift>
<Preferred>3</Preferred>
</Cover>
<Cover>
<Shift>N</Shift>
<Preferred>4</Preferred>
</Cover>
<Cover>
<Shift>DH</Shift>
<Preferred>1</Preferred>
</Cover>
</DayOfWeekCover>
</CoverRequirements>
<DayOffRequests/>
<ShiftOffRequests/>
</SchedulingPeriod>