Skip to main content

Measures of balance in combinatorial optimization

Abstract

The concept of balance plays an important role in many combinatorial optimization problems. Yet there exist various ways of expressing balance, and it is not always obvious how best to achieve it. In this methodology-focused paper, we study three cases where its integration is deficient and analyze the causes of these inadequacies. We examine the characteristics and performance of the measures of balance used in these cases, and provide general guidelines regarding the choice of a measure.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3

Notes

  1. Balancing with \(L_{2}\)-deviation rather than \(L_{1}\)-deviation turns an IP model into a (Mixed-)Integer Nonlinear Programming one (MINLP). Although impressive advances in solving MINLPs have been made in the last 15 years (D’Ambrosio and Lodi 2013), MINLPs are still, in general, significantly more difficult to solve than ILPs.

  2. In this paper, the models presented in “Appendices B, C, and D” were solved via CP.

  3. In this paper, we call an outlier any value equal to one of the two extremal values of the dispersion interval.

  4. A complete model for the BACP can be found in “Appendix B”.

  5. Guidelines to generate equivalent instances to those used can be found in Monette et al. (2007).

  6. Our dataset can be found at https://github.com/PhilippeOlivier/mobico.

  7. A complete model for the NPAP can be found in “Appendix C”.

  8. Our dataset can be found at https://github.com/PhilippeOlivier/mobico.

  9. A complete model for the BBSS problem can be found in “Appendix D”.

  10. In contrast with the BACP and the NPAP, in the following objectives the mean is implicitly taken into account, since it is always 0.

  11. Our dataset can be found at https://github.com/PhilippeOlivier/mobico.

  12. We are forced to keep the problem size small in order to solve all instances to optimality in a reasonable amount of time, for illustrative purposes.

  13. When constrained, the capacity is set to 5, which is half the maximum demand of a station. When constrained, the route length is set to 100, which is roughly half the length of an optimal TSP tour of the stations.

  14. The complexity stems from the fact that an under-mean value and an over-mean value may have distinct fractional parts, and that we do not know beforehand how many values will be under the mean, and how many will be over the mean.

  15. Here, we are assuming that \(\mu - \ell \le u - \mu \). If instead \(\mu - \ell > u - \mu \), the logic would be reversed.

  16. In the interest of simplicity, we have left aside the staffing part of the NPAP as it is not particularly meaningful for our purposes. The reader may refer to the cited paper for details.

