Employee Scheduling With SAT-Based Pseudo-Boolean Constraint Solving

The aim of this paper is practical: to show that, for at least one important real-world problem, modern SAT-based technology can beat the extremely mature branch-and-cut solving methods implemented in well-known state-of-the-art commercial solvers such as CPLEX or Gurobi. The problem of employee scheduling consists in assigning a work schedule to each of the employees of an organization, in such a way that demands are met, legal and contractual constraints are respected, and staff preferences are taken into account. This problem is typically handled by first modeling it as a 0–1 integer linear program (ILP). Our experimental setup considers as a case study the 0–1 ILPs obtained from the staff scheduling of a real-world car rental company, and carefully compares the performance of CPLEX and Gurobi with our own simple conflict-driven constraint-learning pseudo-Boolean solver.


I. INTRODUCTION
In essence, the problem of employee scheduling (also known as staff, workforce, personnel scheduling or rostering) consists in assigning a work schedule to each of the employees of an organization, in such a way that predicted demands are met. Typically valid schedules also have to satisfy several legal and contractual constraints regarding, e.g., the daily worked hours. Other restrictions are often taken into account as well for the sake of the well-being of the employees, such as staff preferences or limitations on work on evenings and weekends.
The interest in the problem stems from the fact that the quality of the schedules of a company has a major impact on its efficiency, which is key in today's highly competitive environment. By adapting better to the customer demands and improving workforce capacity utilization, production can be increased and/or labor costs can be reduced. For instance, a company may gain an edge over the competition by shortening overtime, which can be expensive for the business and disturbing for employees [33]. Moreover, when carried out by hand, scheduling also involves tedious administration and significant indirect costs, as human resources managers may have to spend valuable countless hours on trying to find The associate editor coordinating the review of this manuscript and approving it for publication was Muhammad Zakarya .
schedules that satisfy all of the requirements. Last but not least, rosters heavily influence the health and personal life of the staff [21]. For example, the sleep/wake cycle may be disrupted by exposure to light and activity at night, a time when the human body is biologically programmed to be in darkness and sleep. This leads to a desynchronization of the rhythmic body functions (hormones, body temperature, digestion, . . . ) with the circadian rhythm, which eventually can cause health problems such as fatigue during work and sleep problems after night shifts [3]. Additionally, working at times that interfere with the social personal development, particularly evenings and weekends, is likely to impair work-life balance [40]. Even setting aside ethical considerations, since employee's satisfaction in their work place is directly linked to their engagement and the ultimate success of their activity, from the perspective of the business the design of appropriate schedules is beneficial for service quality. Furthermore, obviously employee's contentment also plays an important role in employee retention, which from the economic point of view is also worth considering: failing to retain the staff can be an expensive problem for an organization since, as some studies have shown, the total cost of turnover can reach up to 90-200 % of the employee's annual salary [8].
For all these reasons, automated employee scheduling has been investigated since as early as the 1950's. Starting with the seminal work by Edie [16] and Dantzig [10], the problem VOLUME 9, 2021 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ has received a great deal of attention and has been applied to numerous contexts such as airlines, health care systems, police, call centres and retail stores [20], [38]. As a result of this research work, a vast bibliography has been produced in the area; e.g., a comprehensive review of about 700 references can be found in [19]. One of the reasons for this extensive literature is that each real-world application has its own particularities and legal conditions that make it necessary to design a tailored model. Just to give a glimpse of the intricacies of employee scheduling, for instance in Spain as of 2019 there were about 2600 different collective labor agreements. Also, in each application the availability of computational resources may be different, which in turn determines the appropriateness of the techniques for generating the schedules. While in some contexts it is permissible that this process takes hours, in other situations any execution that goes beyond few minutes is unacceptable, because for example the scheduler needs to take care of last-minute changes such as sudden leaves of absence or updates on the predicted demands.
Another factor that explains the wide range of techniques that are available in the literature is the computational complexity of the problem (e.g., nurse rostering, a particular case of employee scheduling, is well-known to be NP-hard [27]). Due to this high complexity, heuristic methods are commonly used (simulated annealing, tabu search, genetic algorithms, etc.). Here we focus on complete methods, those that with sufficient time (and memory) ensure that: • If the instance is feasible (i.e., some solution satisfying all constraints exists), they always eventually find the optimal solution.
• If the instance is infeasible (no solution exists), they always eventually prove it, and moreover they are able to give a simplified ''reason'' for that infeasibility (i.e., a -frequently small-subset of the input constraints that is already infeasible by itself). This may be useful, e.g., in order to identify when and why a problem specification does not allow any valid schedule, which has recently been raised as an important issue by the community [21]. Moreover, the complete methods that will be considered in this work have the property that, while running, they can report about the progress they are making, indicating: • the cost of the best solutions found so far; • a lower bound for the optimal cost (the minimal cost that any solution must have); • the ''gap'' between both, that is, the remaining room for improvement, which gets smaller while solutions improve (their cost gets lower) and the lower bound rises as it gets more precise. All these guarantees of the complete methods are obviously crucial in many real-world employee scheduling applications. On the other hand, incomplete heuristic approaches are sometimes able to find good solutions quickly, but they typically offer no such guarantees: if the instance is infeasible, they cannot prove it, nor pinpoint any reason for it, they cannot ensure that the generated solution is optimal, and they usually give no lower bounds either.
In the (complete) methods considered in this paper, the employee scheduling problem instance is first (automatically) translated into an integer linear program (ILP), and more specifically as a 0-1 ILP, i.e., one in which all variables are Boolean. Traditionally, 0-1 ILPs are handled with a solver based on the simplex algorithm and branch-andcut [37]. It has to be highlighted that the technology behind this kind of solvers is extremely mature, after decades of improvements: according to [7], between 1991 and 2017 they have experienced a 1.3 million times speedup from machineindependent algorithmic improvements only (that is, a factor of 1.8 per year)! In parallel, in the last two decades solvers for the propositional satisfiability (SAT) problem [6] have also made a breathtaking progress, so tremendous that it is already being referred to as the SAT revolution [39]. Just to illustrate the capabilities of state-of-the-art SAT solvers, nowadays they routinely deal with huge formulas coming from real-world applications with millions of variables and clauses (and leading developers foresee that, in the short term, handling formulas with thousands of millions of variables will be possible [5]). It is therefore of no surprise that SAT solvers and their extensions [32] have emerged as a serious alternative to simplex-based integer linear programming tools when solving NP-complete problems, in particular those of a combinatorial and logical (rather than numerical) nature.
Following this idea, in this paper we focus on the staff scheduling of a car rental company as a case study. We model the problem as a 0-1 ILP, and then we consider two complete methods for solving the resulting 0-1 ILPs: • branch-and-cut-based solving, as in the commercial solvers CPLEX 1 and Gurobi 2 ; • conflict-driven, constraint learning pseudo-Boolean solving, inspired by modern SAT solving techniques. To the best of our knowledge, for this problem no other complete approach (SMT, direct encodings into SAT) is competitive with these two (see Section II-D below why). The main contribution in this work is the experimental observation that, for this particular application, a pseudo-Boolean solver can outperform state-of-the-art commercial Operations Research software. This is a remarkable result, since up to now, it was strongly believed in the community that commercial MIP solvers such as Gurobi and CPLEX are much more powerful than the current pseudo-Boolean technology [14].
The paper is structured as follows. After reviewing the background on 0-1 ILPs and solving techniques in Section II, in Section III we describe in detail the employee scheduling problem we aim at solving. A 0-1 ILP model for this problem is given in Section IV. The results of the experimental 1 www.ibm.com/products/ilog-cplex-optimization- comparison between the different algorithmic alternatives are shown and discussed in Section V. Finally, Section VI presents the conclusions and sketches some ideas for future work.

