Prim-algoritmus

A Prim-algoritmus egy összefüggő súlyozott gráf minimális feszítőfáját határozza meg mohó stratégia segítségével. Működési elve, hogy csúcsonként haladva építi fel a fát, egy tetszőleges csúcsból kiindulva és minden egyes lépésben a lehető legolcsóbb élt keresi meg egy következő csúcshoz. Az algoritmust először Vojtěch Jarník írta le 1930-ban, de ez az eredmény ismeretlen maradt. Tőle függetlenül Robert C. Prim 1957-ben és Edsger Dijkstra 1959-ben újra felfedezték. Ezért az algoritmust nevezik még DJP-algoritmusnak, Jarník-algoritmusnak vagy Prim−Jarník-algoritmusnak is.

További ehhez hasonló algoritmus még a Kruskal-algoritmus és a Boruzvka-algoritmus. Ezek az algoritmusok megkeresik egy feltehetőleg nem összefüggő gráf minimális feszítő erdejét. Ezzel szemben a Prim-algoritmus egyszerű verziója egy összefüggő gráfban találja meg a minimális feszítőfát. Azonban a Prim-algoritmus alkalmazása a gráf különböző kapcsolódási pontjain szintén megtalálja a minimális feszítőerdőt. Ami a bonyolultságot illeti, mindhárom algoritmus egyformán gyors sűrű gráfokban, de lassabb más kifinomultabb algoritmusoknál. Az elég sűrű gráfok esetén a Prim-algoritmus lineáris idő alatt lefuttatható, azonosan vagy túlteljesítve más algoritmusok időbeli megkötéseit.

Az algoritmus leírása

Az algoritmus lépésenként építi fel a minimális feszítőfát, minden lépésben egy csúcsot adva hozzá.

Prim-algoritmus szemléltetése euklideszi távolságon alapulva

Az algoritmus lépései a következők:

  • Válasszuk ki a gráf egy tetszőleges csúcsát, legyen ez egy egycsúcsú fa.
  • Ameddig van a gráfnak olyan csúcsa, amelyik nincs benne a fában, végezzük el a következőket:
    • Válasszuk ki a fa csúcsai és a gráf többi csúcsa között futó élek közül a legkisebb súlyút.
    • A kiválasztott él nem fabeli csúcsát tegyük át a fába az éllel együtt.

Formálisabban:

00 Jelöljük V-vel a gráf csúcsainak halmazát.
 Jelöljük a feszítőfa csúcsainak halmazát X-szel, éleinek halmazát pedig F-fel.
01 Válasszunk ki tetszőlegesen egy csúcsot, legyen ez v.
02 X:={v}; Y:= V-X; F:=üres
03 while X ≠ V do
04 legyen {x,y}, ahol x  X, y  Y, a legkisebb súlyú él az
 X és Y közötti élek közül
05 F:=F  {(x,y)}; X:= X  {y}; Y:= Y-{y}
06 Eredmény: az (X,F) fa

Példa

A következő példában, lépésenként bemutatjuk az algoritmust. A táblázat második oszlopában az X és Y csúcshalmazokat egy szaggatott függőleges vonallal választjuk el, és csak a fa, valamint az X és Y közötti éleket jelöljük a megfelelő súlyokkal. Az első oszlopban mindig az eredeti gráf szerepel, hogy könnyen ellenőrizhessük az X és Y közötti éleket.

Kiválasztjuk az a csúcsot, kezdetben ez a fa. Kiválasztjuk a hozzá illeszkedő élek közül a legkisebb súlyút. Ez a c csúcs. Most az a és c csúcs, valamint az ezeket összekötő él képezi az új fát.

A fa és a gráf többi csúcsa közötti élek közül a {c,h} él a legkisebb súlyú.

A h csúcs és a {c,h} él átkerül a fába.

A fa és a gráf többi csúcsa közötti élek közül a {h,g} él a legkisebb súlyú.

A g csúcs és a {h,g} él átkerül a fába.

A fa és a gráf többi csúcsa közötti élek közül a {g,e} él a legkisebb súlyú.

Az e csúcs és a {g,e} él átkerül a fába.

A fa és a gráf többi csúcsa közötti élek közül a {c,d} és {h,d} élek mindegyike legkisebb súlyú. Bármelyiket választhatjuk. Válasszuk a {c,d} élt!