References

  • Brams SJ, Jones MA, Klamler C (2006) Better ways to cut a cake. Not Am Math Soc 53(11):1314–1321

    Google Scholar 

  • Castro C, Manzano S (2001) Variable and value ordering when solving balanced academic curriculum problems. In: Proceedings of 6th workshop of the ERCIM WG on constraints (Prague, June 2001)

  • Ceschia S, Di Gaspero L, Schaerf A (2014) The generalized balanced academic curriculum problem with heterogeneous classes. Ann Oper Res 218(1):147–163

    Article  Google Scholar 

  • Chemla D, Meunier F, Wolfler Calvo R (2013) Bike sharing systems: solving the static rebalancing problem. Discrete Optim 10(2):120–146

    Article  Google Scholar 

  • Chiarandini M, Di Gaspero L, Gualandi S, Schaerf A (2012) The balanced academic curriculum problem revisited. J Heuristics 18(1):119–148

    Article  Google Scholar 

  • Contardo C, Morency C, Rousseau LM (2012) Balancing a dynamic public bike-sharing system. Technical report, CIRRELT

  • Corbett-Davies S, Pierson E, Feller A, Goel S, Huq A (2017) Algorithmic decision making and the cost of fairness. CoRR abs/1701.08230

  • D’Ambrosio C, Lodi A (2013) Mixed integer nonlinear programming tools: an updated practical overview. Ann Oper Res 204(1):301–320

    Article  Google Scholar 

  • Di Gaspero L, Rendl A, Urli T (2013a) A hybrid ACO+CP for balancing bicycle sharing systems. In: Blesa MJ, Blum C, Festa P, Roli A, Sampels M (eds) Hybrid Metaheuristics. Springer, Berlin, pp 198–212

  • Di Gaspero L, Rendl A, Urli T (2013b) Constraint-based approaches for balancing bike sharing systems. In: Schulte C (ed) Principles and practice of constraint programming. Springer, Berlin, pp 758–773

  • Di Gaspero L, Rendl A, Urli T (2016) Balancing bike sharing systems with constraint programming. Constraints 21(2):318–348

    Article  Google Scholar 

  • Dong X, Cai Y (2019) A novel genetic algorithm for large scale colored balanced traveling salesman problem. Future Gener Comput Syst 95:727–742

    Article  Google Scholar 

  • Everitt BS, Skrondal A (2010) The Cambridge dictionary of statistics, vol 4. Cambridge University Press, Cambridge

    Book  Google Scholar 

  • Gaudioso M, Legato P (1991) Linear programming models for load balancing. Comput Oper Res 18(1):59–64

    Article  Google Scholar 

  • Hemmati H, Arcuri A, Briand L (2013) Achieving scalable model-based testing through test case diversity. ACM Trans Softw Eng Methodol 22(1):1–42

    Article  Google Scholar 

  • Hnich B, Kiziltan Z, Walsh T (2002) Modelling a balanced academic curriculum problem. In Jussien N, Laburthe F (eds) Proceedings of the fourth international workshop on integration of AI and OR techniques in constraint programming for combinatorial optimisation problems (CP-AI-OR’02), Le Croisic, France. pp 121–131

  • Hnich B, Kiziltan Z, Miguel I, Walsh T (2004) Hybrid modelling for robust solving. Ann Oper Res 130(1):19–39

    Article  Google Scholar 

  • Larusic J, Punnen AP (2011) The balanced traveling salesman problem. Comput Oper Res 38(5):868–875

    Article  Google Scholar 

  • Levina E, Bickel P (2001) The earth mover’s distance is the mallows distance: some insights from statistics. In: Proceedings eighth IEEE international conference on computer vision. ICCV 2001, vol 2. pp 251–256

  • Lodi A (2010) Mixed integer programming computation. In: Jünger M, Liebling TM, Naddef D, Nemhauser GL, Pulleyblank WR, Reinelt G, Rinaldi G, Wolsey LA (eds) 50 Years of integer programming 1958–2008. Springer, Berlin, pp 619–645

    Chapter  Google Scholar 

  • Marsh MT, Schilling DA (1994) Equity measurement in facility location analysis: a review and framework. Eur J Oper Res 74(1):1–17

    Article  Google Scholar 

  • Monette JN, Schaus P, Zampelli S, Deville Y, Dupont P (2007) A CP approach to the balanced academic curriculum problem. In: Symcon’07, the seventh international workshop on symmetry and constraint satisfaction problems

  • Mullinax C, Lawley M (2002) Assigning patients to nurses in neonatal intensive care. J Oper Res Soc 53(1):25–35

    Article  Google Scholar 

  • Nash J (1953) Two-person cooperative games. Econometrica 21(1):128–140

    Article  Google Scholar 

  • Ogryczak W (2000) Inequality measures and equitable approaches to location problems. Eur J Oper Res 122(2):374–391

    Article  Google Scholar 

  • Olivier P, Lodi A, Pesant G. The quadratic multiknapsack problem with conflicts and balance constraints. INFORMS J Comput (to appear)

  • Pattanaik PK (2017) Social welfare function. Palgrave Macmillan UK, London, pp 1–7

    Google Scholar 

  • Pesant G (2015) Achieving domain consistency and counting solutions for dispersion constraints. INFORMS J Comput 27(4):690–703

    Article  Google Scholar 

  • Pesant G (2016) Balancing nursing workload by constraint programming. Springer International Publishing, Cham, pp 294–302

    Google Scholar 

  • Pesant G, Régin JC (2005) SPREAD: a balancing constraint based on statistics. Springer, Berlin, pp 460–474

    Google Scholar 

  • Rainer-Harbach M, Papazek P, Hu B, Raidl GR (2013) Balancing bicycle sharing systems: a variable neighborhood search approach. In: Middendorf M, Blum C (eds) Evolutionary computation in combinatorial optimization. Springer, Berlin, pp 121–132

    Chapter  Google Scholar 

  • Rainer-Harbach M, Papazek P, Raidl GR, Hu B, Kloimüllner C (2015) PILOT, GRASP, and VNS approaches for the static balancing of bicycle sharing systems. J Global Optim 63(3):597–629

    Article  Google Scholar 

  • Raviv T, Tzur M, Forma IA (2013) Static repositioning in a bike-sharing system: models and solution approaches. EURO J Transp Logist 2(3):187–229

  • Rossi F, van Beek P, Walsh T (eds) (2006) Handbook of constraint programming. Volume 2 of foundations of artificial intelligence. Elsevier

  • Schaus P, Van Hentenryck P, Régin JC (2009) Scalable load balancing in nurse to patient assignment problems. In: van Hoeve WJ, Hooker JN (eds) Integration of AI and OR techniques in constraint programming for combinatorial optimization problems. Springer, Berlin, pp 248–262

    Chapter  Google Scholar 

  • Schaus P, Deville Y, Dupont P, Régin JC (2007) The deviation constraint. Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems 260–274

  • Schuijbroek J, Hampshire R, van Hoeve WJ (2017) Inventory rebalancing and vehicle routing in bike sharing systems. Eur J Oper Res 257(3):992–1004

    Article  Google Scholar 

  • Sen A (1974) Rawls versus Bentham: an axiomatic examination of the pure distribution problem. Theor Decis 4(3):301–309

    Article  Google Scholar 

  • Walla J, Ruthmair M, Raidl GR (2009) Solving a video-server load re-balancing problem by mixed integer programming and hybrid variable neighborhood search. In: Blesa MJ, Blum C, Di Gaspero L, Roli A, Sampels M, Schaerf A (eds) Hybrid metaheuristics. Springer, Heidelberg, pp 84–99

    Chapter  Google Scholar 

  • Weng MX, Ventura JA (1994) A quadratic integer programming method for minimizing the mean squared deviation of completion times. Oper Res Lett 15(4):205–211

    Article  Google Scholar 

  • Whiteacre KW (2006) Testing the level of service inventory-revised (LSI-R) for racial/ethnic bias. Crim Justice Policy Rev 17(3):330–342

    Article  Google Scholar 