II. PRELIMINARIES
An (integer linear) constraint over X is an expression of the form a 1 x 1 + · · · + a n x n ≥ a 0 where, for all i in 0 . . . n, the coefficients a i are integers. An integer linear program (ILP) over X is a set S of integer linear constraints over X , called the constraints of the ILP, together with a linear expression of the form c(x 1 , · · · , x n ) = c 1 x 1 + · · · + c n x n , called the cost function. A solution to a set of constraints S over X (and, by extension, to an ILP whose set of constraints is S) is a function σ : X → Z that satisfies every constraint a 1 x 1 + · · · + a n x n ≥ a 0 in S, that is, a 1 σ (x 1 ) + · · · + a n σ (x n ) ≥ Z a 0 . A minimal solution to an ILP with constraints S and cost function c is a solution σ to S such that c(σ ) ≤ c(σ ) for any solution σ to S. The problem of Integer Linear Programming consists in finding a minimal solution to a given integer linear program.
A variable x is 0-1 (also called binary or Boolean) in an ILP if its set of constraints S contains the constraints 0 ≤ x and x ≤ 1, so that effectively x can only take values either 0 or 1. An ILP such that all variables are 0-1 is a 0-1 linear program, and the problem of finding a minimal solution in this case is referred to as 0-1 Linear Programming. Constraints are then called 0 − 1 constraints or (linear) pseudo-Boolean constraints.
Traditionally 0-1 linear programs have been handled with generic Operations Research ILP software packages using branch-and-cut. The idea of this procedure is to drop the integrality constraints (thus obtaining the so-called linear programming relaxation of the problem) and apply the simplex algorithm on it. If the optimal solution to the relaxation is integral, then the search is over. Otherwise a cut inequality that discards the spurious solution may be added to tighten the relaxation, and the simplex algorithm is applied again. If it is considered that adding cuts is no longer useful, eventually branching is performed: a variable which is assigned a non-integer value is chosen and the problem is split in two by adding a new bound on this variable. A more thorough description of the algorithm of branch-and-cut can be found, e.g., in [37].

