Share to: share facebook share twitter share wa share telegram print page

Thuật toán tìm thành phần liên thông mạnh của Tarjan

Tarjan's Algorithm Animation

Thuật Toán Tarjan (được đặt theo tên của người tìm ra nó - Robert Tarjan[1]) là một thuật toán trong lý thuyết đồ thị dùng để tìm thành phần liên thông mạnh trong một đồ thị. Mặc dù được tìm ra trước, nhưng nó có thể được xem như là phiên bản cải tiến của thuật toán Kosaraju.

Tổng quan

  • Dữ liệu vào của thuật toán là một đồ thị có hướng, và kết quả của thuật toán là danh sách các đỉnh bên trong các thành phần liên thông mạnh của đồ thị đó. Mỗi đỉnh của đồ thị xuất hiện trong đúng một thành phần liên thông mạnh. Nếu một đỉnh không thuộc một chu trình có hướng nào thì nó nằm trong thành phần liên thông mạnh riêng của chính nó: chẳng hạn như đỉnh có bậc ra và bậc vào bằng 0, hay các đỉnh của một đồ thị có hướng không có chu trình.
  • Ý tưởng cơ bản của thuật toán này là: tìm kiếm theo chiều sâu bắt đầu từ một đỉnh tùy ý (và sau đó tìm kiếm sâu dần trên bất kỳ các đỉnh nào chưa được xét). Việc tìm kiếm sẽ không xét đến bất kỳ đỉnh nào đã được xét trước đó. Các thành phần liên thông mạnh tạo nên các cây con của cây tìm kiếm, gốc của những cây con đó chính là gốc của các thành phần liên thông mạnh.
  • Các đỉnh được đưa vào một ngăn xếp theo thứ tự mà chúng đã được xét. Khi việc tìm kiếm trả về một cây con, các đỉnh được lấy ra khỏi ngăn xếp và được xác định xem liệu mỗi đỉnh được lấy ra có phải là gốc của một thành phần liên thông mạnh hay không. Nếu một đỉnh đã được xác định là gốc của một thành phần liên thông mạnh thì nó và tất cả các đỉnh được lấy ra trước đó hình thành nên thành phần liên thông mạnh.

Các thuộc tính cơ bản

  • Điểm mấu chốt của thuật toán chính là việc xác định một đỉnh có phải là gốc của một thành phần liên thông mạnh hay không. Đỉnh gốc đơn giản là đỉnh đầu tiên của thành phần liên thông mạnh được tìm thấy trong suốt quá trình tìm kiếm theo chiều sâu. Khi một đỉnh đã được xác định là đỉnh gốc, sau khi thăm xong đỉnh đó, tất cả các đỉnh nằm trong ngăn xếp từ gốc trở lên tạo thành một thành phần liên thông mạnh hoàn chỉnh.
  • Để tìm đỉnh gốc, mỗi đỉnh v được gán cho một chỉ số tìm kiếm là v.index, trong đó chỉ số các đỉnh được đánh liên tục theo thứ tự mà chúng được tìm thấy. Ngoài ra, mỗi nút cũng lưu trữ giá trị v.lowlink bằng với chỉ số nhỏ nhất của các đỉnh có thể đến được từ v, kể cả chính v. Giá trị v.lowlink luôn luôn nhỏ hơn hoặc bằng v.index. Do đó v là gốc của một thành phần liên thông mạnh khi và chỉ khi v.lowlink = v.index. Giá trị v.lowlink được tính trong quá trình tìm kiếm theo chiều sâu.

Mã giả thuật toán

