<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Automated Personnel Scheduling with Reinforcement Learning and Graph Neural Networks</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Benjamin</forename><surname>Platten</surname></persName>
							<email>platten.ben@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="institution">Universiteit van Amsterdam</orgName>
								<address>
									<addrLine>Binnengasthuisstraat 9</addrLine>
									<postCode>1012 ZA</postCode>
									<settlement>Amsterdam</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="institution">Randstad Groep Nederland</orgName>
								<address>
									<addrLine>Diemermere 25</addrLine>
									<postCode>1112 TC</postCode>
									<settlement>Diemen</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Matthew</forename><surname>Macfarlane</surname></persName>
							<email>m.v.macfarlane@uva.nl</email>
							<affiliation key="aff0">
								<orgName type="institution">Universiteit van Amsterdam</orgName>
								<address>
									<addrLine>Binnengasthuisstraat 9</addrLine>
									<postCode>1012 ZA</postCode>
									<settlement>Amsterdam</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">David</forename><surname>Graus</surname></persName>
							<email>david.graus@randstadgroep.nl</email>
							<affiliation key="aff1">
								<orgName type="institution">Randstad Groep Nederland</orgName>
								<address>
									<addrLine>Diemermere 25</addrLine>
									<postCode>1112 TC</postCode>
									<settlement>Diemen</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Sepideh</forename><surname>Mesbah</surname></persName>
							<email>sepideh.mesbah@randstadgroep.nl</email>
							<affiliation key="aff1">
								<orgName type="institution">Randstad Groep Nederland</orgName>
								<address>
									<addrLine>Diemermere 25</addrLine>
									<postCode>1112 TC</postCode>
									<settlement>Diemen</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Automated Personnel Scheduling with Reinforcement Learning and Graph Neural Networks</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">B5AD8CECF29DF7B0406E3DFE645CB498</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T08:58+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Combinatorial optimisation</term>
					<term>Reinforcement learning</term>
					<term>Graph neural networks</term>
					<term>Personnel scheduling</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This research investigates the extent to which a reinforcement learning agent can learn the heuristics of a combinatorial optimisation problem (CO), personnel scheduling, from a graph representation. In recent years, reinforcement learning has emerged as an effective data-driven approach to solving CO problems, a subset of mathematical optimisation that appear in many real-world tasks and can be costly to solve in terms of computing power and/or human resource. CO problems often have an underlying graph structure with relational inductive biases that can be exploited by powerful graph neural networks. Across a range of problem complexities, our approach was able return consistently high average reward, performing significantly better than baselines.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Matching personnel with shifts in a way that ensures coverage, legality and employee well-being is a process that becomes exponentially more complicated as scale increases <ref type="bibr" target="#b0">[1]</ref>. Randstad is a human resource consulting firm responsible for scheduling over 40,000 employees into more than 70,000 shifts every week. Employees are matched with work from several different industries such as retail, healthcare, and catering. Staff shortages and increased demand have made this process even more challenging in recent years. Personnel scheduling (PS) as an operations research problem has generally been known as the Nurse Rostering Problem (NRP) <ref type="bibr" target="#b1">[2]</ref>-a reference to the difficult task of assigning nurses to shifts in a 24-7 cycle-and has been studied since the 1960s by researchers from computer science, mathematics, operations research and medicine <ref type="bibr" target="#b1">[2]</ref>. Scheduling problems carry hard and soft constraints; a typical hard constraint in NRPs is that there is sufficient staff coverage at all times. A soft constraint could be an employee's preference not to work on weekends <ref type="bibr" target="#b1">[2]</ref>. For Randstad, personnel scheduling is characterised by high variance between clients (e.g. different retail companies) in terms of problem requirements; planning horizon, shift types, requisite skills and volume of staff and shifts vary significantly. For example, a single client could require as many as 2,000 shifts to be scheduled in one week, or as few as 2. The average is somewhere closer to 80 shifts per week per client. In this context, to help clients/planners to fill shifts in an efficient way there is a need for an automated technique that recommends personnel for given shifts by considering the constraints.</p><p>Researchers have developed linear models that find optimal solutions for scheduling problems by exploring the search space of possible solutions <ref type="bibr" target="#b1">[2]</ref>. Known as exact methods, these algorithms simulate a decision tree where each node of the tree is a possible state that the scheduling problem can take and the solutions are situated at the leaves of the tree. Due to the enormous and complex search spaces of modern scheduling problems, exact methods alone are not viable. Furthermore, an 'optimal' solution is usually not the goal; administrators want to quickly generate a high quality schedule that satisfies all hard constraints and as many of a wide range of soft constraints as possible. The other broad class of solutions is heuristic methods which make use of higher level knowledge of a problem to take shortcuts through the search space. Reliance on domain expertise and handcrafted features means that these methods are susceptible to changes in the problem formulation. Neither of these approaches generalise well to new problems <ref type="bibr" target="#b1">[2]</ref>.</p><p>Personnel scheduling can be framed as a combinatorial optimisation problem and there is a growing body of research using machine learning techniques to solve such problems <ref type="bibr" target="#b2">[3]</ref>. CO is the process of searching for an optimal solution amongst a finite set of possibilities. Classic problems include the Travelling Salesman (TSP)-where the objective is to find the shortest route through a list of cities-and the knapsack problem, where the objective is to maximise the value of objects in a knapsack without violating a weight constraint <ref type="bibr" target="#b2">[3]</ref>. If a CO problem is modelled as a sequential decision-making process, neural network function approximation can be used to learn features of a problem and use them to optimise the decisions of an agent <ref type="bibr" target="#b3">[4]</ref>. This is the essence of Deep Reinforcement Learning (RL), a class of algorithms that have attained some notoriety in recent years due to eyecatching performance on various games <ref type="bibr" target="#b4">[5]</ref>. Many CO problems naturally induce an underlying graph structure of nodes and edges <ref type="bibr" target="#b5">[6]</ref>. By representing a problem using graph neural networks (GNNs), the learned vector representation encodes crucial structures that improve the ability of an algorithm to learn from such problems and solve them efficiently <ref type="bibr" target="#b6">[7]</ref>. CO is at the heart of many real world problems; vehicle routing, microchip design, big data processing, and numerous forms of scheduling tasks, to name a few. This paper seeks to investigate whether a RL agent can learn to solve personnel scheduling problems represented as graphs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Research question: To what extent can reinforcement learning optimise personnel scheduling problems?</head><p>There are many ways to design experiments to answer this research question. We chose to keep the RL algorithm and problem constraints fixed throughout the experiments and instead to focus on problem complexity and reward function. Problem complexity can be controlled by the number of shifts and also by the ratio between shifts and employees, both of which determine the probability that a correct action can be taken by chance. An increase in problem complexity will therefore lead to increased constraint violations from a random agent. A reward function determines whether an agent's actions are rewarded with a positive value or punished with a negative value. Reward is averaged over a set number of episodes (complete runs through a problem) as this provides a stable measure of an agent's performance over time.</p><p>In this context, we focus on the following sub-research questions:</p><p>1. To what extent does increasing problem complexity affect average reward? 2. To what extent does reward shaping affect average reward?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Related Work</head><p>Substantial research has been conducted into personnel scheduling and combinatorial optimisation more generally.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Personnel Scheduling Methods</head><p>The most common methods -exact, heuristic, and hybrid -have different ways of dealing with the complexity of scheduling problems. The complexity of a NRP is determined by the combination of constraints and parameters <ref type="bibr" target="#b0">[1]</ref>. Usually, problems with a large number of possible shift types, a large number of nurses and/or a long planning period, are expected to require more computational effort. In their comprehensive review, Burke et al <ref type="bibr" target="#b1">[2]</ref>, declared that exact methods "cannot cope with the enormous search spaces that are represented by real problems (at least on their own)". However, innovative modelling techniques have been used to formulate integer linear programs (ILPs) with huge numbers of variables. Branchand-price, a technique that augments linear relaxationa method for solving hard ILPs by temporarily relaxing the integer constraints -by dropping a proportion of the constraints and then checking if the subsequent solution is feasible, was used by <ref type="bibr" target="#b7">[8]</ref>. Modelling complex ILPs is challenging and powerful solvers are needed to run them <ref type="bibr" target="#b8">[9]</ref>. The most common form of heuristic optimisation is meta-heuristics, which use strategies inspired by other systems to guide the search process. For example, Ant colony optimisation meta-heuristic algorithms build solutions by mimicking the foraging behaviour of ants <ref type="bibr" target="#b9">[10]</ref>. Although effective and simpler to implement than exact methods, heuristics need to be revised if the problem statement changes slightly <ref type="bibr" target="#b1">[2]</ref>. Furthermore, costly and error-prone feature engineering can introduce biases that do not align with the real world and lead to imprecise decisions.</p><p>Methods that hybridise exact methods with heuristic approaches are known as hybrid approaches and Burke et al. <ref type="bibr" target="#b1">[2]</ref> went so far as to say that "some kind of (hybrid) heuristic method offers the only realistic way of tackling such difficult and challenging problems in the foreseeable future. "</p><p>In general, the models seen in the literature are complex, narrowly applicable to a certain environment, and lack generality, but it is difficult draw conclusions when there is so much variance between studies. We can say that, by considering each instance of a problem in isolation, these existing methods do not exploit the fact that the problem instances often come from a common real world underlying distribution.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">Machine Learning Methods for CO problems</head><p>For real world CO problems, it is highly likely that problem instances will share certain characteristics or patterns <ref type="bibr" target="#b5">[6]</ref>. Data-dependent machine learning approaches can exploit these patterns, leading to the development of faster solutions for practical cases. A neural network model was deployed on a CO problem as far back as 1996 when a Hopfield network was used by Mańdziuk <ref type="bibr" target="#b10">[11]</ref> to solve instances of the Travel-ling Salesman Problem. Chen et al. <ref type="bibr" target="#b11">[12]</ref> used neural networks to guide a tree search. By representing schedules as matrices, a network could analyse existing solutions and learn to predict the probability of each node leading to a solution. Václavík et al. <ref type="bibr" target="#b12">[13]</ref> use classifiers to discard bad solutions and speed up a subsequent heuristic search.</p><p>Reinforcement learning (RL) refers to a computational approach to learning from interaction <ref type="bibr" target="#b8">[9]</ref>. In RL, an agent interacts with a Markov Decision Process (MDP) with the goal of maximising some reward generated by the environment. A combination of a state of the environment and an available action, a state-action pair (s, a), has an expected return known as a state-action value function, or Q-value. A policy is a conditional distribution that the agent uses to select actions. The main aim of RL is to find an optimal policy -a conditional distribution used by the agent as a strategy to select actions -such that the state-action value function is optimised.</p><p>Broadly, there are two categories of RL algorithm; those which learn by optimising the value function to increase reward at each step and those which directly optimise the policy to increase total expected reward <ref type="bibr" target="#b13">[14]</ref>. Policy-based methods directly model the agent's policy as a parametric function. By collecting previous decisions that the agent made in the environment we can optimise the parameters of the network to maximise the expected reward of the process <ref type="bibr" target="#b13">[14]</ref>.</p><formula xml:id="formula_0">𝜃 𝑡+1 = 𝜃 𝑡 + 𝛼𝑅 𝑡 ∇𝜋(𝑎 𝑡 |𝑠 𝑡 , 𝜃) 𝜋(𝑎 𝑡 |𝑠 𝑡 , 𝜃)</formula><p>An episode refers to all the states of an environment that come in between an initial-state and a terminalstate, generated from the sequence of actions taken and changes observed in the environment. An episode can be terminated due to success or failure, and, over many episodes, the parameters of a policy network are trained until they can achieve good performance on an unseen problem. Stronger convergence guarantees are available for policy-based methods than for value-based methods. One of the main strengths of RL is that agents can learn the rules of an environment without the need for explicit programming or examples of optimal endpoints. A key aim of RL research is to train models that make decisions to solve real problems <ref type="bibr" target="#b14">[15]</ref> Reinforcement Learning (RL) methods were first applied to CO by Zhang and Dietterich, 1995, with a model designed to solve the NP-Hard job-shop problem <ref type="bibr" target="#b15">[16]</ref>.</p><p>A growing body of research uses RL in combination with graph neural networks (GNNs), a type of function approximator designed to operate directly on a graph structure <ref type="bibr" target="#b16">[17]</ref>. Whenever there is a set of entities that interact with one another or are related in any way, they can be expressed in the form of a graph <ref type="bibr" target="#b5">[6]</ref>. GNNs are structurally similar to convolutional neural networks (CNNs) which are mostly used for image classification.</p><p>CNNs get their name from the process of convolving the input vectors with a sliding kernel which reduces the size of an image whilst exploiting its spatial structure. Accounting for the underlying structure of the data introduces an inductive bias which promotes learning and leads to better results <ref type="bibr" target="#b6">[7]</ref>. The inductive bias of a learning algorithm is the set of assumptions that the learner uses to predict outputs for new data. GNNs also perform computations over input data in a way that exploits spatial structure, a process known as message passing. Node and edge feature vectors are propagated by an exchange of information (messages) between adjacent nodes.</p><p>Intuitively, it makes sense that a node might be represented by the average of the connections to its neighbours and in this way the spatial information of the graph is maintained. It also means that the number of message passing layers determines how far a signal can travel; with 2-layers, the message passing happens twice so the message travels two hops away. There are many GNN architectures optimised for different functions; node, edge, or graph classification, using features stored at the node, edge or both. The promise of GNNs is that the learned vector representation encodes crucial graph structures that help solve a CO problem more efficiently <ref type="bibr" target="#b5">[6]</ref>.</p><p>Mirhoseini et al. <ref type="bibr" target="#b17">[18]</ref> developed a learning-based approach to chip placement, one of the most complex and time-consuming stages of the chip design process. Exploiting the graph structure of netlists (a description of the connectivity of an electronic circuit), Mirhoseini et al. <ref type="bibr" target="#b17">[18]</ref> used a GNN to compute features of netlist nodes and create a rich representation for learning. Mirhoseini et al. <ref type="bibr" target="#b17">[18]</ref> claim that their method is the first that can quickly generalise to previously unseen netlists and produce 'superhuman' results without the need for human experts in the loop. In the opinion of Cappart et al. <ref type="bibr" target="#b5">[6]</ref>, this study is only scratching the surface of "the innovations that can be enabled from a careful synergy of GNNs and CO".</p><p>Kool et al. <ref type="bibr" target="#b14">[15]</ref> represented travelling salesman problems as graphs and used an encoder-decoder GNN as a parameterised policy to make decisions on which node to visit next. An encoder transforms input data into embeddings of a specific dimensions. The decoder then transforms the embeddings to the required output dimensions. The solution is constructed incrementally, adding one node at a time. The policy network is trained using the REINFORCE algorithm, a policy gradient method. The motivation for this choice was greater efficiency than a value function approach. Kool et al. <ref type="bibr" target="#b14">[15]</ref> report significantly improved results over recent learned heuristic approaches to TSP. Their solution worked on problems with up to 100 nodes and generalised to 2 variants of the problem using the same hyper-parameters. They are clear that their goal is not to outperform specialised TSP algorithms, but to show that their approach is flexible enough to generalise to similar problems.</p><p>After a thorough search of the literature, there was no credible study found to be using an RL algorithm and graph representations for personnel scheduling. The research most relevant to our aims is Kool et al. <ref type="bibr" target="#b14">[15]</ref> which has many useful insights.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Methodology</head><p>Our goal is to train an agent to sequentially assign employees to shifts in an acceptable configuration. A schedule is acceptable if the constraints are not violated. The foundation of this research is a pipeline that ingests a pool and a shift schedule and outputs a trained scheduling agent. We train models on a fixed set of problems in order to generate an agent that is capable of solving general, previously unseen problems. The pipeline was designed to take pool and shift schedule input of any size, adapting the parameters of the environment, graph representation, and Policy GNN accordingly.  Overview of the scheduling problems used for training the scheduling agent. 420 in total problems with 6 different shift counts and range of shift-employee ratios. The number of shifts, and the ratio between shifts and employees, determine the complexity of our scheduling problems: the probability that a correct action can be taken by chance.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Data</head><p>At Randstad, employees are grouped into pools which act as a pre-filter for eligibility; anyone assigned to a pool is eligible for shifts assigned to that pool. A pool represents an instance of a scheduling problem; the employees and shifts must be combined in a way that provides acceptable coverage and respects employment law and employee preference. Computational complexity increases with shift count and shift-employee ratio meaning that Randstad data includes many highly complex scheduling problems. Furthermore, the data contains many features with high cardinality, such as shift length and start time of a shift. To test the viability of an RL approach, simpler problem instances were required.</p><p>Inspired by the characteristics of Randstad data, we created synthetic schedule and pool data sets that can be combined to created simplified scheduling problems. The aim is to create problems that test an agent's ability to learn to satisfy a single constraint: the same employee can't work sequential shifts. This constraint has to be learned from the features of the problems.</p><p>Synthetic schedules contain shift id and 2 features; day of week (Monday -Friday) and time of day (morning or evening). Schedule shift count ranges from 3 to 8 and pool employee count ranges from 2 to 8. By combining these schedules and pools, we created a training set of 420 unique problems. Full details of the training set can be seen in Table <ref type="table" target="#tab_0">1</ref>. Functions were created to manage the problem combinations and check for uniqueness / duplicate problems. Another function randomly generates new, unseen problems of variable shift count and shift-employee ratio, for testing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Pipeline</head><p>So that a model can learn to find acceptable solutions to the scheduling problems, we define a Reinforcement Learning framework specific for this task, similar to Kool et al. <ref type="bibr" target="#b14">[15]</ref>'s framework for tackling Travelling Salesman problems. The aim is to optimise the reward received for taking actions (assigning workers) at each step (shift). In this framework, an encoder-decoder graph neural network is used to estimate a probability distribution over the actions available at each state of a problem. The encoder produces embeddings of all input nodes, whilst the decoder outputs log probabilities for each available action. To train this policy model, we used a policy gradient method called REINFORCE.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.1.">REINFORCE</head><p>REINFORCE was proposed by Williams <ref type="bibr" target="#b18">[19]</ref>. We start by initialising a random policy which the REINFORCE algorithm takes as input. The agent collects the trajectory of an episode from current policy, storing actions, states and rewards as a history. For each episode we calculate the reward and use it to evaluate the policy. For each action in the episode, the loss is calculated as the probability (according to the policy) of choosing the action, multiplied by the reward received. The loss is then back-propagated through the network to update the policy, increasing the probability that the agent will choose the actions that lead to higher reward in the next episode.</p><formula xml:id="formula_1">𝜃 𝑡+1 = 𝜃 𝑡 + 𝛼𝑅 𝑡 ∇𝜋(𝑎 𝑡 |𝑠 𝑡 , 𝜃) 𝜋(𝑎 𝑡 |𝑠 𝑡 , 𝜃)</formula><p>The encoder-decoder policy network is implemented using the Deep Graph Library. For the agent's policy, we implemented an encoderdecoder GNN architecture, similar to the model used by Kool et al. <ref type="bibr" target="#b14">[15]</ref>. The building blocks of the GNN are from the Deep Graph Library, which supports a range of GNN architectures on top of the PyTorch framework and also provides graph building functions. An example scheduling problem graph representation can be seen in Figure <ref type="figure" target="#fig_1">2</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.2.">Policy Network</head><p>The role of graph neural networks is to distill information about the type and connectivity of a node within a large graph into low-dimensional vector representations which can be used in downstream tasks. Our downstream task is to output log probabilities for each action in the action space.</p><p>The encoder produces embeddings of all input nodes. To do this, it takes a graph representation of the current state of a scheduling problem as input and uses message passing convolutional layers to update and aggregate the embeddings.</p><formula xml:id="formula_2">ℎ 𝑙+1 𝑖 = 𝜎 ( ∑ 𝑚∈𝑀 𝑖 𝑔 𝑚 (ℎ (𝑙) 𝑖 , ℎ (𝑙) 𝑗 ))</formula><p>Then, at each time step, the decoder network calculates the inner product of the current shift's node features and the worker edge features, which serves as a compatibility score. The decoder calculate this score for problems of any size. The softmax output of these compatibility scores are the probabilities for the policy.</p><p>The number of nodes in the input graph reflects the count of shifts and employees in the scheduling problem. Shift features are consistent (5 days of week and 2 times of day) but the employee features -which indicates whether an employee as been assigned to a specific shiftvary with employee and shift count. The network needs to be able to process graphs of different sizes without being re-initialised with the parameters of the current graph, which would reset the learned weights. To achieve this, we designed the architecture to store the employee feature data in the edges, linear transformation of employee features could be performed at each step. This is illustrated in Figure <ref type="figure" target="#fig_2">3</ref>. We use a message passing layer that incorporates edge data in it's update and aggregation functions. The design of this layer was proposed by <ref type="bibr" target="#b19">[20]</ref> :</p><formula xml:id="formula_3">ℎ (𝑙+1) 𝑖 = 𝜎(∑ 𝑟𝜖𝑅 ∑ 𝑗𝜖𝑁 𝑟 (𝑖) 𝑒 𝑗,𝑖 𝑊 (𝑙) 𝑟 ℎ (𝑙) 𝑗 + 𝑊 (𝑙) 0 ℎ (𝑙) 𝑖 )</formula><p>where 𝑁 𝑟 (𝑖) is the neighbor set of node 𝑖 w.r.t. relation 𝑟. 𝑒 𝑗,𝑖 is the normaliser. 𝜎 is an activation function. 𝑊 0 is the self-loop weight. These edge features would allow us to measure important statistics such as total shifts allocated for each employee without any hard-coding with of problem size. These statistics could be used to add additional constraints such as minimum / maximum hours worked per employee.</p><p>The network has a fixed learning rate of 1e-3. The encoder uses 2 convolutional layers, 5 × 32 shift embeddings and 𝑛 × 32 employee embeddings, where 𝑛 = to the number of employee nodes. The decoder uses 32 × 32 embeddings of the features for the current shift and 32 × 32 embeddings for each employee. The process of repeating episodes to train the policy network is managed by a custom Open AI Gym environment.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.3.">Open AI Gym</head><p>OpenAI's Gym library is a popular choice for implementing environments for RL. It's main building block is a Python class, Env, which simulates the environment you want to train your agent in. There are many standard environments available, such as the Atari games used by DeepMind <ref type="bibr" target="#b20">[21]</ref>, and it supports custom environments.</p><p>The key components of an environment are the state space, action space, reward function. For the state space of our custom scheduling environment, we combine a pool and a schedule into a matrix. The length of the matrix equals the number of shifts, and width of the matrix equals the number of shift features plus the number of employees in the pool. For each shift, the agent can assign an employee from the pool, therefore the action space is equal to the number of employees. The reward function is adjusted as part of the experimental setup but essentially it rewards the agent when an acceptable schedule is created. Or rather, it punishes the agent when constraints are violated. Another key part of the environment is the step function, which takes the agents action as input and updates the state and reward accordingly.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Experimental Setup</head><p>There are many possible variants for the design of this research, such as RL algorithm, training problem complexity, feature engineering, reward function and network architecture, to name a few. We have chosen to focus on reward function and problem complexity. Reward is based on performance with regards to a single constraint: an employee cannot work simultaneous or consecutive shifts. Given time constraints, hyper-parameter tuning was not performed for this study. The code can be viewed on github.</p><p>Average reward is used to evaluate a models performance. Reward is averaged across the previous 100 episodes to better capture an agent's long-term behavior. In a real world setting, the constraint we used is considered a hard constraint meaning that a violation renders the solution unacceptable. A solution could feasibly have a high reward but be unacceptable due to a single constraint violation. We used an additional metric, 'percentage acceptable' to measure the number of acceptable solutions produced by the agent: a solution with a maximum score and therefore no constraint violations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">Reward Functions</head><p>TSPs have an inbuilt cost, tour length (the cumulative distance between points), which the agent in Kool et al. <ref type="bibr" target="#b14">[15]</ref> tries to minimise. There are examples of TSP solvers that apply cost (negative reward) incrementally (after each stop)-which has been shown to encourage greedy behaviour-and at terminal states (when the tour is complete) <ref type="bibr" target="#b14">[15]</ref>. As there is no implicit reward or cost for scheduling problems, we chose an arbitrary total reward value of 1. Constraint violations results in a negative reward. Constraint violations are calculated based on the features in the schedule data: Assigning 2 shifts on the same day to an employee is a constraint violation. Applying shifts on subsequent days to the same employee is a constraint violation only if shift 1 is in the evening and shift 2 is in the morning. The cost of a constraint violation is 1/(number of shifts-1) because it is not possible to have a violation on the first assignment.</p><p>The effect of reward function on performance is tested by comparing the performance of 3 reward functions; 1) calculating reward at the terminal state of an episode (Terminal), 2) calculating reward at every step (Step), and 3) assigning half of the reward stepwise, and the remaining half at a terminal state as reward for an acceptable solution (Step Bonus).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">Problem Complexity</head><p>Problem complexity can be increased in two ways; by the number of shifts and also by the ratio between shifts and employees. More shifts means more decisions for the agent to take, so there is more chance of a constraint violation occurring. The effect of shift-employee ratio is illustrated in 4, which shows a schedule and two pools. Combining the schedule with pool 1 has a higher ratio than for pool 2, which reduces the number of actions an agent can take without incurring a constraint violation.</p><p>Models were trained on 420 problems with between 3 and 8 shifts across 10,000 episodes. This means that the agent would see the same problem many times during training.</p><p>Models were tested on 500 problems from a range of complexity distributions, as can be seen in Table <ref type="table" target="#tab_1">2</ref>. The agent sees each problem once only.</p><p>The test problems have two levels of shift-employee ratio: an 'average' ratio of between 1.2 and 2.8, which reflects the first and third quartiles for shift-employee ratio in the Randstad data, and a 'high' ratio of between 2.9 and 5 to reflect the more complex problems seen in the data.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Results</head><p>Models were trained on 5 different seeds and each model was tested on every problem twice. The results were averaged across both runs for all 5 models. We tested the significance of our results using Welch's t-test, which doesn't assume equal variance between groups. Results are summarised in Table <ref type="table">3</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 4:</head><p>The effect of shift-employee ratio on action space. Green squares represent actions that will lead to an acceptable solution.</p><p>Shifts Ratio Range Problem Count In terms of problem complexity, average reward was significantly higher for Average ratio problems (m=0.74, sd=0.39) than for High ratio problems (m=0.65, sd=0.65), p&lt;.05. This effect was observed for each model. The effect of increasing shift count is less clear. Excluding results from the Random agent, problems with a max shift count of 8 (ms8) (m=0.72, sd=0.36) show significantly higher average reward than problems with max shift counts of 14 (m=0.68, sd=0.68), 18 (m=0.68, sd=0.68) and 23 (m=0.68, sd=0.68). However, there was no significant difference in average reward observed between the smallest problems (ms8) and the largest problems (ms30) (m=0.72, sd=0.41). Furthermore, ms30 showed higher average reward than ms23, ms18, and ms14. These ef-  fects were observed across both Average and High ratio problems.</p><p>Figure <ref type="figure" target="#fig_3">5</ref> shows the performance of the 3 reward functions against a Random agent baseline on average ratio scheduling problems of increasing shift count.</p><p>Figure <ref type="figure" target="#fig_4">6</ref> shows the performance of 3 reward functions against a Random agent baseline on high ratio scheduling problems of increasing shift count.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">Discussion</head><p>Personnel scheduling is a real-world combinatorial optimisation task that requires significant time and expertise to manage effectively. In this paper, we developed a scheduling problem solver based on a framework from Kool et al. <ref type="bibr" target="#b14">[15]</ref>, which was designed to solve another CO problem, the travelling salesman problem. Compared to previous works, which used problem-specific approaches, this framework is an opportunity for a data-driven approach to personnel scheduling that could be of great practical value. We created a graph representation of each combination of shift schedule and employee pool for use in a GNN. The GNN functions as the policy, using valuable information about the node in the context of the graph to guide the decisions of an agent. The parameters of the network are trained using the REINFORCE algorithm. To measure the ability of the RL scheduler to optimise scheduling problems, we used average reward and percentage acceptable metrics. We compared performance across 3 different reward functions and 10 different levels of problem difficulty. The Step Bonus model achieved consistently high performance across all problems, significantly better than the baseline and the other reward functions. Despite the fact that the problems in training set had a max shift count of 8, the trained Step Bonus agent was able to able achieve maximum score on 77% of High ratio, max shift 30 problems.</p><p>With a focus on an academic problem, rather than a real world application, <ref type="bibr" target="#b14">[15]</ref> were able to test their model on several standard sets of travelling salesman problems (plus variants) and compare the performance to other studies that used the same data. There are standard test sets for personnel scheduling problems but they were out of scope for this research as these problems generally have more complicated constraints than the one we used. A comparison that can be made between this study and <ref type="bibr" target="#b14">[15]</ref>, is the effect of node count on performance. The cost for TSPs is positively correlated to the number of nodes, so performance appears worse (higher cost) for larger problems. However, <ref type="bibr" target="#b14">[15]</ref> observed performance on 100 node TSP problems comparable to state of the art TSP solvers, suggesting that their graph model scaled well to larger problems. A similar case could be made for this research, as we saw no significant difference in performance between the hardest (ms30, High ratio) problems and the easiest (ms8, average ratio).</p><p>Because the size of the reward / cost for our system is negatively correlated to the number of shifts in a problem, violations are punished less harshly for big problems. However, the award of a bonus reward of .5 for an acceptable solution should counteract this.</p><p>Another explanation is that shift count and shiftemployee ratio are not the best or only way to measure the complexity of a personnel scheduling problem. The consistently high rewards we observed for the Step Bonus model suggest that the network was able to learn the constraint -no simultaneous or consecutive employee assignments -and that it was no harder to exploit it for a large problem than a small one. Aside from the bonus reward, a decision made at time-step 𝑡 doesn't effect 𝑡 + 1 . In a real world scheduling problem, this is unlikely to be the case as there will be additional constraints to consider. The most obvious constraint to add to this research would be one to ensure that each worker in the pool is assigned to at least one shift.</p><p>If, as expected, adding additional constraints increases complexity to an extent that performance is gets worse, there are architecture changes that could be made make the model more effective. The RL algorithm we have used, REINFORCE, is one of the most simple policy gradient methods. State of the art algorithms could be used, but a simple change worth testing is the use of a baseline, as seen in <ref type="bibr" target="#b14">[15]</ref>: "A good baseline reduces gradient variance and therefore increases speed of learning". As Figure <ref type="figure">7</ref> shows, Step Bonus appears to converge on a stable reward after only a few hundred episodes, but this could well change if more constraints were added.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">Conclusion</head><p>The results show that, with the right reward function, an RL agent was able to solve simplified personnel scheduling problems across a range of shift counts and shiftemployee ratios. We have shown that an agent can learn the constraints of a combinatorial optimisation problem from data. For future work, additional evaluation using real world data is of importance to better understand the range of applicability of our approach.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Pipeline • A pool csv containing a list of employee ids, and a schedule csv containing a list of shift ids, are the initial input. The schedule csv also contains features for each shift: day of week and time of day (morning or evening). • A custom OpenAI Gym RL environment takes the input csvs and combines them into a single matrix. • The length of an episode is equal to the number of shifts in the schedule csv. At each step in an episode, the matrix is converted to a bipartite graph and passed through the GNN. • The GNN outputs a policy; a probability distribution over the employee / action space. • The agent takes actions according to the policy and updates the weights of the policy network based on the loss function. • Repeat until a terminal state is reached: all shifts are assigned.</figDesc><graphic coords="4,109.63,307.24,183.02,117.36" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Example of a graph representation of a scheduling problem with 4 shifts and 2 employees. A bipartite graph has two distinct sets of nodes with edges connecting each node in one set with each node in the other. These graphs can be used as input to a graph neural network.</figDesc><graphic coords="5,150.92,461.21,141.73,71.34" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: This figure shows 2 scheduling problems with different shift counts in matrix and graph form. By using a fixed number of shift features for each problem size (highlighted in yellow), the same linear transformation (5 × 32) can be applied to the feature data of different sized graph representations. The employee features, which indicate an assignment of employee to shift, are stored in the edges. A red edge indicates an assignment. The employee feature data is transformed to 𝑛 × 32, where 𝑛 = to the number of employee nodes. Indexing starts at 0 (e.g. shift 0) and all features are one-hot encoded. With the exception of employee features, the first value for each feature is dropped to reduce collinearity, in accordance with standard practice.</figDesc><graphic coords="6,109.13,84.19,396.85,176.55" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Performance on problems with Average Shift-Employee ratio. Performance on both metrics is stable across levels of Problem Complexity, even increasing slightly.</figDesc><graphic coords="8,110.13,84.19,375.01,138.78" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: Performance on problems with High Shift-Employee ratio. Performance is less stable and significantly lower on high ratio problems.</figDesc><graphic coords="8,110.13,264.14,375.01,138.78" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="10,110.13,84.19,375.02,137.87" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc></figDesc><table><row><cell cols="5">Shifts Problem Count Avg. Ratio Min Ratio Max Ratio</cell></row><row><cell>3</cell><cell>70</cell><cell>0.74</cell><cell>0.375</cell><cell>1.5</cell></row><row><cell>4</cell><cell>70</cell><cell>0.98</cell><cell>0.500</cell><cell>2.0</cell></row><row><cell>5</cell><cell>70</cell><cell>1.23</cell><cell>0.625</cell><cell>2.5</cell></row><row><cell>6</cell><cell>70</cell><cell>1.47</cell><cell>0.750</cell><cell>3.0</cell></row><row><cell>7</cell><cell>70</cell><cell>1.72</cell><cell>0.875</cell><cell>3.5</cell></row><row><cell>8</cell><cell>70</cell><cell>1.96</cell><cell>1.000</cell><cell>4.0</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2</head><label>2</label><figDesc>Summary of test set problems showing size, shift-employee ratio and count of unique problems.Step Bonus also performed significantly better than the other reward functions Step (m=0.62, sd=0.62), p&lt;.05, and Terminal (m=0.58, sd=0.57), p&lt;.05.</figDesc><table><row><cell>3-8</cell><cell>1.2-2.8</cell><cell>50</cell></row><row><cell>3-8</cell><cell>2.9-5</cell><cell>50</cell></row><row><cell>9-14</cell><cell>1.2-2.8</cell><cell>50</cell></row><row><cell>9-14</cell><cell>2.9-5</cell><cell>50</cell></row><row><cell>15-18</cell><cell>1.2-2.8</cell><cell>50</cell></row><row><cell>15-18</cell><cell>2.9-5</cell><cell>50</cell></row><row><cell>19-23</cell><cell>1.2-2.8</cell><cell>50</cell></row><row><cell>19-23</cell><cell>2.9-5</cell><cell>50</cell></row><row><cell>24-30</cell><cell>1.2-2.8</cell><cell>50</cell></row><row><cell>24-30</cell><cell>2.9-5</cell><cell>50</cell></row><row><cell cols="3">Across all experiments, the best performing model was</cell></row><row><cell cols="3">the Step Bonus reward function (mean=0.89, standard</cell></row><row><cell cols="3">deviation=0.22) which returned significantly higher av-</cell></row><row><cell cols="3">erage reward than Random baseline (m=0.49, sd=0.49),</cell></row><row><cell>p&lt;.05.</cell><cell></cell><cell></cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">On the complexity of nurse scheduling problems</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">Den</forename><surname>Hartog</surname></persName>
		</author>
		<ptr target="https://studenttheses.uu.nl/handle/20.500.12932/22268" />
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
	<note type="report_type">Master thesis</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The state of the art of nurse rostering</title>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">K</forename><surname>Burke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>De Causmaecker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">V</forename><surname>Berghe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Van Landeghem</surname></persName>
		</author>
		<idno type="DOI">10.1023/B:JOSH.0000046076.75950.0b</idno>
		<ptr target="http://link.springer.com/10.1023/B:JOSH.0000046076.75950.0b" />
	</analytic>
	<monogr>
		<title level="j">Journal of scheduling</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="page" from="441" to="499" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Machine learning for combinatorial optimization: a methodological tour d&apos;horizon</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Bengio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Lodi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Prouvost</surname></persName>
		</author>
		<ptr target="http://arxiv.org/abs/1811.06128" />
	</analytic>
	<monogr>
		<title level="j">European Journal of Operational Research</title>
		<imprint>
			<biblScope unit="volume">290</biblScope>
			<biblScope unit="page" from="405" to="421" />
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Neural combinatorial optimization with reinforcement learning</title>
		<author>
			<persName><forename type="first">I</forename><surname>Bello</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Pham</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><forename type="middle">V</forename><surname>Le</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Norouzi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bengio</surname></persName>
		</author>
		<ptr target="http://arxiv.org/abs/1611.09940" />
	</analytic>
	<monogr>
		<title level="m">5th International Conference on Learning Representations</title>
				<imprint>
			<publisher>ICLR</publisher>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Human-level control through deep reinforcement learning</title>
		<author>
			<persName><forename type="first">V</forename><surname>Mnih</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Kavukcuoglu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Silver</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename><surname>Rusu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Veness</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>Bellemare</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Graves</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Riedmiller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Fidjeland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Ostrovski</surname></persName>
		</author>
		<ptr target="http://www.nature.com/articles/nature14236" />
	</analytic>
	<monogr>
		<title level="j">nature</title>
		<imprint>
			<biblScope unit="volume">518</biblScope>
			<biblScope unit="page" from="529" to="533" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Combinatorial optimization and reasoning with graph neural networks</title>
		<author>
			<persName><forename type="first">Q</forename><surname>Cappart</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Chételat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">B</forename><surname>Khalil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Lodi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Morris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Veličković</surname></persName>
		</author>
		<idno type="DOI">10.24963/ijcai.2021/595</idno>
		<ptr target="https://doi.org/10.24963/ijcai.2021/595" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Thirtieth International Joint Conference on Artificial Intelligence, IJCAI-21</title>
				<meeting>the Thirtieth International Joint Conference on Artificial Intelligence, IJCAI-21</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
			<biblScope unit="page" from="4348" to="4355" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Ra-Figure 7: Performance on training data. The Step Bonus reward function converges after less than 1000 episodes</title>
		<author>
			<persName><forename type="first">P</forename><surname>Battaglia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">B C</forename><surname>Hamrick</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Bapst</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sanchez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Zambaldi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Malinowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Tacchetti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Santoro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Faulkner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Gulcehre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Song</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ballard</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gilmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">E</forename><surname>Dahl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vaswani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Allen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Nash</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">J</forename><surname>Langston</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Dyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Heess</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Wierstra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Kohli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Botvinick</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Vinyals</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Pascanu</surname></persName>
		</author>
		<idno>arXiv</idno>
		<ptr target="https://arxiv.org/pdf/1806.01261.pdf" />
	</analytic>
	<monogr>
		<title level="m">Relational inductive biases, deep learning, and graph networks</title>
				<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A rotationbased branch-and-price approach for the nurse scheduling problem</title>
		<author>
			<persName><forename type="first">A</forename><surname>Legrain</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Omer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Rosat</surname></persName>
		</author>
		<ptr target="https://hal.archives-ouvertes.fr/hal-01545421" />
	</analytic>
	<monogr>
		<title level="j">Mathematical Programming Computation</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="page" from="417" to="450" />
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">G</forename><surname>Koole</surname></persName>
		</author>
		<title level="m">An Introduction to Business Analytics</title>
				<imprint>
			<publisher>Lulu. com</publisher>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Hybrid elitist-ant system for nurserostering problem</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">M</forename><surname>Jaradat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Al-Badareen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ayob</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Al-Smadi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Al-Marashdeh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ash-Shuqran</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Al-Odat</surname></persName>
		</author>
		<ptr target="https://linkinghub.elsevier.com/retrieve/pii/S1319157818300363" />
	</analytic>
	<monogr>
		<title level="j">Journal of King Saud University-Computer and Information Sciences</title>
		<imprint>
			<biblScope unit="volume">31</biblScope>
			<biblScope unit="page" from="378" to="384" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Solving the travelling salesman problem with a hopfield-type neural network</title>
		<author>
			<persName><forename type="first">J</forename><surname>Mańdziuk</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Demonstratio Mathematica</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="page" from="219" to="232" />
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Deep neural networked assisted tree search for the personnel rostering problem</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>De Causmaecker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Dou</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 13th International Conference on the Practice and Theory of Automated Timetabling-PATAT</title>
				<meeting>the 13th International Conference on the Practice and Theory of Automated Timetabling-PATAT</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
			<biblScope unit="volume">2</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Roster evaluation based on classifiers for the nurse rostering problem</title>
		<author>
			<persName><forename type="first">R</forename><surname>Václavík</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Šcha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Hanzálek</surname></persName>
		</author>
		<ptr target="http://arxiv.org/abs/1804.05002" />
	</analytic>
	<monogr>
		<title level="j">Journal of Heuristics</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="page" from="667" to="697" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<author>
			<persName><forename type="first">Y</forename><surname>Li</surname></persName>
		</author>
		<idno type="arXiv">arXiv:1701.07274</idno>
		<ptr target="http://arxiv.org/abs/1701.07274" />
		<title level="m">Deep reinforcement learning: An overview</title>
				<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
	<note type="report_type">arXiv preprint</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Attention, learn to solve routing problems!</title>
		<author>
			<persName><forename type="first">W</forename><surname>Kool</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Van Hoof</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Welling</surname></persName>
		</author>
		<ptr target="https://openreview.net/forum?id=ByxBFsRqYm" />
	</analytic>
	<monogr>
		<title level="m">7th International Conference on Learning Representations, ICLR 2019</title>
				<meeting><address><addrLine>New Orleans, LA, USA</addrLine></address></meeting>
		<imprint>
			<publisher>OpenReview</publisher>
			<date type="published" when="2019">May 6-9, 2019. 2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">S</forename><surname>Sutton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">G</forename><surname>Barto</surname></persName>
		</author>
		<title level="m">Reinforcement learning: An introduction</title>
				<imprint>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page">352</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">The graph neural network model</title>
		<author>
			<persName><forename type="first">F</forename><surname>Scarselli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gori</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">C</forename><surname>Tsoi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hagenbuchner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Monfardini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE transactions on neural networks</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="page" from="61" to="80" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Mirhoseini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Goldie</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Yazgan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Songhori</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y.-J</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Johnson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Pathak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bae</surname></persName>
		</author>
		<idno type="arXiv">arXiv:2004.10746</idno>
		<ptr target="http://arxiv.org/abs/2004.10746" />
		<title level="m">Chip placement with deep reinforcement learning</title>
				<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
	<note type="report_type">arXiv preprint</note>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Simple statistical gradient-following algorithms for connectionist reinforcement learning</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">J</forename><surname>Williams</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Machine learning</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="page" from="229" to="256" />
			<date type="published" when="1992">1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Modeling relational data with graph convolutional networks</title>
		<author>
			<persName><forename type="first">M</forename><surname>Schlichtkrull</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">N</forename><surname>Kipf</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bloem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">V D</forename><surname>Berg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Titov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Welling</surname></persName>
		</author>
		<ptr target="http://arxiv.org/abs/1703.06103" />
	</analytic>
	<monogr>
		<title level="m">European semantic web conference</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="593" to="607" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Human-level control through deep reinforcement learning</title>
		<author>
			<persName><forename type="first">V</forename><surname>Mnih</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Kavukcuoglu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Silver</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename><surname>Rusu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Veness</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>Bellemare</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Graves</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Riedmiller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Fidjeland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Ostrovski</surname></persName>
		</author>
		<ptr target="http://www.nature.com/articles/nature14236" />
	</analytic>
	<monogr>
		<title level="j">nature</title>
		<imprint>
			<biblScope unit="volume">518</biblScope>
			<biblScope unit="page" from="529" to="533" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
