In combinatorial optimization , the linear bottleneck assignment problem , LBAP is a linear assignment problem , similar to the assignment problem [1] .
In simple words, the task is set as follows:
- There are a number of performers and a number of works . Any performer can perform any work, the implementation of which can cost some price , which depends on the appointment of the performer-work. It is required to perform all the work in appointing exactly one performer for each work in such a way as to minimize the maximum price encountered during appointments.
The term " bottleneck " is explained in the usual way of using a task when the price is taken as the duration of the work done by the performer. Under these conditions, the "maximum price" becomes the "maximum duration", which is a bottleneck when planning a full job, and this maximum duration should be made as small as possible.
The linear bottleneck assignment problem was first described by Fulkerson, Glicksberg and Gross in a paper dedicated to the distribution of work among machines in order to minimize lead times [2] .
Formal definition
The formal definition of a bottleneck assignment problem is as follows:
- Two sets, A and T , are specified , together with the weight function C : A × T → R. Find a bijection f : A → T such that the cost function:
- is minimal.
-
Usually, the weight function is defined as a square real matrix C , so the cost function can be written as follows:
Problem formulation as a math programming problem
under conditions:
Solution Methods
The following lemma is useful for solving the problem:
Lemma. [1] Let - task price matrix, Then
- 1. The optimal value of the problem is determined by one of the elements of the matrix. .
- 2. The optimal solution depends only on the relative order of the elements of the matrix, and not on their numerical values.
Example. Let the matrix be given
Arrange the elements of the matrix .
Replace the smallest element −2 with 0, followed by 0 replace with 1, then replace with 2 and so on. We get the following matrix: .
The optimal solution to the problem is a permutation {2, 1, 3} with the maximum value for the matrix 5, which corresponds to a value of 4 in the original matrix .
Threshold algorithm
The idea of using the threshold value method belongs to Garfinkel [3] .
Assign initial values. If a then optimal value = and any permutation {1, 2,. . . , n} is optimal. Otherwise, while there to execute Find the median , t numbers Build a graph If a contains a perfect match then accept otherwise we accept end if end of cycle If checking the existence of a perfect match for was not executed, we will execute it. Build a graph for If a contains a perfect match, accept end if end if
The optimal value will be , and the optimal solution can be found from the corresponding graph.
As you can see, at each step of the cycle the 'threshold algorithm' goes through two stages. In the first step, a 'threshold value' is selected. and 'threshold matrix' which is defined as follows:
-
- 1 if
- 0 otherwise.
- 1 if
At the second stage, it is checked whether the assignment with zero price exists (for the price matrix ). To verify this, a bichromatic graph G = (U, V; E) with | U | = | V | = n and arcs then and only if . (In other words, we must check whether the bipartite graph corresponding to the threshold matrix contains a perfect matching or not). Min threshold for which the corresponding bichromatic graph contains a perfect matching is the optimal value of the problem. There are several ways to implement the threshold algorithm. One possibility is to use binary search in the first stage. This will lead to algorithm where - time complexity of checking the existence of a perfect match. We can use Ibarra and Moran’s matrix algorithm [4] to find out if there is a perfect matching. Then the optimal solution can be found with bit complexity. . To multiply two n × n matrices you need arithmetic operations and k is an integer resulting from actions on long integers. Coppersmith and Grapes (Winograd) [5] showed that matrix multiplication can be done with . If we want to obtain the corresponding optimal solution, we can use the method of Alt, Blum, Melhorn and Paula (Alt, Blum, Mehlhorn, Paul) [6] and we get the full complexity in the case of a dense matrix. Here density means the number of nonzero elements matrix equals .
This method is theoretically the best known method for solving a problem.
Dual Algorithm
Closely related to the threshold method is the following dual algorithm.
CalculateSet (empty set). Bye | M | <n, execute We define a bipartite graph G corresponding to the threshold value t. Find the maximum matching in G. If | M | <n, then Let be and - sets of vertices in the minimal cover of the graph G. Set end if end of cycle
The algorithm uses some information about the threshold value t, namely the fact that the optimal value cannot be less than the maximum value of the minimum elements in the rows, as well as the maximum value of the minimum elements in the columns of the matrix C. Thus, as the first threshold value can take
The dual method starts with this value t and creates minimal sets (indices) of columns. and strings covering all elements of the matrix . This can be done by finding the maximum set of arcs in the graph G, giving the matching. Here the graph G is a bipartite graph with arcs (r, j) for which . If the matching does not contain all the rows and columns, there are matrix entries that define the optimal value, and these entries are greater than t. Because of this, we can adopt a new meaning. and build a new graph G. This graph contains all the edges of the previous graph and at least one new edge, so that we can start the search for the maximum matching with the one already found at the previous step. We continue until we find the perfect matching.
Algorithm of consecutive increments
Another approach to solving the problem can be the use of the ideas of the Hungarian method [7] . In Russia, this method is known as the Gross Algorithm. We present the method in the implementation of Deriggs and Zimmerman [8] .
We introduce several definitions.
A complementary matching path is a path containing a matching arc, and one of the two adjacent arcs necessarily belongs to the matching (i.e., the arcs are interspersed — there is an arc that does not belong to it, and vice versa) from the matching arc.
Let be - complementary path for the match M.
Bottleneck size defined as
- .
The complementary path is called the b-shortest path if the size of the bottleneck is minimal among all the complementary paths M.
Let be- bichromatic graph with arc lengths for arcs Find the lower bound t for the objective function (those. ) Find the maximum matching of M in the graph G, having arcs [i, j] if if | M | = | U |, then we obtained the optimal solution t with the optimal ratio M, and complete the work. end if Let L be the set of elements of U for which there is no matching. until L is empty, execute Pick vertex Set P = Dijkstra (i) Comment: The function Dijkstra (i) returns a complementary path starting at vertex i If the path is not found, then Set Set end if end bye Comment: M is the maximum matching with the minimum price t.
The B-shortest complementary path is found in the Dijkstra () function.
Mark the vertex during the search for the b-shortest path by value where is the size of the bottleneck b-shortest path of to this peak as well means the immediate predecessor in the b-shortest path of to the top .
Similarly, mark the top by value where is the size of the bottleneck b-shortest path of to this peak as well means the immediate predecessor in the b-shortest path of to the top .
Dijkstra (i) function Comment: A modified Dijkstra algorithm for the assignment problem for bottlenecks. Mark all verticesby putting . Put R = V Comment: R contains unvisited vertices V α (i) = t, P = empty For all neighbors vertices i execute If a then Set end if end of cycle while R is empty, perform Find the top with minimal ; If a then Set otherwise if r is not part of the matching, then Find the path P formed by the sequence of vertices Set Otherwise Let [s, r] be a matching edge Mark s: Set For all neighbors perform vertices If a then Set end if end of cycle end if end if end bye
Asymptotic Behavior
Let be denotes the optimal value of the function for n performers and n jobs. If prices are selected from a uniform distribution on the segment (0,1), then [9]
and
Links
- 2 1 2 Assignment Problems , Rainer Burkard, Mauro Dell'Amico, Silvano Martello, 2009, Chapter 6.2 " Linear Bottleneck Assignment Problem " (p. 172)
- ↑ DR Fulkerson, I. Glicksberg, and O. Gross. A production line assignment problem. Tech. Rep. RM-1102, The Rand Corporation, Santa Monica, CA, 1953.)
- ↑ R. Garfinkel. An improved algorithm for bottleneck assignment problem. Oper. Res. 19: 1747-1751,1971.
- ↑ OH Ibarra and S. Moran. Deterministic and probabilistic algorithms for maximum bipartite matching via fast matrix multiplication. Inform. Process. Lett., 13: 12–15, 1981.
- ↑ D. Coppersmith and S. Winograd. Matrix multiplication via arithmetic progressions. J. Symbolic Computing, 9: 251–280, 1990.
- ↑ H. Alt, N. Blum, K. Mehlhorn, and M. Paul. Computing a cardinality in a bipartite graph in time . Inform. Process. Lett., 37: 237–240, 1991.
- ↑ O. Gross. The bottleneck assignment problem. Tech. Rep. P-1630, The Rand Corporation, Santa Monica, CA, 1959.
- ↑ U. Derigs and U. Zimmermann. An augmenting path method for solving bottleneck assignment problems. Computing, 19: 285–295, 1978.
- ↑ Michael Z. Spivey, "Asymptotic Moments of the Bottleneck Assignment Problem," Mathematics of Operations Research , 36 (2): 205-226, 2011.