Dữ liệu vào: đồ thị G = (V, E)
Dữ liệu ra: các thành phần liên thông mạnh (các tập hợp các đỉnh)
 index:= 0
 S:= empty
 for mỗi đỉnh v trong tập V do
   if (v.index không xác định) then
     strongconnect(v)
   end if
 repeat
 Hàm strongconnect(v)
   //Thiết lập chỉ số chiều sâu cho v sao cho chỉ số không sử dụng là nhỏ nhất
   v.index:= index
   v.lowlink:= index
   index:= index + 1
   S.push(v)
   // Xem đỉnh kế của v
   for mỗi (v, w) trong E do
     if (w.index không xác định) then
       // Đỉnh kế w chưa được viếng thăm; đệ quy thăm nó
       strongconnect(w)
       v.lowlink:= min(v.lowlink, w.lowlink)
     else if (w is in S) then
       // Đỉnh kế w nằm trong ngăn xếp S và do đó nằm trong thành phần liên thông mạnh hiện tại
       v.lowlink:= min(v.lowlink, w.index)
     end if
   repeat
   // Nếu v là nút gốc, lấy ra khỏi ngăn xếp và tạo ra một thành phần liên thông mạnh
   if (v.lowlink = v.index) then
     bắt đầu một thành phần liên thông mạnh
     repeat
       w:= S.pop()
       thêm w vào thành phân liên mạnh hiện tại
     until (w = v)
     xuất ra thành phần liên thông mạnh hiện tại
   end if
 end function
  • Biến index lưu số lần viếng thăm trong thuật toán tìm kiếm theo chiều sâu. S là ngăn xếp chứa các đỉnh,được khởi tạo ban đầu là một ngăn xếp rỗng và dung để lưu lại quá trình của những nút đã xét nhưng chưa hoàn tất việc tạo nên một thành phần liên thông mạnh.Lưu ý, đây không phải là thuật toán tìm kiếm theo chiều sâu trên ngăn xếp theo cách thông thường, bởi vì các đỉnh không được lấy ra giống như việc trả về kết quả tìm kiếm trên cây mà chúng chỉ được lấy ra khi toàn bộ thành phần liên thông mạnh được tìm thấy.
  • Vòng lặp ngoài thực hiện tìm kiếm lần lượt tất cả những đỉnh chưa được xét đến trước đó, để đảm bảo rằng những đỉnh không đến được từ đỉnh đầu tiên vẫn được xét. Hàm strongconnect thực hiện tìm kiếm theo chiều sâu từ một đỉnh v trên đồ thị, tìm tất cả các đỉnh đến được từ v, và trả về tất cả các thành phần liên thông mạnh của đồ thị con đó.
  • Khi mỗi đỉnh kết thúc việc tìm kiếm, nếu lowlink có giá trị bằng index thì đỉnh đó chính là đỉnh gốc của một thành phần liên thông mạnh - được hình từ bởi tất cả các đỉnh ở phía trước nó trong ngăn xếp. Thuật toán sẽ lấy ra tất cả các đỉnh có trong ngăn xếp và bao gồm đỉnh hiện tại, và trình bày tất các đỉnh như một thành phần liên thông mạnh.

Nhận xét

  • Độ phức tạp: thủ tục Tarjan được gọi một lần cho mỗi cạnh và mỗi cạnh được xét qua nhiều nhất là hai lần. Chi phí thời gian của thuật toán là tuyến tính tùy thuộc theo số lượng các cạnh có trong đồ thị G tức là:.
  • Việc kiểm tra xem w có nằm trong ngăn xếp hay không được hoàn tất trong một khoảng thời gian hằng số. Một cách thực hiện việc này là với mỗi đỉnh, lưu một biến logic việc nó có nằm trong ngăn xếp hay không.
  • Một ưu điểm của thuật toán là không có thành phần liên thông mạnh được xác định trước khi bất kỳ đỉnh kế của nó được xác định. Do đó, thứ tự của các thành phần liên thông mạnh đã được tìm thấy tạo thành nghịch đảo của một thứ tự sắp xếp tô pô.[2]

Tham khảo

  1. ^ Tarjan, R. E. (1972), “Depth-first search and linear graph algorithms”, SIAM Journal on Computing, 1 (2): 146–160, doi:10.1137/0201010
  2. ^ Harrison, Paul. “Robust topological sorting and Tarjan's algorithm in Python”. Truy cập ngày 9 tháng 2 năm 2011.

Xem thêm

Read other articles:

Uruguayan footballer (born 1990) In this Spanish name, the first or paternal surname is Hernández and the second or maternal family name is Platero. Abel Hernández Hernández with CSKA in 2018Personal informationFull name Abel Mathías Hernández Platero[1][2]Date of birth (1990-08-08) 8 August 1990 (age 33)[3]Place of birth Pando, UruguayHeight 1.85 m (6 ft 1 in)[1]Position(s) ForwardTeam informationCurrent team PeñarolNumber 23Y...

Julie Bell Julie Bell en 2005Información personalNacimiento 21 de octubre de 1958 (65 años)Beaumont (Estados Unidos) Nacionalidad EstadounidenseFamiliaCónyuge Boris Vallejo Información profesionalOcupación Pintora, ilustradora y modelo Sitio web www.juliebell.com [editar datos en Wikidata] Julie Bell (Beaumont, Texas, 1958) es una pintora y exculturista estadounidense. Gracias a su poderoso aspecto físico, Julie ha sido también modelo para las pinturas de su marido, el conoci...