Download references

Acknowledgements

Financial support for this research was provided by NSERC Discovery Grant 218028/2017 and CERC, Polytechnique de Montréal. The authors warmly thank the referees for their reading and help in clarifying a few aspects of the paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andrea Lodi.

Ethics declarations

Conflict of interest

No conflict of interest to be reported.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

A Characteristics of balance

In this appendix, we provide some formal statistical definitions and basic results (Everitt and Skrondal 2010) of the concepts used in the paper in the attempt of making the reading more self contained.

Definitions

Let

  • n be the number of balancing variables \(x_1,x_2,\ldots ,x_n\),

  • \(v = \sum _{i=1}^n x_i\), the sum of values to be distributed to the balancing variables,

  • \(\mu =v/n\) be the (fixed) mean,

  • d be the deviation allowed for the problem,

  • \(\ell \) and u be the (nonnegative) lower and upper bounds of variables \(x_1,x_2,\ldots ,x_n\).

All of the previously-defined variables are integers, except for the mean which could happen to be fractional. The values of d, \(\ell \), and u are assumed to be feasible, i.e.,

  • \(0 \le \ell \le \lceil \mu \rceil \) and \(u \ge \lceil \mu \rceil \),

  • \(d \ge \lceil \mu \rceil \) for minmax,

  • \(d \ge 0\) if the mean is integral, or \(d \ge 1\) if the mean is fractional, for \(L_{\infty }\)-deviation,

  • The feasible lower bound of d for \(L_{1}\)- and \(L_{2}\)-deviation needs some explanation due to the complexity introduced by the possibility of having a fractional mean. In such a case, the lowest deviation can be achieved by assigning \({\overline{f}} = v \bmod n\) variables to a value of \(\lceil \mu \rceil \), and \({\underline{f}} = n - {\overline{f}}\) variables to a value of \(\lfloor \mu \rfloor \). The absolute deviation of a variable which is assigned a value of \(\lceil \mu \rceil \) is \({\overline{g}} = {\underline{f}}/n\), while for a variable which is assigned a value of \(\lfloor \mu \rfloor \) it is \({\underline{g}} = 1 - {\overline{g}}\). The feasible lower bound d of \(L_{p}\)-deviation is thus \(d = {\overline{f}}\times {\overline{g}}^{p} + {\underline{f}}\times {\underline{g}}^{p}\).

Dispersion

The dispersion characteristic represents the interval within which values of the variables can be found.

For minmax, the worst-case dispersion interval is

$$\begin{aligned} \left[ \max \left\{ \ell , \left\lceil \mu - \left( n - 1 \right) \times \left( \min \{u,d\} - \mu \right) \right\rceil \right\} , \min \left\{ u, d, \left\lfloor \mu + \left( n - 1 \right) \times \left( \mu - \ell \right) \right\rfloor \right\} \right] . \end{aligned}$$