B. SAT SOLVING
The problem of SAT consists in finding solutions to sets of clauses of the form that is, finding 0-1 values for the variables such that for each such a clause some x i is 1 or some y j is 0. Note that such a clause is equivalent to a 0 − 1 constraint The underlying algorithm of modern SAT solvers is the Davis-Putnam-Logemann-Loveland (DPLL) procedure [11], [12]. In short, DPLL is a backtracking algorithm that searches for a solution by smartly exploring the search space. At each step a decision is made: a variable is chosen for branching and is assigned a truth value. Then the consequences of that decision are propagated, and variables that are forced to a value are detected. Each time a conflict is identified, the decision is backtracked: all assignments up to the last decision are undone and the branching variable is forced to take the negated value. When all truth values have been tried without success, then the previous decision is backtracked. If the decision is the first one, and so there is no previous decision, then it can be asserted that the formula is unsatisfiable.
This simplified description is anyhow far from state-ofthe-art implementations of SAT solvers. What explains their astonishing success is the so-called Conflict-Driven Clause-Learning (CDCL) scheme, which enhances DPLL with a number of techniques: • conflict analysis and backjumping (i.e., nonchronological backtracking) [28]; • learning (that is, addition) of new clauses generated from conflicts [13]; • variable decision heuristics that select the most active variables in recent conflicts, like VSIDS [30]; • value decision heuristics that select promising values for the decision variable, such as the last phase strategy [34]; • data structures such as the 2-watched literal scheme [30] for efficiently identifying propagations and conflicts; • restarts [23]; • in-processing and simplification of learnt clauses [26]; • clause cleanups that periodically delete counterproductive learnt clauses, e.g. based on their activity in conflicts [22] or their literal block distance [4].

C. PSEUDO-BOOLEAN SOLVING
Given a 0-1 ILP, its minimal solution can be found by iteratively solving a sequence of satisfiability problems, typically successively strengthened by enforcing that a better solution should exist. However, there is a complication if these satisfiability problems are to be solved with a SAT solver: in the language of SAT the only primitive constraints are clauses, and the pseudo-Boolean constraints in these problems cannot be directly handled. A possibility to circumvent this situation is to extend the SAT techniques so that linear constraints become first-class citizens in the language of the solver and can be dealt with natively. Among other things, this requires to adapt the propagation mechanism, as well as the algorithms and data structures for quickly detecting when a propagation can be triggered or a conflict has arisen. This is not trivial, because VOLUME 9, 2021 although it is possible to extend the watched literal scheme from CDCL SAT, unlike clauses a pseudo-Boolean constraint may need to watch more than 2 literals, which complicates an efficient implementation.
Most importantly, conflict analysis has to be generalized in such a way that the backjumping and learning of the CDCL scheme are possible. Conflict analysis in SAT is based on resolution [35], which can be extended to pseudo-Boolean constraints with the generalized resolution rule [15], [25]. Unfortunately, a direct replacement of resolution by generalized resolution in conflict analysis breaks the invariants of the algorithms [6]. In order to overcome this problem, constraints arising in conflict analysis have to be processed, for example with weakening and saturation [9] or rounding [18].
From now on we will refer to solvers of 0-1 ILPs under this framework, which is the one that we will follow in this work, as (CDCL) pseudo-Boolean solvers.