A d csúcs és a {c,d} él átkerül a fába.

A fa és a gráf többi csúcsa közötti élek közül a {c,b} él a legkisebb súlyú.

A b csúcs és a {c,b} él átkerül a fába.

A fa és a gráf többi csúcsa közötti élek közül az {a,f} él a legkisebb súlyú.

Az f csúcs és az {a,f} él átkerül a fába, amely feszítőfa, mivel a gráf minden csúcsát tartalmazza.
Az eredmény az eredeti gráf csúcselrendeződése szerint.

Amennyiben minden lépésben csupán egy legkisebb súlyú él van, a megoldás egyértelmű. Különben több minimális értékű feszítőfa létezhet.

Bonyolultsága

A Prim-algoritmus bonyolultsága az gráfnál alkalmazott adatszerkezettől és az élek súly szerinti rendezettségétől függ, ami az elsőbbségi sor segítségével lehetséges. Az alábbi táblázat a gyakori választásokat mutatja be:

Minimális élű adatszerkezet Teljes bonyolultság
Szomszédsági mátrix, keresés O(|V|2)
Bináris kupac és szomszédsági lista O((|V| +|E|) log |V|) = O(|E| log |V| )
Fibonacci kupac és szomszédsági lista O(|E| +|V|log |V|)

A Prim-algoritmus egy egyszerű megvalósítása, ami lineárisan nézi végig a súlyok listáját, hogy megtalálja a minimális hozzáadandó élt, O(|V|2) futási időbe telik. Ez a futási idő azonban jelentősen javítható, ha kupacokat használunk a minimális súlyú élek megtalálására a belső hurokban.

Az első továbbfejlesztett verziója kupacot használ, hogy eltárolja a súly szerint rendezett bemeneti gráf összes élét. Azonban élek helyett a csúcsok eltárolása még tovább fejlesztheti az algoritmust. A kupac a csúcsokat azon legkisebb él súlyok szerint rendezi,melyek tetszőleges a csúcsokkal kötik össze őket, a részlegesen felépített minimális feszítőfában (MFF) (vagy végtelen, ha nem létezik ilyen él). Mindig, amikor egy v csúcs kiválasztásra kerül és hozzáadódik a minimális feszítőfához, egy kulcs-csökkentő művelet lefut minden olyan a feszítőfán kívül eső w csúcson, ahol v össze van kötve w –vel és a kulcs az ezt megelőző érték minimumára van állítva és a élek költsége (v,w).

Egy egyszerű bináris kupac adatszerkezetet használva a Prim-algoritmus most már O(|E| log |V| ) idő alatt fut le, ahol |E| az élek száma |V| pedig a csúcsok száma. Az ennél precízebb Fibonacci-kupacot használva a bonyolultság O(|E| +|V|log |V|) –ra redukálható, ami aszimptotikusan gyorsabb, ha a gráf elég sűrű. Az ennél is sűrűbb gráfok esetén (legalább |V|c éllel, ahol c>1), a Prim-algoritmus lineáris idejű futása még egyszerűbb, a Fibonacci helyett egy d-kupac (speciális bináris kupac) használatával.

Helyessége

A helyesség bizonyítása Andrásfai Béla[1] ötletén alapszik. Könnyű belátni, hogy az algoritmus eredményeként mindegyik csúcshoz illeszkedő élek közül a legkisebb súlyú biztos benne van a megoldásban. Tehát színezzük ki pirossal az eredeti gráf azon éleit, amelyek az egyes csúcsokhoz illeszkedők közül a legkisebb súlyúak. Ha a piros élek egy feszítőfa élei, akkor ez a fa nyilván minimális. Ha az eredmény nem feszítőfa, akkor a piros élek több fa élei. Vonjuk össze ezen fák mindegyikét egy-egy csúcsba. Az így kapott fára alkalmazzuk újra az élek kifestését a fenti módon. Amikor a színezés befejeződik, az eredeti gráf ilyen módon kiszínezett élei egy feszítő fa élei lesznek, és pont azok, amelyeket az algoritmus is kiválaszt. Ez a fa természetesen minimális feszítőfa.

Formálisabban:

Legyen P egy összefüggő, súlyozott gráf. A Prim-algoritmus minden lépésében találnunk kell egy élt, ami egy részgráf egy élét a részgráfon kívüli éllel köti össze. Mivel P összefüggő, minden csúcshoz lesz út. Az algoritmus kimenetele legyen az Y fa. Legyen Y1 a gráf minimális feszítőfája. Ha Y1 = Y, akkor Y a minimális feszítőfa. Egyébként, legyen e az első hozzáadott él az Y fa elkészítésekor, ami nincs benne az Y1 fában és V az olyan élek által összekötött csúcsok halmaza melyek e előtt lettek hozzáadva. Ekkor az e él egyik végpontja eleme a V halmaznak , a másik nem. Mivel Y1, a P gráf egy feszítőfája, van Y1-nek olyan útja, ami a két végpontot köti össze. Ahogy bejárjuk az utat, találkoznunk kell egy olyan f éllel, ami egy V-beli csúcsot egy nem V-belivel köt össze. Annál a lépésnél, amikor az e él hozzá lett adva az Y fához, f–et is hozzá lehetett volna adni, méghozzá e helyett, ha a súlya kisebb mint e-nek, de mivel f-et nem adtuk hozzá, levonhatjuk azt a következtetést, hogy

w(f) ≥ w (e).

Legyen Y2 az a fa, amit úgy kaptunk, hogy eltávolítottuk az f élt és hozzáadtuk e-t az Y1 fához. Könnyen belátható, hogy Y1 összefüggő, ugyanannyi éle van, mint Y1-nek és az élek összsúlya nem nagyobb Y1 élei összsúlyának, így hát Y2 is egy minimális feszítőfája a P gráfnak, tartalmazza az e élt és minden más élt ami e előtt lett hozzáadva a V halmaz készítése során. A fenti lépéseket véges sokszor alkalmazva megkapjuk az Y minimális feszítőfát.

Párhuzamos algoritmusok

A Prim-algoritmus fő hurka eredendően szekvenciális, tehát nem párhuzamosítható. A belső hurok, amely meghatározza a következő minimális súlyú élt, ami nem alkot kört, párhuzamosítható úgy, hogy a csúcsokat és az éleket megosztja a rendelkezésre álló processzorok között.[2] A következő pszeudokód ezt szemlélteti.

1. Rendeljünk hozzá minden egyes Pi processzorhoz egy Vi halmazt az egymást követő csúcsok halmazából, melyek hossza .
2. Hozzuk létre a C, E , F és Q halmazokat, mint a szekvenciális algoritmusban, és osszuk fel C-t, E-t, valamint a gráfot az összes processzor között, mégpedig úgy, hogy minden processzor tárolja a bejövő éleket a csúcsok halmazában.
3. Ismételjük a következő lépéseket addig, amíg Q nem üres.

a, Minden processzor: keresse meg a vi csúcsot, aminek a Ci[vi] (helyi megoldás) értéke minimális.

b, Csökkentsük ezeket az értékeket (minimumcsökkentés), hogy megtaláljuk azt a v csúcsot, amelyre a lehető legkisebb a C[v] érték (globális megoldás).

c, Adjuk meg a kiválasztott csomópontot minden processzornak.

d, Adjuk hozzá v-t az F halmazhoz, és ha E[v] nem az indikátorérték, adjuk hozzá E[v]-t is az F halmazhoz.

e, Minden processzoron frissítsük Ci és Ei halmazokat.

4. Térjünk vissza F-fel.

Ez az algoritmus általában megosztott gépeken,[2] valamint megosztott memóriákat használó eszközökön is megvalósítható.[3] Grafikus feldolgozó egységeken (GPU) is futtatták már.[4] A futási idő , feltételezve, hogy a redukciós és a sugárzási műveletek végrehajthatók időn belül.[2] A Prim egy olyan változata is létezik már, amelyben a Prim szekvenciális algoritmust párhuzamosan hajtjuk végre, különböző csúcsoktól indulva, olyan eszközökön, melyek megosztják a memóriakapacitásukat.[5] Meg kell azonban jegyezni, hogy léteznek kifinomultabb algoritmusok az megosztott minimális feszítőfa probléma hatékonyabb megoldására.

Jegyzetek