We set all variables except one to the maximum allowed deviation. The remaining variable determines the lower bound of the dispersion interval. That bound cannot be negative, nor lower than \(\ell \). A similar reasoning applies to the upper bound.

For \(L_{1}\)-deviation, the worst-case dispersion interval is

$$\begin{aligned} \left[ \max \left\{ \ell , \left\lceil \mu - \dfrac{d}{2} \right\rceil \right\} , \min \left\{ u, \left\lfloor \mu + \dfrac{d}{2} \right\rfloor \right\} \right] . \end{aligned}$$

In the worst case, one variable can account for at most half of the deviation.

For \(L_{2}\)-deviation, the worst-case dispersion interval is

$$\begin{aligned} \left[ \max \left\{ \ell , \left\lceil \mu - \sqrt{d \times \dfrac{n - 1}{n}} \right\rceil \right\} , \min \left\{ u, \left\lfloor \mu + \sqrt{d \times \dfrac{n - 1}{n}} \right\rfloor \right\} \right] . \end{aligned}$$

In contrast with \(L_{1}\)-deviation, for \(L_{2}\)-deviation we need to take into account the number of variables in order to tightly bound the dispersion interval.

For \(L_{\infty }\)-deviation, the worst-case dispersion interval is

$$\begin{aligned} \left[ \max \left\{ \ell , \left\lceil \mu - d \right\rceil , \left\lceil \mu - \left( \min \left\{ u, \left\lfloor \mu + d \right\rfloor \right\} - \mu \right) \times \left( n - 1 \right) \right\rceil \right\} , \right. \\ \left. \min \left\{ u, \left\lfloor \mu + d \right\rfloor , \left\lfloor \mu + \left( \mu - \max \left\{ \ell , \left\lceil \mu - d \right\rceil \right\} \right) \times \left( n - 1 \right) \right\rfloor \right\} \right] . \end{aligned}$$

Here, we have to take into account three cases. First, a simple case of \(\ell \) or u providing the bound. Second, another simple case of the deviation d bounding the interval. Third, a more complicated case with a similar reasoning as for minmax (explained previously).

Outliers

As stated, in this paper, we call an outlier any value equal to one of the two extremal values of the dispersion interval (see previous section). In practice, the understanding of the nature of an outlier is more subtle, as it could be any value far enough from the mean, for some definition of far enough. Let \(i_{\min }\) and \(i_{\max }\) be, respectively, the minimum and maximum values of the intervals defined in the previous section.

For minmax and \(L_{\infty }\)-deviation, the worst-case number of outliers is (let \(i_{\text {low}} = \min \{ \mu - i_{\min }, i_{\max } - \mu \}\) and \(i_{\text {high}} = \max \{ \mu - i_{\min }, i_{\max } - \mu \}\))

$$\begin{aligned} \left\lfloor \dfrac{n}{1 + \dfrac{i_{\text {high}}}{i_{\text {low}}}} \right\rfloor + \left\lfloor \dfrac{n}{1 + \dfrac{i_{\text {low}}}{i_{\text {high}}}} \right\rfloor . \end{aligned}$$

By looking at the ratio of the deviations between the extremes of the dispersion interval and the mean, we can infer the fractions of variables which will be equal to \(i_{\min }\) and \(i_{\max }\). On the left is the number of outliers which are below the mean, and on the right the number of outliers which are above the mean.

For \(L_{1}\)- and \(L_{2}\)-deviation, things are much more difficult due to the added complexity of managing a (possibly) fractional mean.Footnote 14 In fact, we have not been able to devise a closed-form expression for the worst-case number of outliers for these two measures. Such a closed-form expression, if it exists, is likely to be overly complicated. We present instead an informal algorithm which achieves the same purpose. For \(L_{1}\)- and \(L_{2}\)-deviation, then, the worst-case number of outliers isFootnote 15 computed as

  1. 1.

    Make the variables as balanced as possible. They will either be equal to the mean (if the mean is integral), or be equal to one of the two nearest integers of the mean (if the mean is fractional).

  2. 2.

    While the distribution of values is below the prescribed deviation threshold (also taking into account the potential effects of the actions below), and that at least two non-outlier values can still be found among the variables:

    1. (a)

      Pick the variable \(x_{i}\) with the lowest value (yet still greater than the value of an outlier), and lower its value by 1.

    2. (b)

      If it exists, pick the variable (not \(x_{i}\) and not already an outlier) with the value closest to and lower than \(\lfloor \mu \rfloor \). If it does not exist, pick the variable (not \(x_{i}\) and not already an outlier) with the value closest to and greater than \(\lceil \mu \rceil \). Increase the value of this variable by 1.

  3. 3.

    Count and return the number of outliers.

