케르니간-린 알고리즘

Kernighan–Lin algorithm

Kernighan-Lin 알고리즘그래프의 파티션을 찾기 위한 경험적 알고리즘이다.알고리즘은 VLSI전자 설계 자동화에 있어 디지털 회로와 구성 요소의 레이아웃에 중요한 실용적 응용이 있다.[1][2]

설명

알고리즘에 대한 입력은 E의 가장자리에 정점 집합 V, 에지 집합 E 및 (선택적으로) 숫자 가중치가 있는 비방향 그래프 G = (V, E)이다.알고리즘의 목표는 A에서 B로 교차하는 가장자리 부분 집합의 가중치의 합계 T를 최소화하는 방법으로 V를 동일(또는 거의 동일한) 크기의 두 개의 분리 하위 집합 AB로 분할하는 것이다.그래프가 가중치가 없는 경우 그 대신 교차 가장자리 수를 최소화하는 것이 목표다. 이는 각 가장자리에 가중치를 하나씩 할당하는 것과 같다.알고리즘은 A의 정점을 B의 정점과 짝을 이루는 욕심 많은 알고리즘을 사용하여 각 패스에서 파티션을 유지하고 개선하여, 쌍으로 된 정점을 파티션의 한 쪽에서 다른 쪽으로 이동하면 파티션이 개선된다.정점을 일치시킨 후, 솔루션 품질 T에 가장 전체적인 영향을 미치기 위해 선택한 쌍의 부분집합을 수행한다.정점이 n개인 그래프를 보면 알고리즘의 각 패스는 시간 O(n2 log n)로 실행된다.

In more detail, for each , let be the internal cost of a, that is, the sum of the costs of edges between a and other nodes in A, and let be the external cost of a, that is, the sum of the costs of edges between a and nodes in B.마찬가지로에 대해 를 정의하십시오 ,

s의 외부 비용과 내부 비용의 차이다.ab를 상호 교환할 경우, 비용 절감은 다음과 같다.

ab 사이의 가능한 에지 비용이다.

알고리즘은 l - (를 최대화한 연산을 실행하여 그래프의 파티션을 AB에 생성한다[1]

가성음

출처:[2]

function Kernighan-Lin(G(V, E)) is     determine a balanced initial partition of the nodes into sets A and B          do         compute D values for all a in A and b in B         let gv, av, and bv be empty lists         for n := 1 to  V  / 2 do             find a from A and b from B, such that g = D[a] + D[b] − 2×c(a, b) is maximal             regv에 av고, bg를 추가하고 b더 이상 고려되지 않다에 대한 bv를 업데이트하 D값에 대한 요소의 A=한\와 같이고 B)B)b에 끝날 것을 발견 k은 극대화 g_max, 이 합계의 gv[1],..., gv[k]만약g_max>0다음 거래소 av[1], av[2],..., av[k]과 bv[1], bv[2]합니다..,bv[k] ~ (g_max  0) 반환 G(V, E)

참고 항목

참조

  1. ^ a b Kernighan, B. W.; Lin, Shen (1970). "An efficient heuristic procedure for partitioning graphs". Bell System Technical Journal. 49: 291–307. doi:10.1002/j.1538-7305.1970.tb01770.x.
  2. ^ a b Ravikumar, C. P (1995). Parallel methods for VLSI layout design. Greenwood Publishing Group. p. 73. ISBN 978-0-89391-828-6.