Some enemy soldiers, along with their families, were captured during the war.
The coalition plans to put them into prison cells in a grid,
according to some rules.
No two prisoners could be put into the same cell.
Some prisoners were so
dangerous that no prisoners could be put in any of the adjacent cells.
Female prisoners could be put in the cells of the upper half of the grid,
while male prisoners could be put in cells at the lower half.
Each cell had a different maintenance cost, and the coalition needed to allocate
the prisoners to the cells so that the total maintenance cost was minimized.
Once again, Liu Bei called for help.
So Liu Bei has been successful on the field of battle but
victory does not come without it's costs.
He's collected a lot of prisoners of war that he has to deal with.
So he has to put these prisoners of was in cells, giving him a CellBlock problem.
So of course the first thing is that he's got, he can't put two prisoners in
the same cell, that would obviously lead to collusions and
escapes and all kinds of other problems.
So the next thing is that some of the prisoners are quite dangerous in fact.
And if they were put into a cell then if there's anyone next to them,
then they'll fight them, drag them, kill them, whatever.
And that will defeat the purpose of trying to keep the prisoners alive.
So, you can't put anyone in a cell next to a dangerous prisoner.
So also in order to keep peace within the prison he needs to separate the males and
And so he's going to keep the female prisoners in the top half of the prison
and the male prisoners in the bottom half of the prison.
And finally there's a cost for each of these cells because they are serviced
by different people and different costs to get the various things, so
each cell has a different cost to service.
And obviously, in the game of war, it's all about minimizing your costs so
you can keep your army going for as long as possible.
So here's our CellBlock model, we've got an enumerated type, which is the set of
prisoners and then we've got a CellBlock, which is a set of rows and columns.
And then the basic data of that for each cell in the block, row and
column, how much does it cost to put a prisoner in that cell.
Now, in our prisoners we've got set of dangers prisoners and
a set of female prisoners.
And then we got the male prisoners, those are different from the female prisoners.
So now we got a dependent parameter declaration.
So here, we could actually use not define males,
we just use this definition instead.
But it's much more natural to actually define this macro male effectively so
we keep track of who are female and who are male,
it'll come out much clearer in our model, what's going on.
So what are our CellBlock decisions?
Well, we've got to think about this.
It may not look like this in an assignment solve problem, but it is.
We've got our prisoners are the domains of the function that we're trying to find,
and the object of the codomain are the row times column, it's the cell blocks.
But we're not going to represent this as a single function,
we're going to break it down into two functions because that's a much more
natural way of representing the problem.
So for each prisoner, we're going to really decide two functions.
That is, which row is that prisoner in and which column is that prisoner in?
Of course those two functions together decide which exact cell they're in.
That's because it's going to be much more natural to reason about and
express some of the constraints of the problem with these two functions than with
a single function, which only names an exact cell position.
And these are the kind of decisions that we need to make when modelling.
What's the right way of representing what we're doing in order to make it
easy to express the constraints and the objectives of the model,
in order that the solver can solve it efficiently.
So we can think about how we gotta express the constraints of the problem.
So no two prisoners in the same cell.
So one way to do this is to look at each pair of prisoners, and we'll say,
well we've got to make them not in the same cell.
Well one way of doing that is saying the absolute value of the distances in
the rows, and the distances in the columns,
if we add them up, has to be greater than 0.
So that means that we can't have them in both the same row and
both the same column, so that's one efficient way of writing that down.
Can't we use alldifferent?
Remember this was an assignment subproblem and what we would like to
say is capture that substructure had use the alldifferent constraint.
So that as solvers you can make use of that and get the maximum value out of it.
Yes we can and
in fact they're much better way than doing this is to map this to an alldifferent.
But in order to do that, we're going to have to create, basically,
a unique number for each CellBlock, which is easy enough to do.
We take the row number, we multiply it by the number of columns there are and
add the column number and that's going to give us a unique number for each cell.
And then we're going to force those to the alldifferent for each prisoner and
that will force that each prisoner is in a different cell.
And then we've now used our global constraint,
all different to make sure they're all mapped to a different cell.
So this is where if we had a model which only gave a unique cell number,
this would be very, very convenient but
it would make the rest of the model much more difficult.
And so we only need it for this thing, let's only create this view
of the problem for the alldifferent constraint and nowhere else.
Now, we have to have no adjacent prisoners in here
the kind of model we used up here is very efficient.
We're going to say that if we take the absolute value of the rows and
the columns, they have to be greater than one which will make sure the distance away
is at least more than one.
So, we can't be right next to the cell of a dangerous prisoner.
So, we look for each prisoner and for each dangerous prisoner where it's not the same
obviously the dangerous prisoner can't be the same cells themselves or herself and
so, for each other prisoner that can't be within a distance of one.
If we go in this horizontal distance.
So that will effectively map that we're
far enough away from the dangerous prisoners.
And then we can't use a combination such as the alldifferent,
a more complicated constraint meaning to express it in a more complicated way.
For the gender constraints, we're saying for each of the female prisoners,
the row number is (n + 1) div 2.
So we just saying it's in the top of the prisoners prison and
the male prisoners are n div 2 + 1, so they're in the bottom half.
And note we're using male here
which is clear in their placing with the definition.
If we just had prisoner diff female here, wouldn't be so clear what we were doing.
And finally the objective function of course, what we're looking as for
we're just looking up the cost of the cell that we placed them in and adding that up.
That's the total cost, and we're minimizing the cost and
so there is our CellBlock model completed.
And if run it, we're going to find a solution where we put our female and
male prisoners in different places and we get a Total Cost.
So I hope you see that this is an assignment subproblem.
Even though if we looked at it first sight it looked like even our row and column
variables, we didn't really see that we were building a single function, right?
We built two functions but they still have an assignment subproblems and subsection.
And we could still make use of the alldifferent constraint in building
And indeed if we look at the next problem from Liu Bei,
we'll also see assignment subproblems but this time it will be bijective and
this will introduce us to matching problems.
Aeronautical Engineering College, Civil Aviation University of China, Tianjin 300300, China
Copyright © 2013 Yaohua Li and Na Tan. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
The Fleet Assignment Problem (FAP) of aircraft scheduling in airlines is studied, and the optimization model of FAP is proposed. The objective function of this model is revenue maximization, and it considers comprehensively the difference of scheduled flights and aircraft models in flight areas and mean passenger flows. In order to solve the model, a self-adapting genetic algorithm is supposed to solve the model, which uses natural number coding, adjusts dynamically crossover and mutation operator probability, and adopts intelligent heuristic adjusting to quicken optimization pace. The simulation with production data of an airline shows that the model and algorithms suggested in this paper are feasible and have a good application value.
Fleet Assignment Problem (FAP) is to assign an aircraft model for each scheduled flight according to the capability of passengers, running cost, and planned revenue of each fleet. This is an important work of aircraft scheduling and planning in airlines. The results of FAP affect not only the cost and revenue of airlines, but also the continuing works, such as linking problem between flights, aircraft’s maintenance route, crew assigning, and flight gate assigning. The aircraft scheduling is a controlling work of production scheduling in airlines. Because of the importance and complexity of the aircraft scheduling work in the air transport, the in-depth research and application have been carried out in aviation developed countries of Europe and America [1–3]. In China, because airlines had small amount of aircrafts a few years ago, they have not paid more attention to production plan and management and their planning mode was simple and manned. At the same time, the research on civil aviation production planning management is few. Recently, with the number of airlines’ aircrafts increasing, the aviation transport market opening, and the aviation market competition pricking up, airlines wake up to the importance and urgency of production scheduling and planning management gradually. But in general, the theory research on aircraft planning and scheduling is still in the underway phase. Reference  presents the notion of flight purity and builds fleet assignment model subjected to flight purity according to the characters of Chinese airline network and flight scheduling. A robust mathematical model for the fleet scheduling problem is put forward . According to the data provided by an airline, the computational experiment performed with the improved Grover’s algorithm shows the effectiveness of the proposed model and improves the robustness of the decision. The aircraft scheduling problem based on cooperative multitask assignment is studied , and the approach applies branch-and-price algorithm to the cost optimization model with maintenance constraints, and mathematical model of daily utilization ratio is established. A model of flight-string VRP based on the time unit of week is suggested , and a parthenogenetic algorithm is suggested for solving the model. In China, although some scholars have studied the problem of aircraft planning and scheduling, the plan of aircraft scheduling in airlines is completed with manpower or half-manpower mode. The level of automation is not tall, and the information system based on the mature models and algorithms is few.
In this paper, according to Chinese factual situation, FAP in airlines is studied in order to establish a foundation for aircraft planning and scheduling automation. Based on the research result, an optimization model of FAP is proposed, which takes the total revenue maximum as objective and can assign an appropriate aircraft type to each flight. For solving the complicated optimization model, an improved genetic algorithm is suggested, which can find out optimal solution quickly. After deep studying, the model and algorithm can be applied in production scheduling of other countries’ airlines.
2. FAP Optimization Model
2.1. Problem Description
In production scheduling of airlines, Fleet Assignment Planning is to assign the most appropriate aircraft type to each flight. The flying performance of different aircraft model is different, for example, voyage range, flying altitude ceiling, maximum take-off weight, and climbing ability. So, a particular route is not suitable for all models of the aircraft to perform. In addition, different models have different seating layout, and their operating costs are not the same. For instance, the seats number of the B737-300 aircraft is about 144, and its direct operating costs are between 30 and 50 thousands of RMB per hour. But the A340-200 aircraft can seat up to about 380 people, and its direct operating cost is more than 100,000 of RMB per hour. The basis for the development of the work is the airworthiness limitations of flight route on aircraft models, each model's cabin distribution, operational cost analysis of the models in the different routes, as well as forecasts of passenger and freight traffic on each flight. The goal is to optimize the allocation of models to flight, in order to minimize the operating costs to complete the flight running tasks.
2.2. FAP Optimization Model Building
Considering the feature of Chinese flight route net and flight plan, under constraints of determined flight schedules, not considering the flight stopovers, only considering aircraft A check, and enough airport capacity, the FAP model which considers the models match, model flying area, as well as the traffic match conditions is proposed as follows: ; is overall flight number,; is the number of aircraft models,; the revenue of aircraft model to perform the flight ,; , , and are the revenue, fixed operating costs, and the variable operating cost of model to fly flight , where, the suitable flying area code of model ,, the minimum flying area code required by flight ,, the passenger capacity of model ,, the average traffic of flight ,, model code of the model ,, the model code required by flight .
The objective function (1) means that the total income of all flights is largest, after the aircraft types are assigned to all flights considering the bulk of the flights of global optimization. Constraint (2) is to ensure that an equal number of models are selected for flights. Constraint (3) is to ensure that only one model is assigned to each flight. Constraint (4) is to ensure that the model assigned to the flight meets the flight area requirements. Constraint (5) is to ensure that the model assigned to the flight meets the flight traffic requirement. Constraint (6) is to ensure that the code of the model assigned to the flight is greater than the flight code. In order to calculate conveniently, the models flying area code and model code use a natural number coding according to difference of the actual situation; for example, 1, 2 represent the fly zone, representing the flight area of plains and plateaus. The model codes of 1, 2, 3 represent, respectively, the B737-300, B737-800, B757, and so forth. Thus, in order to ensure the operational feasibility in the model calculations, all of these codings take the downward compatible form. That is, high-grade aircrafts can perform the flight requiring low-grade aircraft model, not the contrary.
3. The Solving Algorithm of FAP Optimization Model
It is difficult to solve the FAP optimization model with mathematical programming methods, because FAP is an NP-hard problem. The genetic algorithm (GA) is an adaptive search algorithm which is based on the natural evolution and selection mechanism. And it has been successfully applied to a variety of optimization problems. In this paper, an improved hybrid heuristic genetic algorithm is constructed to solve the model, considering the limitations of the general genetic algorithm. The algorithm uses natural number coding method and dynamically adjusts the crossover and mutation probability.
3.1. Intelligent Heuristic Adjustment for Infeasible Solutions
The usual method for solving constrained optimization problems is to convert it to unconstrained optimization problem, which incorporated the constrained constraints into the evaluation function using the method of weighting coefficients. Thus, although constrained optimization problems can be solved, infeasible solutions may exist in aviation production scheduling production. In order to guarantee that individuals of each generation are feasible solutions, the algorithm will filter the infeasible solution in each generation solutions for every individual and then adjust the infeasible solutions with intelligent heuristic adjustment method. The heuristic rules of the intelligent heuristic adjustment method are based on expert knowledge and relevant constraints. When the individual does not meet the constraint needed to be adjusted, the algorithm adjusts it according to the individual situation and determines the direction and size of adjustment with the expert knowledge rules. Its goal is to ensure that the adjusted individual is feasible solution and is adjusted along the optimized search direction.
3.2. Dynamic Adjustment of the Crossover Probability and Mutation Probability
In order to avoid genetic algorithm falling into a local optimum value and having rapid convergence, genetic operator probability adjustment method in the algorithm is used to dynamically adjust the crossover and mutation probability after  is studied. In this paper, the crossover probability and mutation probability of each generation groups are dynamically adjusted according to the degree of concentration of the fitness value. The adjustment method is to establish a judgment standard with the maximum fitness value , minimum fitness value , and average fitness value . Generally, the initial crossover probability is set as , , and mutation probability is set as , . Thus, and are changed with the evaluation (fitness function) of solutions. When the solution has good performance, let and be small to help the algorithm’s rapid convergence. When the solution is lower than the average fitness value, let and be high to prevent the algorithm from optimal solutions into local solution. The adjustment formulas are as follows:
3.3. Steps of the Improved Genetic Algorithm
(1) Inputting the data required by model solving: read the corresponding data information to be calculated.(2) Algorithm parameters initialization: determine the algorithm population numbers and the end of the maximum cycle algebra, the initial values of crossover probabilities and mutation probabilities are set. Then, initial generation chromosomes are given as the current generation chromosome based on the population numbers given.(3) Heuristic correction of the current generation of chromosomes: check the infeasible solutions in chromosomes, and then correct infeasible solutions using the intelligent heuristic rules until they become the feasible solutions.(4) Calculate the adaptation function value of the current generation of chromosome, and record the best individual as the optimal solution. Then, judge whether to satisfy the end criterion; if the answer is yes, jump to (8), or else, jump to (5).(5) Adaptive dynamics: adjust the current chromosome probability, and calculate the probability of crossover and mutation , .(6)Current chromosome genetic manipulation: Cross is completed with probability , mutation operating is done with probability , and then selecting operation is completed, which selects the best chromosome in the current generation.(7) Generation of chromosomes will be selected as the current generation of chromosome; return to (3).(8) Output current optimal solution as the solution of the algorithm.
4. Simulation Research
In order to validate the model and algorithm supposed in this paper, the data of a medium-sized airline, including 4 aircraft models, 50 flights, is selected to study. Raw data are shown in Tables 1, 2, and 3. In this paper, the basic genetic algorithm (GA) and improved adaptive genetic algorithm (IGA) have been used for a comparative study in order to show that the algorithm suggested in this paper is better.
Table 1: The information of aircraft models.
Table 2: The information of flights.
Table 3: The income and cost statistical data of models perform flights (money unit: ten thousands RMB).
The parameters are selected as follows: the number of population genetic algorithm is 20; the IGA initial crossover probabilities are , ; mutation initial probabilities are ; the algorithm terminates criteria for successive iterations 1000 generation. Basic genetic algorithm (GA) parameters are selected as follows: the number of population genetic algorithm is 20; crossover probability is set as , mutation probability is set as , the algorithm terminates criteria for successive iterations 1000 generation. The simulation calculating result is given in Figure 1 and Table 2, the best values being 567.7 and 526.4, respectively. Basic genetic algorithm can find out a feasible solution, but the result is bad. The computational results are no longer listed in the paper because it is not the emphasised part of this paper. The simulation example flight information is listed in Table 2