This algorithm starts with a balanced distribution of values, and maximizes the number of low-valued outliers (recall that in this particular case, we assume that \(\mu - \ell \le u - \mu \), and as such low-valued outliers are easier to reach than high-valued outliers). When the lowest non-outlier value goes down (step 2a), the highest non-outlier value goes up (step 2b), keeping the sum of values constant. This is done for as long as the deviation threshold allows it.

Smoothness

In order to assess the smoothness of a solution, we compare the distribution of its values to a perfectly smooth distribution, using the Wasserstein distance. This distance is equivalent to the so-called Earth Mover’s distance (Levina and Bickel 2001). Given two mounds of earth (in other words, two distributions), this metric represents the effort required to transform one mound of earth into the other. If two distributions are the same, their Wasserstein distance is zero. As the differences between two distributions increase, so does their Wasserstein distance.

B BACP model

This BACP model, written in a logical form, uses a similar notation as Monette et al. (2007). Let

  • \({\mathcal {C}} = \{1, \dots , n\}\) be the index set of courses,

  • \({\mathcal {P}} = \{1, \dots , m\}\) be the index set of periods,

  • \(w_{i}\) denote the load of course i with \(w = \sum _{i \in {\mathcal {C}}} w_{i}\) representing the combined loads of all the courses,

  • \({\mathcal {Q}} \subset {\mathcal {C}} \times {\mathcal {C}}\) denote the set of prerequisites, where an element (ij) indicates that course i is a prerequisite to course j,

  • \(L = \{L_{1}, \dots , L_{m}\}\) denote the loads of the periods for an assignment,

  • \(P_{i} \in {\mathcal {P}}\) denote the period course i is assigned to,

  • \(B_{ik}\) denote if course i is assigned to period k.

The model is defined by

$$\begin{aligned} P_{i} < P_{j},&\forall (i, j) \in {\mathcal {Q}} \end{aligned}$$
(1)
$$\begin{aligned} (P_{i} = k) \Leftrightarrow (B_{ik} = 1),&\forall i \in {\mathcal {C}}, k \in {\mathcal {P}} \end{aligned}$$
(2)
$$\begin{aligned} L_{k} = \sum \limits _{i \in {\mathcal {C}}} B_{ik}w_{i},&\forall k \in {\mathcal {P}} \end{aligned}$$
(3)
$$\begin{aligned} B_{ik} \in \{0, 1\},&\forall i \in {\mathcal {C}}, k \in {\mathcal {P}} \end{aligned}$$
(4)

and its objectives are

figure m
figure n
figure o
figure p

Constraints (1) ensure that course prerequisite requirements are met, and period loads L are tracked with the help of auxiliary variables B (2)–(4).

C NPAP model

This NPAP model, written in a logical form, uses a similar notation as Pesant (2016).Footnote 16 Let

  • \({\mathcal {N}} = \{1, \dots , n\}\) be the index set of nurses,

  • \({\mathcal {P}} = \{1, \dots , m\}\) be the index set of patients,

  • \(a_{i}\) denote the acuity of patient i with \(a = \sum _{i \in {\mathcal {P}}} a_{i}\) representing the combined acuities of all the patients,

  • \(p_{\min }\) and \(p_{\max }\) denote the minimum and maximum number of patients that can be assigned to a nurse,

  • \(n_{i}\) denote the nurse to which patient i is assigned,

  • \(w_{j}\) denote the workload of nurse j,

  • \(t_{ij}\) denote if patient i is assigned to nurse j.

The model is defined by

$$\begin{aligned} (n_{i} = j) \Leftrightarrow (t_{ij} = 1),&\forall i \in {\mathcal {P}}, j \in {\mathcal {N}} \end{aligned}$$
(5)
$$\begin{aligned} t_{ij} \in \{0, 1\},&\forall i \in {\mathcal {P}}, j \in {\mathcal {N}} \end{aligned}$$
(6)
$$\begin{aligned} w_{j} = \sum \limits _{i \in {\mathcal {P}}} a_{i}t_{ij},&\forall j \in {\mathcal {N}} \end{aligned}$$
(7)
$$\begin{aligned} p_{\min } \le \sum \limits _{i \in {\mathcal {P}}} t_{ij} \le p_{\max },&\forall j \in {\mathcal {N}} \end{aligned}$$
(8)

