Algoritmul Kernighan-Lin
Algoritmul Kernighan-Lin este un algoritm euristic pentru soluționarea problemei partiționării unui grafic cu complexitate de calcul .
Acest algoritm, propus în 1970 de Shen Lin și Brian Kernighan , are aplicații importante pentru proiectarea circuitelor digitale și VLSI .
Descriere
Luați în considerare graficul , unde este denotă mulțimea vârfurilor și setul de arcade .
Algoritmul își propune să găsească o partiție a în două subseturi Și de cardinalitate egală, astfel încât suma a costului arcurilor dintre elementele de Și să fie minimizate.
În special, dacă este notat cu
- costul intern al (adică suma costului arcurilor între și alte elemente care se află în același subset, fie el sau )
- costul extern (adică suma costului arcurilor între și toate celelalte vârfuri care nu aparțin aceluiași set de )
- diferența de cost
Atunci avem asta dacă se schimbă două elemente Și (unul aparținând , cealaltă a ), există o reducere a costurilor
unde cu costul arcului este notat între Și .
Algoritmul caută o succesiune optimă de permutații ale unui element de este unul din precum pentru a maximiza . [1] este unul dintre algoritmii optimizați.
Pseudo cod
Vezi [2]
1 funcție Kernighan-Lin ( G (V, E) ): 2 determină o partiție inițială a vârfurilor în A și B 3 fac 4 A1: = A; B1: = B 5 calculează D pentru toate a din A1 și b din B1 6 pentru (i: = 1 până la | V | / 2) 7 găsește un [i] din A1 și b [i] din B1 astfel încât g [i] = D [a [i]] + D [b [i]] - 2 * c [a [i]] [b [ i]] este maxim 8 deplasează a [i] la B1 și b [i] la A1 9 omite a [i] și b [i] din alte considerații 10 actualizează valorile lui D pentru elementele A1 = A1 / {a [i]} și B1 = B1 / {b [i]} 11 sfârșit pentru 12 găsește k care maximizează g_max = g [1] + ... + g [k] 13 if (g_max> 0) atunci 14 Schimbă a [1], a [2], ..., a [k] cu b [1], b [2], ..., b [k] 15 până la (g_max <= 0) 16 retur G (V, E)
Notă
- ^ BW Kernighan și Shen Lin , O procedură euristică eficientă pentru partiționarea graficelor , în Bell Systems Technical Journal , vol. 49, 1970, pp. 291-307.
- ^ Da. Pi Ravikumār, Ravikumar, CP, Metode paralele pentru proiectarea aspectului VLSI , Greenwood Publishing Group, 1995, p. 73, ISBN 978-0-89391-828-6 ,OCLC 2009-06-12 .