optaplanner-examples/data/nurserostering/import/long_late04.xml (808 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_late04" 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> <Contract ID="3"> <Description>50_percent_no_weekend</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">6</MaxConsecutiveFreeDays> <MinConsecutiveFreeDays on="1" weight="3">4</MinConsecutiveFreeDays> <MaxConsecutiveWorkingWeekends on="1" weight="5">0</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>3</ContractID> <Name>42</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="43"> <ContractID>3</ContractID> <Name>43</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="44"> <ContractID>3</ContractID> <Name>44</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="45"> <ContractID>3</ContractID> <Name>45</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="46"> <ContractID>3</ContractID> <Name>46</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="47"> <ContractID>3</ContractID> <Name>47</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="48"> <ContractID>3</ContractID> <Name>48</Name> <Skills> <Skill>Nurse</Skill> </Skills> </Employee> <Employee ID="49"> <ContractID>3</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>10</Preferred> </Cover> <Cover> <Shift>D</Shift> <Preferred>7</Preferred> </Cover> <Cover> <Shift>N</Shift> <Preferred>8</Preferred> </Cover> <Cover> <Shift>DH</Shift> <Preferred>3</Preferred> </Cover> </DayOfWeekCover> <DayOfWeekCover> <Day>Tuesday</Day> <Cover> <Shift>E</Shift> <Preferred>7</Preferred> </Cover> <Cover> <Shift>L</Shift> <Preferred>7</Preferred> </Cover> <Cover> <Shift>D</Shift> <Preferred>4</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>7</Preferred> </Cover> <Cover> <Shift>L</Shift> <Preferred>7</Preferred> </Cover> <Cover> <Shift>D</Shift> <Preferred>4</Preferred> </Cover> <Cover> <Shift>N</Shift> <Preferred>6</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>10</Preferred> </Cover> <Cover> <Shift>D</Shift> <Preferred>4</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>7</Preferred> </Cover> <Cover> <Shift>L</Shift> <Preferred>7</Preferred> </Cover> <Cover> <Shift>D</Shift> <Preferred>4</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>6</Preferred> </Cover> <Cover> <Shift>L</Shift> <Preferred>6</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>6</Preferred> </Cover> <Cover> <Shift>L</Shift> <Preferred>6</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>