トポロジカルソート

トポロジカルソート: topological sort)は、グラフ理論において、有向非巡回グラフ: directed acyclic graph, DAG)の各ノードを順序付けして、どのノードもその出力辺の先のノードより前にくるように並べることである。有向非巡回グラフは必ずトポロジカルソートすることができる。

有向非巡回グラフのノードの集合に到達可能性関係 R (ノード x から y への(各辺の向きに逆行しない)経路が存在するとき、またそのときに限り xRy とする)を定めると、R半順序関係となる。トポロジカルソートとは、この R全順序になるように拡張したものとみなせる。

トポロジカルソートの典型的な利用例はジョブのスケジューリングである。トポロジカルソートのアルゴリズムはPERTというプロジェクト管理手法[1]のスケジューリングのために1960年代初頭に研究が開始された。ジョブはノードとして表現され、XからYへの辺はジョブXが終了しなければジョブYを始められないということを意味する(例えば洗濯が完了しなければ服を乾燥機にかけられないなど)。ジョブをトポロジカルソートすると、ジョブに着手すべき順番がわかることになる。

コンピュータサイエンスでの利用例は、命令スケジューリング、表計算で式を変更したとき再計算が必要なセルの評価順序の決定、論理合成Makefileで指定されたファイルのコンパイル順序の決定、リンカのシンボル依存関係の解決などがある。

左のグラフには次のように複数の結果にトポロジカルソートできる
  • 7, 5, 3, 11, 8, 2, 9, 10 (見た目において左から右、上から下への順)
  • 3, 5, 7, 8, 11, 2, 9, 10 (数値的に小さなノードを前に持ってくる)
  • 3, 7, 8, 5, 11, 10, 2, 9
  • 5, 7, 3, 8, 11, 10, 9, 2 (辺の数が少ないノードを前に持ってくる)
  • 7, 5, 11, 3, 10, 8, 9, 2 (辺の数が多いノードを前に持ってくる)
  • 7, 5, 11, 2, 3, 8, 9, 10

アルゴリズム

通常トポロジカルソートに使われるアルゴリズムはノードと辺の数に対して O(|V|+|E|) の線形な時間を必要とする。

Kahn (1962)[2] が発明したアルゴリズムは、トポロジカルソートされた結果になるようにノードを順に選択していくというものである。まずは入力辺を持たない開始ノードを探してそれを集合Sに追加する。グラフに閉路がなければ少なくとも1つはそういうノードが存在する。その次に、

L ← トポロジカルソートした結果を蓄積する空リスト
S ← 入力辺を持たないすべてのノードの集合

while S が空ではない do
    S からノード n を削除する
    L に n を追加する
    for each n の出力辺 e とその先のノード m do
        辺 e をグラフから削除する
        if m がその他の入力辺を持っていなければ then
            m を S に追加する

if グラフに辺が残っている then
    閉路があり DAG でないので中断

グラフが無閉路有向グラフならば L が解となる(解は1つとは限らない)。そうでなければグラフには1つ以上の循環があり、トポロジカルソートは不可能である。

S は単なる集合だけではなくキューやスタックでもよい。集合 S からノード n が取り除かれる順番に応じて、異なる解が生成される。

深さ優先探索版

トポロジカルソートの別のアルゴリズムは深さ優先探索をベースにしている。このアルゴリズムではグラフの各ノードについて、トポロジカルソートを始めてからすでに訪れたノードに到達するまで深さ優先探索を行う。また、L への追加は先頭に行うことに注意。

L ← トポロジカルソートされた結果の入る空の連結リスト

for each ノード n do
    visit(n)

function visit(Node n)
    if n をまだ訪れていなければ then
        n を訪問済みとして印を付ける
        for each n の出力辺 e とその先のノード m do
            visit(m)
        n を L の先頭に追加

