ขั้นตอนวิธีการลบย้อนกลับ (อังกฤษ: Reverse-delete algorithm) เป็นขั้นตอนวิธีในทฤษฎีกราฟที่ใช้สำหรับ ต้นไม้แผ่ขยายต่ำสุด (minimum spanning tree) ที่มีเส้นเชื่อม เชื่อมทุกปมต่อกันทั้งกราฟ และเส้นเชื่อมระหว่างคู่ปมแต่ละเส้นมีน้ำหนักเส้น ขั้นตอนวิธีนี้เป็น ขั้นตอนวิธีแบบละโมบ (Greedy algorithm) ซึ่งเป็นการย้อนกลับของ ขั้นตอนวิธีของครูสกาล (Kruskal’s algorithm) ที่ใช้ในการหาต้นไม้แผ่ขยายต่ำสุด ขั้นตอนวิธีของครูสกาลจะเริ่มจากกราฟที่ว่างเปล่า แล้วเพิ่มขึ้นทีละเส้นเชื่อม แต่ขั้นตอนวิธีการลบย้อนกลับนี้เริ่มจากกราฟเดิมที่สมบูรณ์แล้วลบออกทีละเส้นเชื่อมจากกราฟนั้นแทนโดยขั้นตอนวิธีดังกล่าวทำงาน ดังนี้
- เริ่มต้นด้วยกราฟ G ซึ่งประกอบด้วยแถวลำดับของเส้นเชื่อม E
- ผ่านกราฟ G โดยลดน้ำหนักของเส้นเชื่อมลงทีละลำดับ
- สำหรับแต่ละเส้นเชื่อม ตรวจสอบว่าการลบเส้นเชื่อมนั้นออก จะไม่ทำให้กลายเป็นกราฟที่ไม่เชื่อมต่อกัน
- ดำเนินการลบโดยไม่นำไปสู่การที่ทำให้การเชื่อมต่อของกราฟขาดออก
ขั้นตอนวิธีการลบย้อนกลับต้องมีการเชื่อมต่อกันในกราฟ และก่อนการลบกราฟบางส่วนออก ต้องมั่นใจว่าจะไม่ทำให้กราฟขาดออกจากกัน(คือเมื่อลบเส้นเชื่อมแล้วกราฟจะยังคงเชื่อมต่อกันไม่แยกออกเป็นส่วนๆ) เส้นเชื่อมต่างๆจะถูกลบโดยขั้นตอนวิธีนี้ทีละเส้นเป็นวงจรไปเรื่อยๆ ขั้นตอนวิธีนี้จะเริ่มจากเส้นเชื่อมที่มีน้ำหนักมากที่สุด และลดลงตามลำดับน้ำหนักไปเรื่อยๆ โดยเส้นเชื่อมที่ถูกลบไปจะเป็นเส้นเชื่อมที่มีค่ามากที่สุดในวงจร ดังนั้นตามความหมายของต้นไม้แผ่ขยายต่ำสุด เส้นเชื่อมที่ถูกลบออกไปโดยขั้นตอนวิธีนี้จะไม่เป็นส่วนของ ต้นไม้แผ่ขยายต่ำสุด
รหัสเทียม
เมธอดรับค่า แถวลำดับของเส้นเชื่อม E(edges[] E) { จัดลำดับ E ในแถวลำดับเรียงจากมากไปหาน้อยตามลำดับ ตั้งค่าเริ่มต้นให้ตัวแปร i=0 ทำการวนซ้ำไปเรื่อยๆขณะที่ค่า i น้อยกว่าขนาดของแถวลำดับ E ทั้งหมด { สร้างตัวแปร temp เก็บค่า ในรายการ E ตัวที่ i ทำการลบค่า ในรายการ E ตัวที่ i ถ้าปมระหว่างเส้นเชื่อมที่เก็บค่าใน temp ขณะนั้น ไม่เชื่อมต่อกัน ก็นำค่า temp เก็บ คืนสู่แถวลำดับ E ในช่องที่ i เพิ่มค่า i ขึ้น 1 } คืนค่าในแถวลำดับ E ทั้งหมด }
ตัวอย่าง
รูปภาพ | คำอธิบาย | |
---|---|---|
| ||
|
ประสิทธิภาพการทำงาน
ขั้นตอนวิธีนี้สามารถทำงานได้ในเวลา ซึ่ง คือจำนวนเส้นเชื่อม และ คือจำนวนปม โดยอธิบายการทำงานของเวลาได้ดังนี้
- การจัดเรียงข้อมูลโดยเปรียบเทียบน้ำหนักของเส้นเชื่อมทั้งหมดใช้เวลา
- การลบแต่ละครั้งใช้เวลา
- การตรวจสอบว่ากราฟเชื่อมต่อกันทุกปมหรือไม่ ใช้เวลา
ดังนั้นจึงใช้เวลาทั้งสิ้นของขั้นตอนวิธีนี้
ขั้นตอนวิธีที่เกี่ยวข้อง
- Kruskal's algorithm
- Prim's algorithm
- Borůvka's algorithm
- Dijkstra's algorithm
อ้างอิง
- Kleinberg, Jon; Algorithm Design, New York: Pearson Education, Inc..
- Thorup, Mikkel (2000), "Near-optimal fully-dynamic graph connectivity", pp. 343–350, doi:10.1145/335305.335345
{{}}
:|title=
ไม่มีหรือว่างเปล่า ((help)). - Reverse-Delete Algorithm (Paperback) by Lambert M. Surhone and Mariam T. Tennoe and Susan F. Henssonow
เพิ่มเติม
เป็นขั้นตอนวิธีการแก้ปัญหาที่คิดแบบง่าย ๆ และตรงไปตรงมา โดยพิจารณาว่าข้อมูลที่มีอยู่ในขณะนั้นมีทางเลือกใดที่ ให้ผลตอบแทนคุ้มที่สุด ขั้นตอนวิธีจะหาทางเลือกที่ดูดีที่สุดในขณะนั้นซึ่งถ้าข้อมูลนั้นพอเพียงที่จะทำให้สรุปคำตอบที่ดีที่สุด เราจะได้ขั้นตอนวิธีที่มีประสิทธิภาพ โดยทั่วไปการนำไปใช้กับ Optimization problem เพราะว่า เราต้องการการตัดสินใจว่าทางเลือกในปัจจุบันมีค่าตอบแทนมากที่สุดหรือน้อยที่สุดหรือไม่
แหล่งข้อมูลอื่น
- http://code.google.com/p/mst-algorithms/source/browse/trunk/MSTAlgorithms/src/cz/cvut/fel/minimalSpanningTree/algorithm/implementation/ReverseDeleteMST.java?spec=svn41&r=41
- http://en.vionto.com/show/me/Kruskal's+algorithm 2016-03-04 ที่ เวย์แบ็กแมชชีน
- http://courses.cs.vt.edu/~cs5114/spring2009/lectures/lecture05-greedy-graph-algorithms.pdf
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
khntxnwithikarlbyxnklb xngkvs Reverse delete algorithm epnkhntxnwithiinthvsdikrafthiichsahrb tnimaephkhyaytasud minimum spanning tree thimiesnechuxm echuxmthukpmtxknthngkraf aelaesnechuxmrahwangkhupmaetlaesnminahnkesn khntxnwithiniepn khntxnwithiaebblaomb Greedy algorithm sungepnkaryxnklbkhxng khntxnwithikhxngkhruskal Kruskal s algorithm thiichinkarhatnimaephkhyaytasud khntxnwithikhxngkhruskalcaerimcakkrafthiwangepla aelwephimkhunthilaesnechuxm aetkhntxnwithikarlbyxnklbnierimcakkrafedimthismburnaelwlbxxkthilaesnechuxmcakkrafnnaethnodykhntxnwithidngklawthangan dngni erimtndwykraf G sungprakxbdwyaethwladbkhxngesnechuxm E phankraf G odyldnahnkkhxngesnechuxmlngthilaladb sahrbaetlaesnechuxm trwcsxbwakarlbesnechuxmnnxxk caimthaihklayepnkrafthiimechuxmtxkn daeninkarlbodyimnaipsukarthithaihkarechuxmtxkhxngkrafkhadxxk khntxnwithikarlbyxnklbtxngmikarechuxmtxkninkraf aelakxnkarlbkrafbangswnxxk txngmnicwacaimthaihkrafkhadxxkcakkn khuxemuxlbesnechuxmaelwkrafcayngkhngechuxmtxknimaeykxxkepnswn esnechuxmtangcathuklbodykhntxnwithinithilaesnepnwngcriperuxy khntxnwithinicaerimcakesnechuxmthiminahnkmakthisud aelaldlngtamladbnahnkiperuxy odyesnechuxmthithuklbipcaepnesnechuxmthimikhamakthisudinwngcr dngnntamkhwamhmaykhxngtnimaephkhyaytasud esnechuxmthithuklbxxkipodykhntxnwithinicaimepnswnkhxng tnimaephkhyaytasudrhsethiymemthxdrbkha aethwladbkhxngesnechuxm E edges E cdladb E inaethwladberiyngcakmakiphanxytamladb tngkhaerimtnihtwaepr i 0 thakarwnsaiperuxykhnathikha i nxykwakhnadkhxngaethwladb E thnghmd srangtwaepr temp ekbkha inraykar E twthi i thakarlbkha inraykar E twthi i thapmrahwangesnechuxmthiekbkhain temp khnann imechuxmtxkn knakha temp ekb khunsuaethwladb E inchxngthi i ephimkha i khun 1 khunkhainaethwladb E thnghmd twxyangrupphaph khaxthibaycakrup nikhuxkraferimtn twelkhbnesnaesdngthungkhanahnkkhxngesnechuxmesnnn khntxnwithinicaerimtncakesnechuxmthiminahnkmaksud inthinikhuxesn DE khnad 15 thdmacungthakartrwcsxbwathalbesnechuxmnixxkcathaihkrafaeykxxkcakknhruximthaimichcungthakarlbesnnixxk esnthdmathimikhnadihyrxnglngma khuxesn FG dngnnkhntxnwithinicungtrwcsxbwathalbesnechuxm FG xxkaelw caimthaihkrafniaeykxxkcakkn esnechuxmthikhnadihythdmakhuxesn BD sungkhntxnwithiniktrwcsxbesnechuxmniehmuxnedimaelalbxxk thdmakhuxtrwcsxbesn EG sungpraktwathalbesnechuxmnixxkcathaihkrafnikhadxxkkhuxmipm G thihludxxk thaihkrafimechuxmtxkn dngnncungkhamipyngesnechuxm BC txip esnthdmakhux esn EF khntxnwithinicungtrwcsxbesnechuxmniaelathakarlbxxkkhntxnwithinicakhnhaesnechuxmiperuxycnimphbesnechuxmthilbtxipidaelw hlngcaknnkcaidkrafthiepn tnimaephkhyaytasudaelwkhunkhaklbip dngrupesnechuxmsiaedngaesdngthungesnthithuklbipaelwaelaesnechuxmthiehluxcathukaesdngepnsiekhiywprasiththiphaphkarthangankhntxnwithinisamarththanganidinewla O ElogE loglogE 3 displaystyle O ElogE loglogE 3 sung E displaystyle E khuxcanwnesnechuxm aela V displaystyle V khuxcanwnpm odyxthibaykarthangankhxngewlaiddngni karcderiyngkhxmulodyepriybethiybnahnkkhxngesnechuxmthnghmdichewla O ElogE displaystyle O ElogE karlbaetlakhrngichewla O 1 displaystyle O 1 kartrwcsxbwakrafechuxmtxknthukpmhruxim ichewla O logV loglogV 3 displaystyle O logV loglogV 3 dngnncungichewlathngsinkhxngkhntxnwithini O ElogV loglogV 3 displaystyle O ElogV loglogV 3 khntxnwithithiekiywkhxngKruskal s algorithm Prim s algorithm Boruvka s algorithm Dijkstra s algorithmxangxingKleinberg Jon Algorithm Design New York Pearson Education Inc Thorup Mikkel 2000 Near optimal fully dynamic graph connectivity pp 343 350 doi 10 1145 335305 335345 a href wiki E0 B9 81 E0 B8 A1 E0 B9 88 E0 B9 81 E0 B8 9A E0 B8 9A Citation title aemaebb Citation citation a title immihruxwangepla help Reverse Delete Algorithm Paperback by Lambert M Surhone and Mariam T Tennoe and Susan F Henssonowephimetimepnkhntxnwithikaraekpyhathikhidaebbngay aelatrngiptrngma odyphicarnawakhxmulthimixyuinkhnannmithangeluxkidthi ihphltxbaethnkhumthisud khntxnwithicahathangeluxkthidudithisudinkhnannsungthakhxmulnnphxephiyngthicathaihsrupkhatxbthidithisud eracaidkhntxnwithithimiprasiththiphaph odythwipkarnaipichkb Optimization problem ephraawa eratxngkarkartdsinicwathangeluxkinpccubnmikhatxbaethnmakthisudhruxnxythisudhruximaehlngkhxmulxunhttp code google com p mst algorithms source browse trunk MSTAlgorithms src cz cvut fel minimalSpanningTree algorithm implementation ReverseDeleteMST java spec svn41 amp r 41 http en vionto com show me Kruskal s algorithm 2016 03 04 thi ewyaebkaemchchin http courses cs vt edu cs5114 spring2009 lectures lecture05 greedy graph algorithms pdf