D. OTHER COMPLETE SAT-BASED METHODS FOR 0-1 ILP SOLVING
There exist alternative approaches for handling 0-1 ILPs with SAT-related techniques. A possibility is to eagerly encode linear constraints into SAT by adding new clauses and possibly new variables in such a way that the set of solutions is preserved, for instance using sorting networks, adder networks or binary decision diagrams [1], [17], [29], [36]. However, the number of clauses that are needed for expressing the pseudo-Boolean constraints may be so large that the resulting formula becomes impractical.
Another technique for dealing with pseudo-Boolean constraints is to apply a lazy approach using SMT [2], [32]. Under this paradigm, first of all each pseudo-Boolean constraint is translated into an equivalent clause if possible. After this preprocessing step, a SAT solver, called the engine, produces assignments that satisfy the clauses. For each of the remaining constraints a theory solver is defined, which certifies given an assignment whether or not the associated constraint holds for that assignment. While this method turns out to be very efficient when the number of non-clausal pseudo-Boolean constraints is small, when this is not the case the overhead of handling each constraint individually with a theory solver becomes prohibitive.

III. PROBLEM DESCRIPTION
The work presented in this article was developed in the context of a proof of concept of Barcelogic (https://barcelogic. com), a spin-off of the Technical University of Catalonia, for a car rental company.
The car rental company operates in the main airports and train stations in Spain. For every day of the year and for the time slots: • from 7 to 9, • from 15 to 17, • from 9 to 11, • from 17 to 19, • from 11 to 13, • from 19 to 21, and • from 13 to 15, • from 21 to 24, the company has an estimation of the number of services (collection or delivery) that should be handled based on historical data and statistical models. The months from April to September are of particular interest to the company, since in spring and summer tourism and therefore car rental is at its highest; as an illustration, see Figure 1 for a representative sample of the estimations on a day in February, July and November. In order to provide the services the company has a permanent staff, and if needed it can also hire temporary workers on a monthly basis. If a temporary worker is ever hired, there is a once-and-forall cost to be paid (recruiting and training expenses, etc.). To approximate the minimum number of workers that should be available at each slot, the company has computed a productivity measure that counts the number of services that an employee can process per hour. Apart from ensuring that the demand is met, schedules have to satisfy several legal constraints. For example, according to the collective labor agreement and to the contract, there is a minimum and a maximum number of minutes that an employee can work the same day, and a maximum number of minutes of daily presence, that is, the time an employee can be at the work place daily (including breaks). There is also a minimum and a maximum for the number of minutes of consecutive work, i.e., in which the employee works without interruption. Finally, each contract has a different monthly cost.
Daily time slots are divided into morning shift (slots ending not later than 13) and afternoon shift (slots starting not sooner than 13). On a particular day, an employee can only work in the morning shift or in the afternoon shift. Moreover, for the sake of fairness, for each window of a certain prefixed number of consecutive days, the (absolute) difference between days with a morning shift and days with an afternoon shift should be limited.
There are other restrictions that constrain the schedule of consecutive days. In particular, there is a maximum on the number of days that an employee can work consecutively, that is, without a rest day in between. Similarly, there is a maximum on the number of days that an employee can rest consecutively, i.e., without a work day in between.
Finally, workers can ask for a leave of daily absence. The company foresees that there may be a non-negligible number of these leaves and that they may be communicated on a very short notice. Also, the estimation of the number of services for each daily time slot is regularly being updated. The need for these updates has become palpable in 2020 and 2021, with the outbreak of the COVID-19 pandemic and the everchanging restrictions on mobility that still exist as of the date of this writing (June 2021). Altogether, it is necessary that schedules can be recomputed efficiently in few minutes.

IV. 0-1 ILP MODEL
In this section we will describe a 0-1 ILP model for our problem. To that end, let us introduce the sets:

E:
set of employees S: set of slots (possibly of different length) MS: set of morning slots AS: set of afternoon slots D: set of (consecutive) days M: set of (consecutive) months Slots and days will sometimes be viewed as chronologically ordered integer identifiers, so that s + 1 and d + 1 are the slot and the day that follow slot s and day d, respectively. Note also that the morning and afternoon slots form a partition of the set of slots, i.e., MS ∪ AS = S and MS ∩ AS = ∅. Moreover, when it is convenient we will consider a month m ∈ M as the sets of days it consists of, so that e.g. ∀d ∈ m ranges over all days of month m.
In order to formulate our model, let us also consider the following input parameters, all of which are natural numbers except for the last item, which are Boolean values.
¬wd ed ∀e ∈ E, d ∈ D. Abs ed = 1 (5) ¬wsd esd ∨ ms ed ∀e ∈ E, s ∈ MS, d ∈ D (6) ¬wsd esd ∨ as ed ∀e ∈ E, s ∈ AS, d ∈ D (7) ¬ms ed ∨ ¬as ed ∀e ∈ E, d ∈ D Some remarks about the notation used in the model above are in order. Some constraints are written as clauses both for highlighting the logical part of the problem as well as for the sake of clarity. Other notational conventions are that, given a time slot s ∈ S, the values s(s) and e(s) represent the start time and the end time of s, expressed as minutes since midnight. Therefore, in Constraints 11 and 12 the expression e(s )−s(s) represents the minutes that lapse between the start of s and the end of s . In particular, e(s)−s(s) is the length of s in minutes, which we also denote by mins(s) in Constraints 13, 14, and 15 for readability.
Let us review the parts of the model and explain their intuitive meaning. The cost function is aimed at minimizing the aggregated labor costs over all employees, decomposed in a setup cost (W e w e ) and a monthly cost (Wm em wm em ). In practice the costs of the fixed staff have already been discounted, so it can be assumed that W e = Wm em = 0 for any e ∈ E who is permanent.
Constraints 1 ensure that the demand of employees is met at any time. Clauses 2, 3 and 4 activate the variables wd ed , wm em and w e respectively in order to indicate that there has been daily, monthly or overall work. Leaves are encoded with Clauses 5 by forbidding employee e to work on day d if they must be absent on that day. Constraints 6 activate the variables ms ed of the morning shift when employee e works on day d on a morning slot s; and symmetrically Constraints 7 activate the variables as ed of the afternoon shift when employee e works on day d on an afternoon slot s. Variables ms ed and as ed also appear in Clauses 8, which exclude that an employee could work on the same day with a morning and an afternoon shift. Constraints 9 and 10 impose that, every Per consecutive days, the absolute difference of the number of days an employee works with a morning shift and with an afternoon shift is at most MaxD.
The next constraints restrain the daily schedule. Clauses 11 and 12 guarantee that the presence of an employee e is at most MaxP e . Note that here it is used that morning and afternoon shifts are mutually exclusive. This property is also used in Constraints 13 and 14, which enforce that employee e works at most MaxW e minutes. As regards the minimum work per day, Constraints 15 encode the implication I.e., if e starts working at slot s 2 after having had a rest at the previous slot s 1 , since s 2 and s 3 are too close in time, e should work at slot s 3 too. On the other hand, Clauses 17 express that employee e cannot work more than MaxC e minutes without a break: for any sequence of consecutive slots spanning more than MaxC e minutes, we enforce that e should rest in at least one of the slots. The condition e(s+K −1)−s(s) ≤ MaxC e < e(s + K ) − s(s) ensures that the sequence of consecutive slots {s, s + 1, . . . , s + K } is the shortest one starting at s which covers more than MaxC e minutes.
Finally, Clauses 18 and 19 limit work and rest consecutive days. Namely, Clauses 18 express that employee e can work at most MaxCW e consecutive days by imposing that in any interval of MaxCW e + 1 days, at least one must be a rest day. Similarly, Clauses 19 ensure that employee e can rest at most MaxCR e consecutive days by imposing that in any interval of MaxCR e + 1 days, at least one must be a work day.

V. EXPERIMENTS
This section is devoted to the experimental comparison of different tools for solving our employee scheduling problem with the 0-1 ILP model proposed in Section IV.
To that end, we have built a benchmark suite of 25 instances obtained from real data provided by the car rental company involved in this project. Each instance corresponds to a period of two months in spring-summer, from April to September. The reason for this is that, as pointed out in Section I, this season is the busiest time for tourism. As a consequence, the demand is at its highest point, the labor capacity of the permanent staff get close to its limit (or even overpassed), and scheduling becomes critical. Moreover, planning two months ahead gives the car rental company a time margin with which to react in case bottlenecks are detected and temporary workers have to be hired. To give an idea of the complexity of the instances, they all have about 21k (Boolean) variables and 65k constraints.
In this experimental evaluation we compare the following solvers: 1) Gurobi (v.9.1.2, latest version) 2) CPLEX (v.20.1.0, latest version) 3) PB Gurobi and CPLEX are well-known 0-1 ILP solvers, and are widely considered to be representative of the state of the art in branch-and-cut solving. On the other hand, PB is our basic implementation of the CDCL-based integer linear programming solver described in [31] but specialized for 0-1 variables. It is worth noting that, while Gurobi and CPLEX are long-standing mature commercial tools (the first version of CPLEX dates back to 1988!), PB is a prototype for research purposes only. In fact, there are possibly other better pseudo-Boolean solvers that PB. The reason for not including other pseudo-Boolean solvers in these experiments is that our aim is not to compare PB with other solvers of the same kind, but rather to make a point on the competitiveness of conflict-driven constraint-learning pseudo-Boolean technology against state-of-the-art commercial branch-andcut solvers.
All experiments reported next were carried out on a standard 3.00 GHz 8-core Intel i7-9700 desktop with 16 Gb of RAM. The time limit of all executions was set to 300 seconds of wall-clock time. Given that the car rental company has several centers to schedule at the same time, this was considered a reasonable choice. It is important to highlight that our implementation PB is sequential and only uses one core, while on the other hand Gurobi and CPLEX are run in parallel mode. Therefore, they use all of the eight cores that are available in the computer used for the experiments.  each instance. In the top one we indicate the cost of the best solution found with each solver, and in the bottom one the time in seconds required for finding that solution (between parentheses). A dash means that the time limit was reached without any solution. The timing TO stands for time out. Over all solvers, the one with the best cost is highlighted in bold face (or in case of a tie, the one that found the solution with that cost the earliest).
The performance of PB is very good compared to the competition. As can be seen in Table 1, PB finds good solutions very efficiently, even in instances for which the other solvers do not report a solution within the timeout. Except for one instance, PB is the solver that gives the best results. One of the reasons for this success is that, as highlighted in the representation of the constraints in Section IV, the problem has an important logical component, which makes SAT-based techniques particularly appropriate.
In order to make a more precise analysis, in Figure 2 we show the graphs with the evolution of the cost of the best solution along time for two representative instances. These graphs reveal that PB finds many solutions before reaching the time limit, while Gurobi and CPLEX find far fewer. On the other hand, in both cases Gurobi is able to prove that its best solution is in fact optimal, which is indicated in the plot by the line not reaching the time limit. As regards proving optimality, PB does not appear to be as powerful as Gurobi, and once the optimal solution has been found, it gets stagnant and the time limit is reached before the search can be completed. This suggests that PB and Gurobi could be combined in a two-phase process, in which PB is run first for a little time and then Gurobi uses the best solution found with PB as a starting point. This idea requires further experimentation and is left as future work.

