Kernighan-Lin is een algoritme om een lokale zoekactie uit te voeren.

Gebipartitioneerde graaf met knipgrootte = 2

Deze methode wordt gebruikt bij het graaf-bipartioneringsprobleem (zie Grafentheorie). Hierbij is het doel het de twee kleuren van de knopen van de graaf zo aan te passen zodat er zo min mogelijk knopen van verschillende kleur met elkaar verbonden zijn. Het aantal knopen dat met elkaar verbonden is en een andere kleur bezit noemt met de knipgrootte.

Algoritme bewerken

Het algoritme begint met een gebalanceerde graaf (evenveel 'witte' en 'zwarte' knooppunten)

  1. Probeer alle mogelijke wissels van de vrije knopen.
  2. Voer de wissel uit die de kleinste knipgroote oplevert.
  3. Fixeer de gewisselde knopen.
  4. Herhaal stap 1 t/m 3 totdat er geen vrije knopen meer zijn.
  5. Ga nu terug naar de situatie waarbij de knipgrootte minimaal is.
  6. Herhaal stap 1 t/m 6 totdat deze geen verbetering meer opleveren.
  7. Nu is er een lokaal optimum gevonden.

Snelheid bewerken

Kernighan-Lin op de standaard manier geïmplementeerd levert een kwadratische tijd op ten opzichte van het aantal knopen: O(N*N).