Dijkstra algoritmusa, egy nagyon hasonló algoritmus a legrövidebb út problémájához.

Források

  • V. Jarník: O jistém problému minimálním (Egy bizonyos minimális problémáról), Práce Moravské Přírodovědecké Společnosti, 6, 1930, pp. 57–63. (cseh nyelven)
  • R. C. Prim: Shortest connection networks and some generalizations, Bell System Technical Journal, 36 (1957), pp. 1389–1401. Online hozzáférés
  • D. Cheriton, R. E. Tarjan: Finding minimum spanning trees, SIAM Journal on Computing, 5 (Dec. 1976), pp. 724–741
  • T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Új algoritmusok, Scolar Kiadó, 2003.
  • Rosen, Kenneth (2011) Discrete Mathematics and Its Applications, (7th ed.), McGraw-Hill Science, p. 798
  • Wang, Wei; Huang, Yongzhong; Guo, Shaozhong (2011). "Design and Implementation of GPU-Based Prim's Algorithm". International Journal of Modern Education and Computer Science 3.4.
  • Setia, Rohit (2009). "A new parallel algorithm for minimum spanning tree problem". Proc. International Conference on High Performance Computing (HiPC).

Kapcsolódó szócikkek

Jegyzetek

  1. Andrásfai Béla: Ismerkedés a gráfelmélettel, Tankönyvkiadó, Budapest, 1971,
  2. a b c Grama, Ananth. Introduction to Parallel Computing, 444–446. o. (2003). ISBN 978-0201648652 
  3. Quinn (1984. október 14.). „Parallel graph algorithms”. ACM Computing Surveys 16 (3), 319–348. o. DOI:10.1145/2514.2515.  
  4. Wang (2011. október 14.). „Design and Implementation of GPU-Based Prim's Algorithm”. International Journal of Modern Education and Computer Science 3.4.  
  5. Setia (2009. október 14.). „A new parallel algorithm for minimum spanning tree problem”. Proc. International Conference on High Performance Computing (HiPC).  

További információk

Read other articles:

Artikel ini bukan mengenai Witch's Love. A Witch's LovePoster promosi untuk Witch's RomanceGenreRomansa, KomediDitulis olehLee Sun-jung Ban Ki-riSutradaraLee Jung-hyoPemeranUhm Jung-hwa Park Seo-joonNegara asalKorea SelatanBahasa asliKoreaJmlh. episode16ProduksiLokasi produksiKoreaDurasiSenin dan Selasa pukul 21:40 (WSK)Rumah produksiGroup 8RilisJaringan aslitvNRilis asli14 April (2014-04-14) –10 Juni 2014 (2014-6-10)Acara terkaitMy QueenPranala luarSitus web A Witch's Lo...

نظال مالك حسن (بالإنجليزية: Nidal Malik Hasan)‏، ونضال مالك حسن  معلومات شخصية الميلاد 8 سبتمبر 1970 (العمر 53 سنة)فيرجينيا -  الولايات المتحدة الجنسية  الولايات المتحدة أمريكي الديانة مسلم المذهب الفقهي أهل السنة والجماعة مشكلة صحية شلل سفلي  عدد الأولاد 2   الحياة العملية

بوابة الشام ترحب بك، وتتمنى لك جولة ممتعة في تصفح أقسام البوابة الشام أو سوريا التاريخية، أو سورية الطبيعية (من اليونانية Σύρια Syria) هو اسم تاريخي للمنطقة الممتدة على الساحل الشرقي للبحر الأبيض المتوسط. أقدم استخدام لهذا المصطلح لدى اليونانيين يشير إلى الساحل وامتداده ليش�...

У этого термина существуют и другие значения, см. Коми. Субъект Российской ФедерацииРеспублика Комикоми Коми Республика Флаг Герб Гимн Республики Коми 64°17′00″ с. ш. 54°28′00″ в. д.HGЯO Страна  Россия Входит в Северо-Западный федеральный округ Северный экономичес

Mary Edwards Walker Mary Edwards Walker (Oswego, 26 november 1832 – aldaar, 21 februari 1919) was een Amerikaans feministe, chirurg, abolitionist en krijgsgevangene. Na haar studie geneeskunde trouwt ze en begint haar praktijk als arts. Als de secessieoorlog uitbreekt, gaat ze als vrijwilligster als chirurg werken in het leger van de Noordelijken. Om ook burgerslachtoffers te verzorgen, steekt ze de grens naar het Zuiden over en wordt daar aangezien als spion en gevangengenomen. Uiteindelij...