and its objectives are

figure q
figure r
figure s
figure t

Auxiliary variables t (5)–(6) are used to track nurse workloads w (7), as well as to ensure the nurses are assigned a proper number of patients (8).

D BBSS model

We present the CP-based BBSS model of Di Gaspero et al. (2013a), using that notation (an example of a non-CP formulation can be found in Rainer-Harbach et al. (2015)). Let

  • \({\mathcal {S}} = \{1, \dots , S\}\) be the set of S stations,

  • \({\mathcal {D}} = \{S+1, \dots , S+D\}\) be the set of D depots,

  • for a station \(s \in {\mathcal {S}}\), \(C_{s} > 0\) be its capacity, \(b_{s}\) its initial number of bikes, and \(t_{s}\) its target number of bikes,

  • \({\mathcal {V}} = \{1, \dots , V\}\) be the set of V vehicles,

  • for a vehicle \(v \in {\mathcal {V}}\), \(c_{v} > 0\) be its capacity, \({\hat{b}}_{v} \ge 0\) its initial load, and \({\hat{t}}_{v} > 0\) its available time,

  • travel time matrix \(tt_{uv}\) with \(u, v \in {\mathcal {S}} \cup {\mathcal {D}}\) (which includes the processing time of serving a station).

This model requires the stations and depots to be grouped into an ordered set of nodes. The depots are duplicated as we need distinct starting and ending nodes, and a dummy vehicle (with an associated depot) is introduced. The nodes \({\mathcal {U}} = {\mathcal {V}}_{s} \cup {\mathcal {S}} \cup {\mathcal {V}}_{e} = \{0, \dots , V, V+1, \dots , V+S, V+S+1, \dots , 2V+S+2\}\) begin with the starting depots \({\mathcal {V}}_{s}\) (including that of the dummy vehicle), then the stations \({\mathcal {S}}\), and finally the ending depots \({\mathcal {V}}_{e}\) (again including that of the dummy vehicle).

This formulation makes use of a successor-predecessor dynamic. Several auxiliary variables are required for this purpose

  • \(succ_{i} \in {\mathcal {U}}\) denotes the successor of node \(i \in {\mathcal {U}}\),

  • \(pred_{i} \in {\mathcal {U}}\) denotes the predecessor of node \(i \in {\mathcal {U}}\),

  • \(vehicle_{i} \in {\mathcal {V}}\) denotes the vehicle serving node \(i \in {\mathcal {U}}\),

  • \(service_{i} \in \{-b_{i}, \dots , C_{i}-b_{i}\}\) denotes the bike delta of node \(i \in {\mathcal {U}}\) after being served,

  • \(load_{i} \in \{0, \dots , c_{v}\}\) denotes the load of vehicle \(v \in {\mathcal {V}}\) after serving node \(i \in {\mathcal {U}}\),

  • \(time_{i} \in \{0, \dots , {\hat{t}}_{v}\}\) denotes the time at which vehicle \(v \in {\mathcal {V}}\) arrives at node \(i \in {\mathcal {U}}\).

The model is defined by

