Cuthill-Mackey algoritmus

A Cuthill -McKee algoritmus egy  szalagszélesség - csökkentő algoritmus szimmetrikus mátrixokhoz A fejlesztők - Elizabeth Cuthill és James McKee - után nevezték el.

A Reverse Cuthill-McKee ( RCM , fordított Cuthill-McKee ) ugyanaz az algoritmus fordított indexszámozással.

Algoritmus

Az eredeti szimmetrikus mátrixot a gráf szomszédsági mátrixaként kezeljük . A Cuthill-McKee algoritmus átszámozza a gráf csúcsait oly módon, hogy az eredeti mátrix oszlopainak és sorainak megfelelő permutációja következtében a szalag szélessége csökken .

Az algoritmus összeállítja az új csúcsok felsorolását reprezentáló csúcsok rendezett halmazát . Összekapcsolt gráf esetén az algoritmus így néz ki:

  1. válasszon egy perifériás csúcsot (vagy pszeudo-periférikus csúcsot ) a sor kezdeti értékéhez ;
  2. - esetén , amíg a feltétel teljesül , hajtsa végre a 3-5. lépéseket:
  3. építsünk szomszédsági halmazt a -hoz , ahol  a -edik összetevője , és zárja ki azokat a csúcsokat, amelyek már benne vannak a -ban , azaz: ;
  4. rendezés a csúcsfokozatok növekvő sorrendjében ;
  5. add hozzá az eredményhez .

Más szavakkal, az algoritmus a csúcsokat egy szélesség-előszöri keresésben sorolja fel, amelyben a szomszédos csúcsokat hatványuk növekvő sorrendjében haladja meg .

Leválasztott gráf esetén az algoritmus minden kapcsolt komponensre külön-külön alkalmazható [1] .

Az RCM algoritmus időszámítási bonyolultsága, feltéve, hogy a rendezéshez beszúrásos rendezést használunk , ahol  egy csúcs maximális foka,  a gráf éleinek száma [2] .

A kezdő csúcs kiválasztása

A jó eredmények eléréséhez meg kell találnia a gráf perifériás csúcsát . Ez a feladat általában meglehetősen nehéz, ezért ehelyett általában egy pszeudo-periférikus csúcsot keresnek Gibbs et al. heurisztikus algoritmusának valamelyik módosításával.

Az algoritmus leírásához bemutatjuk a gyökeres szintű struktúra fogalmát .  Egy adott csúcsra a következő helyen gyökerező szintstruktúra a csúcsok halmazának partíciója lesz :

ahol a részhalmazok meghatározása a következő:

és

Algoritmus egy pszeudoperiférikus csúcs megtalálására [3] :

  1. válasszon egy tetszőleges csúcsot a közül ;
  2. szintstruktúrát építsünk a gyökér számára : ;
  3. válasszuk ki azt a csúcsot, amelynek minimális foka van -ból ;
  4. szintstruktúrát építsünk a gyökér számára : ;
  5. ha , akkor rendelje hozzá és folytassa a 3. lépéssel;
  6. a csúcs a kívánt pszeudo-periférikus csúcs.

Jegyzetek

  1. George, Liu, 1984 , pp. 65-66.
  2. George, Liu, 1984 , p. 68.
  3. George, Liu, 1984 , pp. 70-72.

Irodalom

Linkek