Karmarkar's algorithm

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Karmarkar's algorithm is an algorithm introduced by Narendra Karmarkar in 1984 for solving linear programming problems. It was the first reasonably efficient algorithm that solves these problems in polynomial time. The ellipsoid method is also polynomial time but proved to be inefficient in practice.

Where n is the number of variables and L is the number of bits of input to the algorithm, Karmarkar's algorithm requires O(n3.5L) operations on O(L) digit numbers, as compared to O(n6L) such operations for the ellipsoid algorithm. The runtime of Karmarkar's algorithm is O(n3.5L2lnLlnlnL). (see Big O notation)

Karmarkar's algorithm falls within the class of interior point methods: the current guess for the solution does not follow the boundary of the feasible set as in the simplex method, but it moves through the interior of the feasible region and reaches the optimal solution only asympotically.

Consider a Linear Programming problem in matrix form:

maximize cTx
subject to Ax ≤ b

The algorithm determines the next feasible direction toward optimality and scales back by a factor 0 ≤ γ ≤ 1.

Karmarkar's algorithm is rather complicated. A simplified version, called the affine-scaling method, proposed and analyzed by others, can be described succinctly as follows. Note that the affine-scaling algorithm, while efficient in practice, is not a polynomial time algorithm.

Algorithm Affine-Scaling
  Input:  A, b, c, x0, stopping criterion, γ.
   k \leftarrow 0 
  do while stopping criterion not satisfied
     v^k \leftarrow b-Ax^k
     D_v \leftarrow diag(v_1^k,\ldots,v_m^k)
     h_x\leftarrow (A^TD_v^{-2}A)^{-1}c
     h_v\leftarrow -Ah_x
     if h_v \ge 0 then
        return unbounded
     end if
     \alpha \leftarrow \gamma\cdot \min\{-v_i^k/(h_v)_i\le 0, i=1,\ldots,m\}
     x^{k+1}\leftarrow x^k + \alpha h_x
     k\leftarrow k+1
  end do
  • "←" is a loose shorthand for "changes to". For instance, "largestitem" means that the value of largest changes to the value of item.
  • "return" terminates the algorithm and outputs the value that follows.

Example solution
Example solution

Consider the linear program

maximize x1 + x2
subject to 2px1 + x2 \leq p2 + 1, p=0.0, 0.1, 0.2,\ldots, 0.9, 1.0

That is, there are 2 variables x1,x2 and 11 constraints associated with varying values of p. This figure shows each iteration of the algorithm as red circle points. The constraints are shown as blue lines.

  • Ilan Adler, Narendra Karmarkar, Mauricio G.C. Resende and Geraldo Veiga (1989). "An Implementation of Karmarkar's Algorithm for Linear Programming". Mathematical Programming, Vol 44, p. 297–335.
  • Narendra Karmarkar (1984). "A New Polynomial Time Algorithm for Linear Programming", Combinatorica, Vol 4, nr. 4, p. 373–395.
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.