$$\begin{aligned} \texttt {alldifferent}(succ) \end{aligned}$$
(9)
$$\begin{aligned} \texttt {alldifferent}(pred) \end{aligned}$$
(10)
$$\begin{aligned} pred_{succ_{s}} = s,&\forall s \in {\mathcal {S}} \end{aligned}$$
(11)
$$\begin{aligned} succ_{pred_{s}} = s,&\forall s \in {\mathcal {S}} \end{aligned}$$
(12)
$$\begin{aligned} pred_{v} = V+S+v,&\forall v \in {\mathcal {V}}_{s} \end{aligned}$$
(13)
$$\begin{aligned} succ_{V+S+v} = v,&\forall v \in {\mathcal {V}}_{s} \end{aligned}$$
(14)
$$\begin{aligned} pred_{i} \ne i,&\forall i \in {\mathcal {U}} \end{aligned}$$
(15)
$$\begin{aligned} succ_{i} \ne i,&\forall i \in {\mathcal {U}} \end{aligned}$$
(16)
$$\begin{aligned} vehicle_{v} = v,&\forall v \in {\mathcal {V}}_{s} \end{aligned}$$
(17)
$$\begin{aligned} vehicle_{V+S+v} = v,&\forall v \in {\mathcal {V}}_{s} \end{aligned}$$
(18)
$$\begin{aligned} vehicle_{succ_{i}} = vehicle_{i},&\forall i \in {\mathcal {U}} \end{aligned}$$
(19)
$$\begin{aligned} vehicle_{pred_{i}} = vehicle_{i},&\forall i \in {\mathcal {U}} \end{aligned}$$
(20)
$$\begin{aligned} load_{v} = {\hat{b}}_{v},&\forall v \in {\mathcal {V}}_{s} \setminus \{V\} \end{aligned}$$
(21)
$$\begin{aligned} load{V} = 0 \end{aligned}$$
(22)
$$\begin{aligned} load_{succ_{i}} = load_{i} - service_{i},&\forall i \in {\mathcal {U}} \end{aligned}$$
(23)
$$\begin{aligned} load_{v} = 0,&\forall v \in {\mathcal {V}}_{e} \end{aligned}$$
(24)
$$\begin{aligned} (vehicle_{s} \ne V) \Leftrightarrow (service_{s} \ne 0),&\forall s \in {\mathcal {S}} \end{aligned}$$
(25)
$$\begin{aligned} load_{s} \le c_{vehicle_{s}},&\forall s \in {\mathcal {S}} \end{aligned}$$
(26)
$$\begin{aligned} service_{s} \le 0,&\forall s \in {\mathcal {S}} : b_{s} > t_{s} \end{aligned}$$
(27)
$$\begin{aligned} service_{s} \ge 0,&\forall s \in {\mathcal {S}} : b_{s} < t_{s} \end{aligned}$$
(28)
$$\begin{aligned} service_{i} = 0,&\forall i \in {\mathcal {V}}_{s} \cup {\mathcal {V}}_{e} \end{aligned}$$
(29)
$$\begin{aligned} b_{s} + service_{s} \le C_{s},&\forall s \in {\mathcal {S}} \end{aligned}$$
(30)
$$\begin{aligned} b_{s} + service_{s} \ge 0,&\forall s \in {\mathcal {S}} \end{aligned}$$
(31)
$$\begin{aligned} time_{v} = 0,&\forall v \in {\mathcal {V}}_{s} \end{aligned}$$
(32)
$$\begin{aligned} time_{v} = time_{pred_{v}} + tt_{pred_{v}, v},&\forall v \in S \cup {\mathcal {V}}_{e} \end{aligned}$$
(33)
$$\begin{aligned} time_{succ_{v}} = time_{v} + tt_{v, succ_{v}},&\forall v \in {\mathcal {V}}_{s} \cup S \end{aligned}$$
(34)
$$\begin{aligned} time_{V+S+v} \le {\hat{t}}_{v},&\forall v \in {\mathcal {V}}. \end{aligned}$$
(35)

All values of the successors and predecessors are distinct (9)–(10); these constraints, coupled with the time constraints of the vehicles, ensure the absence of subtours. The successor-predecessor chain must be consistent (11)–(14), and loops are forbidden (15)–(16). Depots are assigned to the vehicles (17)–(18), and the vehicle chain must be consistent (19)–(20). The initial loads of the vehicles are set (21)–(22), the load chain must be consistent (23), and the vehicles must be empty at the end of their routes (24). A station receiving no service will be visited by the dummy vehicle (25), and the loads of the other vehicles must not exceed their capacities (26). Stations visited by a vehicle must see their bike counts altered in some way (27)–(28), while depots remain unserved (29). Stations cannot be served in excess of their capacities (30)–(31). The routes start at the depots with times of zero (32), the time chain must be consistent (33)–(34), and the durations of the routes must remain within the specified limits (35). The objectives are defined by

figure u
figure v
figure w
figure x

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Olivier, P., Lodi, A. & Pesant, G. Measures of balance in combinatorial optimization. 4OR-Q J Oper Res 20, 391–415 (2022). https://doi.org/10.1007/s10288-021-00486-x

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10288-021-00486-x

Keywords

  • Balance
  • Fairness
  • Constraint programming
  • Integer programming

Mathematics Subject Classification

  • 9005
  • 90C27
  • 90C11