VI. CONCLUSION AND FUTURE WORK
We have shown that SAT-based tools for solving 0-1 ILPs can be competitive with commercial Operations Research software. We have illustrated it with the case study of a car rental company, for which we have provided a 0-1 ILP model that we have used as the basis for our experimental comparison. Since the problem that is addressed here does not show any significant differences from the typical employee scheduling problem, we foresee that the positive results that have been obtained can be also reproduced with other more general employee scheduling variants. For this reason, as future work we plan to enlarge the language for specifying schedules in order to incorporate new constraints, e.g., limiting the weekly, monthly and yearly worked time, as well as enforcing the fairness and balance of the schedules between employees. More broadly, we would also like to investigate other scheduling problems with a core combinatorial structure, for which SAT-based techniques may also outperform state-of-the-art Operations Research tools.
Last but not least, we also plan to improve our pseudo-Boolean solver and study how to complete the search and produce an optimality proof more efficiently, possibly by combining it with simplex relaxations as outlined above. Another idea for speeding up the performance is to take advantage of the nowadays widespread multicore architecture of computers and to implement a parallel solver, as commercial Operations Research tools do. As a first step, a portfolio solver where the workers share some of the constraints (e.g., unit or binary clausal constraints) could be developed, following the current practice in pure SAT solving [24].