上のアルゴリズムでノードnがリストLに追加されるのは、ノードnが依存している他のノード(グラフ中でnから到達可能な全てのノード)を訪れた後であることに注意。このアルゴリズムでは、ノードnが追加されるときnが依存するすべてのノードはすでにリストLに追加されていることが保証されている。そのようなノードはノードnからvisit()の再帰で到達するか、あるいはnを訪れるより前にすでに到達されているはずである。辺とノードは一度しか訪問されないのでこのアルゴリズムは線形時間しか必要としない。上の擬似コードはグラフに循環がある場合にそれをエラーとして検出することはできない。この深さ優先探索ベースのアルゴリズムは『アルゴリズムイントロダクション』[3]で解説されている。Tarjan (1976)[4] が最初に発表したものと思われる。

閉路を検出するには、下記の擬似コードで行える。

L ← トポロジカルソートされた結果の入る空の連結リスト

for each ノード n do
    if n に印が付いていない then
        visit(n)

function visit(Node n)
    if n に「一時的」の印が付いている then
        閉路があり DAG でないので中断
    else if n に印が付いていない then
        n に「一時的」の印を付ける
        for each n の出力辺 e とその先のノード m do
            visit(m)
        n に「恒久的」の印を付ける
        n を L の先頭に追加

解の一意性

もしトポロジカルソートされたノードのすべてのノードが隣接する次のノードへの辺を持つなら、元の有向非巡回グラフハミルトン路を含む。もしハミルトン路が含まれるなら、トポロジカルソートの結果は一意、つまり2つ以上の解は存在しない。逆に、トポロジカルソートがハミルトン路を作らないなら、元の有向非巡回グラフは2つ以上のトポロジカルソート結果を持つ。その場合、ある結果のうち直接辺によってつながっていないノードを交換することで2番目のトポロジカルソート結果を得ることができる。従って、一意なトポロジカルソート結果が存在するかどうか、あるいはハミルトン路が存在するかどうかは多項式時間で決定することができる。これに対し、一般のグラフにおけるハミルトン路の問題はNP困難である。[5]