Tyondai Braxton Información personalNacimiento 26 de octubre de 1978 (45 años)ConnecticutNacionalidad EstadounidenseEducaciónEducado en The Hartt School Información profesionalOcupación Instrumentista, compositorAños activo 1998 - presenteGéneros jazz contemporáneo, improvisación libre, música de vanguardiaInstrumentos guitarra, cantanteDiscográfica Warp RecordsArtistas relacionados Battles[editar datos en Wikidata] Tyondai Braxton (26 de octubre de 1978) es un compositor...

La fuerza del destino La forza del destino Cartel de la ópera, por Alexandre Charles Lecocq (entre 1862 y 1880).Género ÓperaActos 4 actosAmbientada en España e ItaliaBasado en Duque de Rivas: Don Álvaro o la fuerza del sino (1835)PublicaciónAño de publicación siglo XIXIdioma ItalianoMúsicaCompositor Giuseppe VerdiPuesta en escenaLugar de estreno Teatro Bolshói Kámenny (luego Teatro Mariinski) (San Petersburgo)Fecha de estreno 10 de noviembre de 1862Personajes Don Álvaro, indi...

63rd edition of Palarong Pambansa For the postponed year, see 2020 Palarong Pambansa. 63rd Palarong PambansaLogo of the 63rd Palarong Pambansa 2023Host cityMarikina, Metro ManilaCountryPhilippinesMottoBatang Malakas, Bansang Matatag.(lit. 'A Strong Youth, A Stable Nation')Teams17 regional athletic associationsAthletes9,172Sport34Events1,573OpeningJuly 29, 2023ClosingAugust 5, 2023Opened byPhilippine President Ferdinand Marcos Jr.Closed byPhilippine Vice President Sara DuterteAthlete...

Lists of solar eclipsesGeometry of a total solar eclipse(not to scale) Solar eclipses in antiquity Solar eclipses in the Middle Ages Modern history 16th 17th 18th 19th 20th 21st The future 22nd Eclipses seen from Australia China Indonesia Philippines Russia Ukraine United Kingdom United States See also Lists of lunar eclipsesvte Map all coordinates using: OpenStreetMap Download coordinates as: KML GPX (all coordinates) GPX (primary coordinates) GPX (secondary coordinates) This is a list of so...

  Isla Cristinaإسلا كريستينا (بالإسبانية: Isla Cristina)‏[1]  إسلا كريستينا إسلا كريستينا موقع إسلا كريستينا في مقاطعة ولبة (إسبانيا) تاريخ التأسيس 1755  تقسيم إداري البلد  إسبانيا[2] المنطقة أندلوسيا المسؤولون المقاطعة ولبة خصائص جغرافية إحداثيات 37°11′58″N 7°19′31″W /...

1938 film by Frank Borzage Not to be confused with Shining Hour. The Shining HourOriginal Film PosterDirected byFrank BorzageScreenplay byJane MurfinOgden NashBased onThe Shining Hour1934 playby Keith WinterProduced byJoseph L. MankiewiczFrank Borzage (uncredited)StarringJoan CrawfordMargaret SullavanRobert YoungMelvyn DouglasCinematographyGeorge J. FolseyEdited byFrank E. HullMusic byFranz WaxmanProductioncompanyMetro-Goldwyn-MayerDistributed byLoew's IncRelease date November 18, 1...

Morad DaoudNative nameمراد داؤدBorn (1960-08-02) 2 August 1960 (age 63)Salamiyah, SyriaLanguagearabicNationality SyrianEducationindustrial electricity secondary schoolSubjectnovelsPartnerHalah DaoudWebsitemoraddaoud.site123.me Literature portal Morad Daoud is a Syrian writer[1] and sculptor[2][3](born 2 August 1960, Salamyieh) Member of the story and novels society in the Arab Writers Union. He obtained a vocational secondary certificate...

2010 Shreveport mayoral election ← 2006 October 2, 2010 (first round)November 2, 2010 (runoff) 2014 →   Candidate Cedric Glover Bryan Wooley Party Democratic Republican First round 16,39045.29% 11,23631.05% Runoff 37,75764.14% 21,10835.86%   Candidate Roy A. Burrell David Cox Party Democratic Independent First round 4,72213.05% 2,6217.24% Runoff Eliminated Eliminated Mayor before election Cedric Glover Democratic Elected Mayor Cedric Glover Democratic Elections...

A short assize chess initial position A short assize chess initial position The short assize (French court assize = short sitting) is H. J. R. Murray's name for a chess variant that was played in medieval Europe. It was somewhat like sittuyin but developed independently, probably to get the armies into contact sooner. It was current in England and Paris in the second half of the 12th century, and perhaps at other times and/or places. The pieces started with the pawns on the third ranks, and t...