Chiến tranh Pháp-TháiMột phần của chiến tranh thế giới thứ haiĐông Dương thuộc PhápThời giantháng 10 năm 1940–9 tháng 5 năm 1941Địa điểmĐông Dương thuộc PhápKết quả Bất phân thắng bại[3] Nhật Bản dàn xếp việc ngừng bắn[4][5]Thay đổilãnh thổ Các lãnh thổ tranh chấp ở Đông Dương thuộc Pháp được nhượng lại cho Thái Lan[1][2]Tham chiến  Pháp Vichy &#...

1967 film by Franz Antel The Sweet Sins of Sexy SusanDirected byFranz AntelWritten byKurt NachmannProduced byCarl SzokollKurt KodalStarringTeri TordaiHarald LeipnitzCinematographySiegfried HoldMusic byGianni FerrioDistributed byVariety DistributionRelease dates1967 (Austria)16 January 1968 (West Germany)Running time91 minutesCountriesAustria, GermanyLanguageGerman The Sweet Sins of Sexy Susan (Austrian release: Susanne, die Wirtin von der Lahn, West German release: Die Wirtin von der Lahn) is...

American politicianAlvah Augustus ClarkMember of the U.S. House of Representativesfrom New Jersey's 4th districtIn officeMarch 4, 1877 – March 3, 1881Preceded byRobert HamiltonSucceeded byHenry S. Harris Personal detailsBornSeptember 13, 1840Lebanon Township, New Jersey, USDiedDecember 27, 1912(1912-12-27) (aged 72)Somerville, New Jersey, USPolitical partyDemocraticProfessionPolitician, Lawyer Alvah Augustus Clark (September 13, 1840 – December 27, 1912) was an Am...

Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí MinhSư phạm Kỹ thuậtCổng trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí MinhĐịa chỉ1 Võ Văn Ngân, Phường Linh Chiểu, Thành phố Thủ Đức, Thành phố Hồ Chí Minh, Việt NamThông tinTên khácSPK (mã trường)LoạiĐại học công lập, tự chủ về tài chínhKhẩu hiệuNhân bản - Sáng tạo - Hội nhậpThành lập1962Hiệu trưởngKhông cóWebsit...

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bharatpur division – news · newspapers · books · scholar · JSTOR (September 2009) (Learn how and when to remove this template message) Seven divisions of the Districts of Rajasthan. Bharatpur Division is the easternmost division. Bharatpur Division is one of the administrative g...

Attempt by the Jewish Haganah to suppress the radical Irgun militancy in Mandatory Palestine The SaisonPart of the Jewish insurgency in Mandatory PalestineDateNovember 1944 – February 1945LocationMandatory PalestineBelligerents Haganah United Kingdom Irgun LehiCommanders and leaders David Ben-Gurion Lord Gort Menachem Begin Yitzhak ShamirStrength unknown unknown vteIntercommunal conflict in Mandatory Palestine 1920 Nebi Musa riots Battle of Tel Hai Jaffa riots 1929 Palestine riots Hebr...

1915 film directed by Charlie Chaplin The TrampTheatrical release posterDirected byCharlie ChaplinWritten byCharlie ChaplinProduced byJess RobbinsStarringCharlie ChaplinEdna PurvianceCinematographyHarry EnsignEdited byCharlie ChaplinDistributed byEssanay StudiosGeneral Film CompanyRelease date April 11, 1915 (1915-04-11) Running time26 minutesCountryUnited StatesLanguageSilent (English intertitles) The Tramp is Charlie Chaplin's sixth film for Essanay Studios and was released i...

Corinthians 2019 soccer seasonCorinthians2019 seasonPresidentAndrés SánchezManagerFábio Carille(until November 3) Dyego Coelho(interim, from November 4)StadiumArena CorinthiansSérie A8thCopa do BrasilRound of 16Campeonato PaulistaWinnersCopa SudamericanaSemi-finalsTop goalscorerLeague: Mauro Boselli (7)All: Gustavo (14)Highest home attendance46,903 vs São Paulo(21 April)Lowest home attendance17,701 vs Avaí(27 November)Average home league attendance33,115 Home colors Away colors Third co...