参照

  1. ^ Jarnagin, M. P. (1960). Automatic machine methods of testing PERT networks for consistency. Technical Memorandum No. K-24/60. Dahlgren, Virginia: U. S. Naval Weapons Laboratory. 
  2. ^ Kahn, A. B. (1962). “Topological sorting of large networks”. Communications of the ACM 5 (11): 558–562. doi:10.1145/368996.369025. 
  3. ^ T. コルメン、R. リベスト、C. シュタイン、C. ライザーソン『アルゴリズムイントロダクション』(第3版)近代科学社、2013年12月17日(原著2009-7-31)。ISBN 476490408X 
  4. ^ Tarjan, Robert E. (1976). “Edge-disjoint spanning trees and depth-first search”. Algorithmica 6 (2): 171–185. doi:10.1007/BF00268499. 
  5. ^ Vernet, Oswaldo; Markenzon, Lilian (1997). “Hamiltonian problems for reducible flowgraphs”. Proc. 17th International Conference of the Chilean Computer Science Society (SCCC '97). pp. 264–267. doi:10.1109/SCCC.1997.637099. 

関連項目

  • en:tsort (Unix) - トポロジカルソートを行う Unix プログラム
  • make (UNIX) - プログラムのビルドを自動化する Unix プログラム

外部リンク

Read other articles:

A Change of SeasonsAlbum mini karya Dream TheaterDirilis19 September 1995 (1995-09-19)DirekamMei 1995 di BearTracks Studios, Suffern, New York (studio track); 31 Januari 1995 di Ronnie Scott's Jazz Club, London (live tracks)GenreProgressive metal, progressive rock, hard rockDurasi57:30LabelEastWestProduserDavid Prater, Dream TheaterKronologi Dream Theater Awake(1994)Awake1994 A Change of Seasons(1995) Falling into Infinity(1997)Falling into Infinity1997 Penilaian profesional Skor ula...

 

Olivetti S.p.A.Industriinformation technologyDidirikanIvrea, Italia 1908PendiriCamillo OlivettiKantorpusatIvrea, ItalyWilayah operasiEropaAmerika SelatanTokohkunciFrancesco Forlenza ChairmanPatrizia Grieco CEOProdukphotocopierskomputerperangkat kerasKaryawan1,570 (2005)IndukTelecom ItaliaSitus webhttp://www.olivetti.it Olivetti merupakan sebuah perusahaan multinasional yang menghasilkan berbagai macam produk elektronik. Perusahaan ini didirikan pada tahun 1908. Bermarkas di Ivrea, Italia. Per...

 

Bandar Udara AnaaAérodrome de AnnaGambar NASA dari Anaa AtollIATA: AAAICAO: NTGAInformasiJenisPublikPengelolaDSEAC Polynésie FrançaiseMelayaniAnaaLokasiTukuhora, Polinesia PrancisKetinggian dpl3 mdplPetaAAALokasi bandar udara di Polinesia PrancisLandasan pacu Arah Panjang Permukaan m kaki 14L/32R 1,502 5 Asphalt Sumber: DAFIF,[1] French AIP.[2] Bandar Udara Anaa (IATA: AAA, ICAO: NTGA) merupakan sebuah bandar udara yang terletak dekat Anaa, Pulau Tuamotu, Pol...

Bulgarian footballer and manager This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources:&...

 

2 Tawarikh 1Kitab Tawarikh (Kitab 1 & 2 Tawarikh) lengkap pada Kodeks Leningrad, dibuat tahun 1008.KitabKitab 2 TawarikhKategoriKetuvimBagian Alkitab KristenPerjanjian LamaUrutan dalamKitab Kristen14← 1 Tawarikh 29 pasal 2 → 2 Tawarikh 1 (atau II Tawarikh 1, disingkat 2Taw 1) adalah bagian pertama dari Kitab 2 Tawarikh dalam Alkitab Ibrani dan Perjanjian Lama di Alkitab Kristen. Dalam Alkitab Ibrani termasuk dalam bagian Ketuvim (כְּתוּבִים, tulisan).[1][...

 

Questa voce sugli argomenti allenatori di calcio spagnoli e calciatori spagnoli è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti dei progetti di riferimento 1, 2. Alfredo Nazionalità  Spagna Altezza 169 cm Peso 68 kg Calcio Ruolo Allenatore (ex centrocampista) Squadra  San Fernando CD Termine carriera 1º giugno 2003 - giocatore Carriera Squadre di club1 1987-1988 Pegaso? (?)1988-1989 Getafe19 (1)1989-1993 ...

Genus of megaraptoran dinosaurs MaipTemporal range: Late Cretaceous, Maastrichtian PreꞒ Ꞓ O S D C P T J K Pg N Known material (A), reconstruction of the thoracic cavity at level of sixth dorsal vertebra (B), and interpretative drawing of the excavation (C) Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Chordata Clade: Dinosauria Clade: Saurischia Clade: Theropoda Clade: †Megaraptora Family: †Megaraptoridae Genus: †MaipRolando et al., 2022 Species: †M....

 

Bilateral relationsRussia-Transnistria relations Russia Transnistria Russia–Transnistria relations are the bilateral relations between the Pridnestrovian Moldavian Republic (Transnistria), an unrecognised breakaway state that is internationally recognised as part of Moldova, and the Russian Federation. Russia does not officially recognise the independence of Transnistria; nevertheless, Russia maintains special relations with Transnistria in the political, military, cultural, and economic sp...

 

Australian politician Not to be confused with Tim Nichols. The HonourableTim NichollsMPNicholls in 2023Leader of the Opposition in QueenslandElections: 2017In office6 May 2016 – 12 December 2017PremierAnnastacia PalaszczukDeputyDeb FrecklingtonPreceded byLawrence SpringborgSucceeded byDeb FrecklingtonLeader of the Liberal National PartyIn office6 May 2016 – 12 December 2017DeputyDeb FrecklingtonPreceded byLawrence SpringborgSucceeded byDeb FrecklingtonDeputy Leader of th...

Town in Al-Shahaniya, QatarAl Jemailiya الجميليةTownEntrance into Al JemailiyaAl JemailiyaCoordinates: 25°37′15″N 51°4′55″E / 25.62083°N 51.08194°E / 25.62083; 51.08194Country QatarMunicipalityAl-ShahaniyaZoneZone 73District no.210Area[1] • Total27.6 km2 (10.7 sq mi) Al Jemailiya (Arabic: الجميلية, romanized: Al Jumaylīyah) is a town in the municipality of Al-Shahaniya, Qatar.[2] It used ...

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Cambodia–France relations – news · newspapers · books · scholar · JSTOR (July 2014) (Learn how and when to remove this message) Bilateral relationsCambodia–France relations Cambodia France Cambodia–France relations (Khmer: ទំនាក់ទំនង�...

Université de FuldaHistoireFondation 1974StatutType Université publiqueNom officiel Hochschule FuldaRégime linguistique Allemand et anglaisFondateur Leo WeismantelPrésident Karim KhakzarMembre de Association pour le soutien d’un réseau de recherche en Allemagne (en), Hochschulrektorenkonferenz. Allemagne (en), Deutscher Dialogmarketing Verband (d)Site web www.hs-fulda.deChiffres-clésÉtudiants 5 400Enseignants 130 professeursLocalisationPays AllemagneVille FuldaLocalisation sur l...

 

British Conservative Party politician a fine old ToryKnightley as caricatured by Spy (Leslie Ward) in Vanity Fair, November 1881 Arms of Knightley: Quarterly ermine and paly of six or and gules Rainald Knightley, 1st Baron Knightley (22 October 1819 – 19 December 1895), known as Sir Rainald Knightley, 3rd Baronet, from 1864 to 1892, was a British Conservative Party politician. Origins Knightley was the son of Sir Charles Knightley, 2nd Baronet of Fawsley, and his wife Selina Mary, daughter ...

 

U.S. presidential administration from 1921 to 1923 For a chronological guide, see Timeline of the Warren G. Harding presidency. Presidency of Warren G. HardingMarch 4, 1921 – August 2, 1923CabinetSee listPartyRepublicanElection1920SeatWhite House← Woodrow WilsonCalvin Coolidge → Seal of the president(1894–1945) Warren G. Harding's tenure as the 29th president of the United States lasted from March 4, 1921, until his death on August 2, 1923. Harding presided ...

Aeroporto di Olbia-Costa SmeraldaAeroportoIl Terminal Eccelsa (Aviazione Generale) dell'aeroporto di Olbia-Costa Smeralda Codice IATAOLB Codice ICAOLIEO Codice WMO16531 Nome commercialeAeroporto di Olbia Costa Smeralda DescrizioneTipoCivile GestoreGEASAR S.p.A. Gestore torre di controlloENAV Stato Italia Regione Sardegna Posizione3 km da Olbia Costruzione1969-1974 Classe ICAO4D Cat. antincendio8ª ICAO Altitudine11 m s.l.m. Coordinate40°53′55″N 9°31′03″E40°...

 

American politician William Karlin (1918) William Karlin (March 29, 1882 – December 1944) was an American politician and labor leader from New York. Life He was born in the Russian Empire, the son of Samuel Karlin and Rose Karlin. The family emigrated to the United States, and settled in New York City. He attended the public schools and was licensed as a pharmacist in 1901. He studied law at New York University School of Law from 1906 to 1908, was admitted to the bar, and practiced in New Y...

 

Межличностные отношенияТипы отношений Агамия Брак Броманс Вдовство Гражданское партнёрство Дружба Значимый другой Любовный треугольник Моногамия Отношения для секса Побратимство Полиамория Поливерность Полигамия Многожёнство Многомужество Родство Сексуальный па�...

Ghanaian academic and politician (1913–1978) Kofi Abrefa Busia2nd Prime Minister of GhanaIn office1 October 1969 – 13 January 1972PresidentBrigadier Akwasi Afrifa3 April 1969 – 7 August 1970 Nii Amaa Ollennu7–31 August 1970 Edward Akufo-Addo31 August 1970 – 13 January 1972Preceded byKwame Nkrumahas Prime MinisterSucceeded byNone(position abolished)Member of Parliament for WenchiIn office1 October 1969 – 13 January 1972Preceded byCharles Ebenezer Donkoh Personal d...

 

У этого термина существуют и другие значения, см. Феррара (значения). Населённый пунктФеррараитал. Ferrara Флаг Герб[вд] 44°50′ с. ш. 11°37′ в. д.HGЯO Страна  Италия регион Эмилия-Романья Провинция Феррара Мэр Тициано Тальяни История и география Площадь 160 км² Высота...