Untuk kegunaan lain, lihat Tara (disambiguasi). Ngarai Sungai Tara Ngarai Sungai Tara (Montenegro: Кањон ријеке Таре / Kanjon rijeke Tare, diucapkan [kǎɲɔːn târɛː]) adalah sebuah ngarai di Sungai Tara di Montenegro dan Bosnia dan Herzegovina. Ngarai tersebut terbentang di Montenegro yang dilindungi sebagai bagian dari Taman Nasional Durmitor dan merupakan sebuah Situs Warisan Dunia UNESCO.[1] Koordinat: 43°12′32″N 19°04′40″E / 43.20...

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada.Este aviso fue puesto el 23 de septiembre de 2018. Restauración Entidad subnacional Escudo RestauraciónLocalización de Restauración en República DominicanaCoordenadas 19°18′00″N 71°41′00″O / 19.3, -71.683333333333Idioma oficial EspañolEntidad Municipio de la República Dominicana • País República Dominicana • Provincia DajabónDistritos Municipales 5Event...

Something Always HappensCuplikan Neil Hamilton dan Esther RalstonSutradara Frank Tuttle Produser Jesse L. Lasky Adolph Zukor Ditulis olehRaymond CannonHerman J. MankiewiczFlorence RyersonFrank TuttleSkenarioRaymond CannonHerman J. MankiewiczFlorence RyersonFrank TuttlePemeranEsther RalstonNeil HamiltonSôjin KamiyamaCharles SellonSinematograferJ. Roy HuntPenyuntingVerna WillisPerusahaanproduksiFamous Players-Lasky CorporationDistributorParamount PicturesTanggal rilis 24 Maret 1928 (1928-...

1582 год в науке 1572 • 1573 • 1574 • 1575 • 1576 • 1577 • 1578 1579 • 1580 • 1581 • 1582 • 1583 • 1584 • 1585 1586 • 1587 • 1588 • 1589 • 1590 • 1591 • 1592 Другие события в 1582 году В 1582 году произошли различные научные и технологические события, некоторые из которых представлены ниже. Римский папа Григорий XIII Соде...

Гола Голова 43°01′33″ пн. ш. 23°42′03″ сх. д. / 43.02600000002777847° пн. ш. 23.701000000027779180° сх. д. / 43.02600000002777847; 23.701000000027779180Координати: 43°01′33″ пн. ш. 23°42′03″ сх. д. / 43.02600000002777847° пн. ш. 23.701000000027779180° сх. д. / 43.02600000002777847; 23.701000000027779...

В Википедии есть статьи о других людях с такой фамилией, см. Ли; Ли, Джим.Джим ЛиJim Lea Основная информация Имя при рождении англ. James Whild Lea Полное имя Джеймс Уайлд Ли Дата рождения 14 июня 1949(1949-06-14) (74 года) Место рождения Вулвергемптон, Англия Страна  Великобрит...

Public (magnet school) secondary school in the United StatesColumbia Secondary School for Math, Science & EngineeringLocation425 W 123rd StreetNew York City, New York, 10027United StatesCoordinates40°48′38″N 73°57′21″W / 40.81056°N 73.95583°W / 40.81056; -73.95583InformationTypePublic (Magnet school) secondaryMottoChallenging Academics, a Passion for Reason and Knowledge, Strength in Diversity [1]Established2007School district3 (partial), 4, 5, ...

Questa voce o sezione sull'argomento medicina contiene errori ortografici o sintattici oppure è scritta in una forma migliorabile. Commento: Linguaggio antiquato, probabilmente derivato dalla biografia ottocentesca utilizzata come fonte, da rendere in italiano corrente Contribuisci a correggerla secondo le convenzioni della lingua italiana e del manuale di stile di Wikipedia. Segui i suggerimenti del progetto di riferimento. Bartolomeo Panizza Senatore del Regno d'ItaliaDurata mand...

Erik Homburger Erikson Información personalNacimiento 15 de junio de 1902 Fráncfort del Meno, AlemaniaFallecimiento 12 de mayo de 1994 (91 años) Harwich, Cabo Cod, Massachusetts, Estados UnidosNacionalidad Alemán y estadounidenseFamiliaCónyuge Joan Erikson (1930-1994) EducaciónEducado en Universidad de Oxford Información profesionalÁrea PsicoanálisisPsicología del desarrolloConocido por Etapas eriksonianas de la psicología del desarrolloEmpleador Universidad de HarvardUni...

Kembali kehalaman sebelumnya