Nagar, PakistanWilayah kerajaan di PakistanAbad ke-14–25 September 1979Letak Nagar di PakistanIbu kotaNagar, PakistanLuas • 5.000 km2 (1.900 sq mi)SejarahSejarah • Didirikan Abad ke-14• Dibubarkan 25 September 1979 Sekarang bagian dariGilgit-Baltistan, Pakistan Nagar (bahasa Urdu: الله أكبر, riyasat nagar) adalah sebuah wilayah kerajaan yang terletak di wilayah paling utara di Gilgit–Baltistan, Pakistan. Hingga Agustus 1947, negara...

Airport in PanamaChame AirportIATA: noneICAO: noneLID: MP24SummaryAirport typePublicLocationPanamaElevation AMSL141 ft / 43 mCoordinates8°35′20″N 79°53′23″W / 8.58889°N 79.88972°W / 8.58889; -79.88972MapMP24Location in PanamaRunways Direction Length Surface m ft 18/36 1,200 3,937 Asphalt Sources: WAD[1] GCM[2] Google Maps[3] Chame Airport (LID: MP24) is an airport serving Chame District, a district in the Panamá Oeste...

Hendrik Dyserinck Hendrik Dyserinck (11 Maret 1838 – 27 September 1906) adalah perwira Koninklijke Marine dan politikus Belanda. Dyserinck adalah menteri AL abad ke-19, yang kariernya sebagai perwira kelautan bermula dan berakhir sebagai schout-bij-nacht. Ia juga aktif di dinas perairan Hindia Belanda dan Hindia Barat. Lalu, ia menjadi sub-direktur AL di Willemsoord (Den Helder). Ia mundur sebagai menteri di Kabinet Mackay setelah menolak anggota parlemen Simon Taco Land yang ...

Scotch Old CollegiansNamesFull nameScotch Old Collegians Football Club2021 seasonAfter finalsDNQHome-and-away season9thLeading goalkickerDaniel Cahill ( goals)Best and fairestTim ChampionClub detailsFounded1929; 94 years ago (1929)Colours  blue   goldCompetitionSouth Australian AmateurCoachMatthew KluzekCaptain(s)to be announcedGround(s)Prince of Wales Oval, Scotch CollegeUniforms Home Away Other informationOfficial websitescotchoc.com.au/football The Scotch Old Co...

Bridge in Bangkok, ThailandRama IX Bridgeสะพานพระราม ๙Coordinates13°40′55″N 100°31′08″E / 13.682058°N 100.519001°E / 13.682058; 100.519001CarriesChaloem Maha Nakhon ExpresswayCrossesChao Phraya RiverLocaleBangkok, ThailandCharacteristicsDesigncable-stayedTotal length781.20 mWidth33 mHeight87 mLongest span450 mClearance below41 mNo. of lanes6HistoryConstruction start1 October 1984Opened5 December 1987Location Rama IX Bridge (Thai: ส...

2006 French filmDry SeasonPosterArabicDaratt Directed byMahamat Saleh HarounWritten byMahamat Saleh HarounProduced byAbderrahmane SissakoMahamat Saleh HarounStarringAli Bacha BarkaïmDjibril IbrahimAziza HisseineKhayar Oumar DefallahFatimé Hadje andYoussouf DjaoroCinematographyAbraham Haile BiruEdited byMarie-Hélène DozoMusic byWasis DiopRelease date 27 December 2006 (2006-12-27) Running time96 minutesCountriesFranceBelgiumChadAustriaLanguagesArabicFrenchBudget€1,503,903&#...

In Greek mythology, Astraeus or Astraios (/əˈstriːəs/; Ancient Greek: Ἀστραῖος means starry[1]) may refer to three various figures: Astraeus, one of the Titans, son of Eurybia and Crius. He was the father of the four Anemoi by his wife Eos.[2][3] Astraeus, son of Silenus and chief of the satyrs who came to join Dionysus in the Indian War.[4] Astraeus, a Mysian son of Poseidon. In the height of Athena's nocturnal solemnities, he deflowered his sist...