บทนำ
ในอัลกอริทึม เช่นเดียวกับในชีวิต การคิดลบอาจเป็นสิ่งฉุดรั้ง
พิจารณาปัญหาในการหาเส้นทางที่สั้นที่สุดระหว่างจุดสองจุดบนกราฟ ซึ่งเป็นเครือข่ายของโหนดที่เชื่อมต่อกันด้วยลิงก์หรือขอบ บ่อยครั้งที่ขอบเหล่านี้ใช้แทนกันไม่ได้: กราฟอาจแสดงแผนที่ถนนที่ถนนบางเส้นช้ากว่าถนนอื่นหรือมีค่าผ่านทางสูงกว่า นักวิทยาศาสตร์คอมพิวเตอร์พิจารณาความแตกต่างเหล่านี้โดยจับคู่ขอบแต่ละด้านกับ "น้ำหนัก" ที่ระบุปริมาณค่าใช้จ่ายในการเคลื่อนย้ายข้ามส่วนนั้น ไม่ว่าต้นทุนนั้นจะแสดงถึงเวลา เงิน หรือสิ่งอื่นใด ตั้งแต่ทศวรรษ 1950 เป็นต้นมา พวกเขารู้จักวิธีค้นหาเส้นทางที่สั้นที่สุดโดยพื้นฐานแล้วให้เร็วที่สุดเท่าที่จะเป็นไปได้ในทางทฤษฎี โดยถือว่าน้ำหนักทั้งหมดเป็นจำนวนบวก
แต่ในบางกราฟน้ำหนักอาจเป็นค่าลบได้ — การเดินทางไปตามส่วนใดส่วนหนึ่งสามารถหักล้างค่าใช้จ่ายในการเดินทางข้ามส่วนอื่นได้ ตัวอย่างเช่น พิจารณาคนขับรถส่งของที่ต้องรักษาสมดุลระหว่างค่าน้ำมันและค่าผ่านทาง (น้ำหนักบวก) กับรายได้จากการขนส่งพัสดุภัณฑ์ (น้ำหนักลบ) ในกรณีเช่นนี้ อัลกอริทึมเส้นทางที่สั้นที่สุดที่รู้จักเร็วที่สุดจะไม่ทำงาน เป็นเวลาหลายทศวรรษแล้วที่อัลกอริธึมที่รวดเร็วสำหรับการค้นหาเส้นทางที่สั้นที่สุดในกราฟน้ำหนักเชิงลบยังคงเข้าใจยาก
ตอนนี้นักวิทยาศาสตร์คอมพิวเตอร์สามคนได้แก้ปัญหาที่มีมายาวนานนี้แล้ว ใหม่ของพวกเขา ขั้นตอนวิธีซึ่งค้นหาเส้นทางที่สั้นที่สุดผ่านกราฟจากโหนด "ต้นทาง" ที่กำหนดไปยังโหนดอื่นๆ ทุกโหนด เกือบเท่ากับความเร็วที่อัลกอริทึมน้ำหนักบวกทำสำเร็จเมื่อนานมาแล้ว
ยิ่งไปกว่านั้น วิธีการใหม่นี้ใช้เทคนิคทางคณิตศาสตร์ที่มีอายุหลายสิบปี หลีกเลี่ยงวิธีการที่ซับซ้อนกว่าซึ่งครอบงำการวิจัยทฤษฎีกราฟสมัยใหม่
“ฉันไม่อยากจะเชื่อเลยว่าจะมีอัลกอริทึมง่ายๆ แบบนี้อยู่” มักซีมีเลียน พรอสต์ กูเตนเบิร์กนักวิทยาศาสตร์คอมพิวเตอร์แห่ง Swiss Federal Institute of Technology Zurich “ทั้งหมดนี้มีมาเป็นเวลา 40 ปีแล้ว ต้องใช้ใครสักคนที่ฉลาดจริงๆ และมุ่งมั่นที่จะทำทุกอย่างให้สำเร็จ”
ขีดจำกัดของความโลภ
เรื่องราวเริ่มขึ้นในปี 1956 เมื่อนักวิทยาศาสตร์คอมพิวเตอร์ชาวดัตช์ Edsger Dijkstra ได้พัฒนาอัลกอริธึมที่รวดเร็วเพื่อค้นหาเส้นทางที่สั้นที่สุดบนกราฟที่มีน้ำหนักเป็นบวกเท่านั้น เพื่อทำความเข้าใจ ลองจินตนาการว่าเริ่มต้นจากแหล่งที่มาและสำรวจกราฟทีละโหนด จดน้ำหนักของขอบที่เพิ่งค้นพบในขณะที่คุณดำเนินการ แต่ละครั้งที่คุณไปที่โหนด ให้ทำการประมาณค่าเบื้องต้นของเส้นทางที่สั้นที่สุดจากต้นทางไปยังเพื่อนบ้านของโหนดใหม่แต่ละแห่ง อัปเดตค่าประมาณที่มีอยู่ หากคุณพบเส้นทางใหม่ที่สั้นกว่า ในการตัดสินใจว่าจะไปที่โหนดใดที่ยังไม่สำรวจเป็นลำดับถัดไป ให้ใช้สิ่งที่เรียกว่ากลยุทธ์โลภ: ไปที่โหนดใดก็ได้ที่ใกล้กับแหล่งที่มามากที่สุดตามการประมาณการปัจจุบันของคุณ
ด้วยน้ำหนักที่เป็นบวก เส้นทางที่อัลกอริทึมของ Dijkstra ใช้ในการเยี่ยมชมแต่ละโหนดเป็นครั้งแรกนั้นสั้นที่สุดอย่างแท้จริง เป็นการง่ายที่สุดที่จะเห็นว่านี่เป็นความจริงสำหรับขั้นตอนแรก ลองนึกภาพสองโหนด A และ B เชื่อมต่อกันโดยขอบที่มีน้ำหนัก 2 ถ้า A เป็นโหนดต้นทาง และขอบอื่นๆ ที่แตะโหนดนั้นมีน้ำหนักมากกว่า ดังนั้นเส้นทางตรงจาก A ถึง B จะต้องเป็นเส้นทางที่สั้นที่สุดเท่าที่จะเป็นไปได้ที่เชื่อมต่อสองจุดนั้น เนื่องจากส่วนแรกของเส้นทางอื่นๆ จะยาวกว่าอยู่แล้ว การใช้เหตุผลที่คล้ายกันในแต่ละขั้นตอน อัลกอริทึมไม่จำเป็นต้องมองย้อนกลับไป ดังนั้นจึงรับประกันว่าจะเสร็จสิ้นหลังจากเรียกใช้ผ่านกราฟเพียงครั้งเดียว นั่นคือสิ่งที่ทำให้มันรวดเร็วมาก
แต่น้ำหนักเชิงลบกลับสร้างปัญหาให้กับกลยุทธ์โลภของไดจ์คสตรา พิจารณาคนขับรถส่งสินค้าของเราอีกครั้ง เส้นทางตรงจาก A ถึง B ที่มีกำไรเล็กน้อยอาจทำเงินได้น้อยกว่าเส้นทางอ้อมที่มีผลตอบแทนมาก “คุณไม่สามารถตัดสินใจได้โดยใช้ข้อมูลในท้องถิ่นเพียงอย่างเดียว” กล่าว ซันเยฟ คันนานักวิทยาศาสตร์คอมพิวเตอร์แห่งมหาวิทยาลัยเพนซิลเวเนีย “คุณอาจต้องทำการเคลื่อนไหวที่ดูเหมือนจะไม่ดีหลายครั้งเพื่อให้ได้รางวัลที่แท้จริงในที่สุด”
เป็นเวลาหลายทศวรรษที่นักวิทยาศาสตร์คอมพิวเตอร์ที่ทำงานเกี่ยวกับกราฟน้ำหนักเชิงลบพยายามจับคู่ความเร็วของอัลกอริทึมของ Dijkstra กับอัลกอริทึม "combinatorial" ที่คล้ายคลึงกัน สิ่งเหล่านี้เกี่ยวข้องกับการดำเนินการที่ไม่ต่อเนื่อง เช่น ความเป็นไปได้ในการนับ การปรับเปลี่ยนน้ำหนัก และการเลือกลบขอบ ซึ่งสะท้อนถึงโครงสร้างที่ไม่ต่อเนื่องของกราฟต้นแบบ ความคืบหน้าชะลอตัวลงในปี 1990 อย่างไรก็ตาม ไม่นานมานี้ นักวิจัยได้ใช้อัลกอริทึม “การปรับให้เหมาะสมอย่างต่อเนื่อง” ซึ่งยืมเทคนิคจากแคลคูลัส น่าเสียดายที่การเร่งความเร็วที่เกิดขึ้นมีจำกัด และมักจะต้องแลกมาด้วยความเรียบง่าย
ทำลายวงจร
ในฤดูร้อนปี 2021 นักวิทยาศาสตร์คอมพิวเตอร์สองคนที่กลายมาเป็นเพื่อนร่วมงานที่มหาวิทยาลัยโคเปนเฮเกน — ดนุพล นันหนองคาย และ คริสเตียน วูล์ฟ-นิลเซ่น — กำลังค้นหาหัวข้อสำหรับโครงการวิจัยร่วม “คริสเตียนพูดว่า 'อ้อ ฉันไปเที่ยวพักผ่อน และด้วยเหตุนี้ฉันจึงพยายามนึกถึงบางสิ่งที่ทะเยอทะยานมาก'” นานงไค ซึ่งตอนนี้อยู่ที่สถาบันมักซ์พลังค์เพื่อสารสนเทศ ในเมืองซาร์บรุคเคิน ประเทศเยอรมนี เล่า พวกเขาตัดสินปัญหาเส้นทางที่สั้นที่สุดโดยน้ำหนักติดลบและเชิญ แอรอนเบิร์นสไตน์ แห่งมหาวิทยาลัยรัตเกอร์สเข้าร่วมด้วย
นักวิจัยทั้งสามคนเป็นผู้เชี่ยวชาญในอัลกอริทึมกราฟเชิงผสมสำหรับปัญหาอื่นๆ และพวกเขาต้องการดูว่าแนวทางที่ค่อนข้างโบราณเหล่านี้จะไปได้ไกลแค่ไหน “มีอิสระในการทำงานกับปัญหาที่มีความทะเยอทะยานและเปิดกว้างมานานแล้ว” เบิร์นสไตน์กล่าว
ทั้งสามเริ่มต้นด้วยการละเว้นส่วนย่อยของกราฟที่เป็นไปได้ชั่วคราว: กราฟที่มีวัฏจักรเป็นลบ เส้นทางเหล่านี้เป็นเส้นทางที่วนกลับไปยังจุดเริ่มต้นหลังจากผ่านชุดขอบที่มีน้ำหนักรวมกันเป็นจำนวนลบ ในกราฟที่มีวัฏจักรเป็นลบซึ่งสามารถเข้าถึงได้จากจุดเริ่มต้น แนวคิดเกี่ยวกับเส้นทางที่สั้นที่สุดจะหยุดลง เนื่องจากคุณสามารถทำให้ระยะทางไปยังโหนดใดๆ เป็นลบ (หรือทำกำไรได้) เท่าที่คุณต้องการ โดยการทำรอบซ้ำๆ รอบวัฏจักรเชิงลบก่อน มุ่งหน้าสู่จุดหมายปลายทางของคุณ
นักวิจัยสงสัยว่าเส้นทางเชิงลบที่ยาวเป็นสาเหตุหลักที่ทำให้ปัญหายุ่งยาก ดังนั้นพวกเขาจึงเริ่มมุ่งเน้นไปที่กลุ่มโหนดที่อยู่ใกล้เคียงซึ่งไม่สามารถมีเส้นทางเชิงลบที่ยาวได้ นั่นเป็นเพราะหากจุดสองจุดเชื่อมต่อกันด้วยเส้นทางบวกสั้นๆ การเพิ่มเส้นทางเชิงลบที่ยาวระหว่างจุดทั้งสองจะสร้างวงจรเชิงลบ ภายในกลุ่มที่แน่นหนา "ความจริงที่ว่าทุกคนใกล้ชิดกันในแง่บวกจริง ๆ แล้วให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับขอบเชิงลบเช่นกัน" เบิร์นสไตน์กล่าว “มันบอกคุณว่าสิ่งต่าง ๆ ไม่สามารถเป็นลบเกินไป”
กราฟส่วนใหญ่มีคลัสเตอร์ที่แน่นแฟ้นซึ่งเชื่อมต่อกันเพียงเล็กน้อยเท่านั้น หากนักวิจัยสามารถระบุคลัสเตอร์ทั้งหมดได้ พวกเขาสงสัยว่าพวกเขาสามารถพัฒนาวิธีค้นหาเส้นทางที่สั้นที่สุดภายในแต่ละคลัสเตอร์ได้อย่างรวดเร็ว จากจุดนั้น พวกเขาอาจมีเวลาที่ง่ายขึ้นในการเชื่อมต่อแต่ละคลัสเตอร์และค้นหาเส้นทางที่สั้นที่สุดในกราฟต้นฉบับ แต่นั่นจำเป็นต้องระบุขอบเขตของกราฟใดๆ ที่โหนดอยู่ใกล้กันอย่างรวดเร็ว ซึ่งเป็นสิ่งที่พวกเขาไม่รู้ว่าต้องทำอย่างไร กุญแจสำคัญกลายเป็นเทคนิคที่เกิดขึ้นในสาขาทฤษฎีกราฟที่แตกต่างกันโดยสิ้นเชิง
การตัดกราฟ
ในปี 1980 นักวิทยาศาสตร์คอมพิวเตอร์ได้พัฒนาเทคนิคที่เรียกว่าการสลายตัวที่มีเส้นผ่านศูนย์กลางต่ำ เพื่อเลือกกลุ่มที่แน่นในกราฟ และระบุขอบที่จะลบเพื่อแยกกลุ่มเหล่านั้น เทคนิคนี้เป็นวิธีการแบ่งกราฟออกเป็นส่วนอิสระ มันถูกประดิษฐ์ขึ้นเพื่ออำนวยความสะดวกให้กับอัลกอริทึมแบบ "กระจาย" ซึ่งการคำนวณจะทำงานแบบคู่ขนานบนส่วนต่างๆ ของกราฟ ดังนั้นจึงมีประโยชน์น้อยกว่าอย่างเห็นได้ชัดสำหรับอัลกอริทึมเส้นทางที่สั้นที่สุดซึ่งไม่มีคุณสมบัตินี้
Bernstein, Nanongkai และ Wulff-Nilsen ตระหนักว่าการสลายตัวที่มีเส้นผ่านศูนย์กลางต่ำสามารถช่วยให้พวกเขาระบุกลุ่มได้โดยปราศจากการปฏิเสธที่เข้มข้นมากนัก น่าเสียดายที่อัลกอริธึมการสลายตัวที่มีเส้นผ่านศูนย์กลางต่ำมาตรฐานใช้งานได้กับกราฟที่ไม่มีทิศทางเท่านั้น — กราฟที่ทุกขอบสามารถผ่านได้ทั้งสองทิศทาง ปัญหาเส้นทางที่สั้นที่สุดที่น้ำหนักติดลบ เหมาะสมเฉพาะกับกราฟกำกับ ซึ่งขอบทุกด้านเป็นถนนเดินรถทางเดียว (ไม่เช่นนั้น ขอบด้านลบที่ไม่มีทิศทางเดียวจะสร้างวงจรด้านลบที่ประกอบด้วยการกระโดดซ้ำไปมาในขอบนั้น) หากนักวิจัยต้องการใช้การสลายตัวที่มีเส้นผ่านศูนย์กลางต่ำ พวกเขาจะต้องดัดแปลงมัน
นั่นคือสิ่งที่พวกเขาทำในเอกสารฉบับใหม่ เเรงบันดาลใจจาก งานที่ผ่านมา ซึ่ง Bernstein และ Wulff-Nilsen ได้ร่วมมือกับ Probst Gutenberg พวกเขาพัฒนาขั้นตอนการแยกส่วนสำหรับกราฟกำกับที่คล้ายคลึงกับการสลายตัวที่มีเส้นผ่านศูนย์กลางต่ำ ขั้นตอนนี้จะตัดกราฟที่กำกับโดยพลการออกเป็นชุดของคลัสเตอร์ที่แน่นแฟ้นโดยใช้กระบวนการสุ่มเพื่อลบขอบเพียงหยิบมือเดียว หลังจากนั้น คลัสเตอร์เหล่านั้นจะเชื่อมต่อกันด้วยเครือข่ายสปาร์เซอร์ซึ่งขอบทั้งหมดชี้ไปในทิศทางเดียวกัน เครือข่ายประเภทนั้นเรียกว่ากราฟอะไซคลิกแบบกำกับหรือ DAG
ให้นึกถึง DAG เหมือนกับสายน้ำที่น้ำอาจไหลไปตามเส้นทางต่างๆ: เส้นทางบางสายไหลมาจากแหล่งต่างๆ เส้นทางอื่นๆ พัดออกไปในทิศทางต่างๆ กัน และเส้นทางอื่นๆ อาจแยกออกจากกันและรวมกลับเข้าด้วยกัน แต่ไม่มีสิ่งใดไหลย้อนกลับ ดังนั้นจึงไม่มีวัฏจักร สิ่งนี้ทำให้การทำงานกับ DAG ง่ายขึ้นมาก
นักวิจัยทราบมานานแล้วว่าจะค้นหาเส้นทางที่สั้นที่สุดอย่างรวดเร็วบน DAG ได้อย่างไร แม้จะมีน้ำหนักเป็นลบ ดังนั้น เทคนิคการแยกส่วนทำให้นักวิจัยทั้งสามคนสามารถลดกราฟที่กำกับใดๆ ลงเป็นกรณีพิเศษสองกรณีรวมกัน นั่นคือ DAG และกลุ่มที่แน่น ซึ่งแต่ละกรณีจัดการได้ง่าย
อัลกอริธึมเส้นทางที่สั้นที่สุดใหม่ใช้ขั้นตอนการแยกส่วนซ้ำๆ เพื่อแบ่งกราฟออกเป็นคลัสเตอร์ที่แน่นแฟ้นซึ่งเชื่อมต่อกันด้วย DAG จากนั้นจะแยกกลุ่มเหล่านั้นออกจากกันต่อไป ในตอนท้ายของกระบวนการ กลุ่มที่ระดับในสุดจะเชื่อมต่ออย่างใกล้ชิดที่สุดเท่าที่จะเป็นไปได้ เหตุผลส่วนหนึ่งที่อัลกอริทึมทำงานเร็วมากก็คือไม่ต้องทำซ้ำหลายครั้งเพื่อแยกย่อยแม้กระทั่งกราฟขนาดใหญ่มาก เช่นเดียวกับที่ใช้เวลาไม่นานในการลดจำนวนมากให้เหลือขนาดที่เหมาะสมหากคุณหารซ้ำๆ มันในครึ่ง
เมื่อกราฟแยกย่อยทั้งหมดในลักษณะนี้ นักวิจัยสามารถค้นหาเส้นทางที่สั้นที่สุดผ่านทุกส่วนของกราฟได้อย่างรวดเร็ว สำหรับกระจุกแน่นที่ระดับในสุดของโครงสร้างกราฟที่ซ้อนกัน นี่เป็นเรื่องง่าย — พวกมันแทบไม่เหลือแง่ลบเลย และนักวิจัยรู้อยู่แล้วว่าจะหาเส้นทางที่สั้นที่สุดในส่วน DAG ที่เชื่อมต่อกันได้อย่างไร
สุดท้าย อัลกอริทึมจะเพิ่มขอบที่ถูกกำจัดโดยกระบวนการแตกร้าวกลับคืน และคำนวณผลกระทบบนเส้นทางที่สั้นที่สุด นักวิจัยได้พิสูจน์ว่ากระบวนการของพวกเขาสำหรับการลบขอบแบบสุ่มมักจะต้องการการลบเพียงไม่กี่ครั้งเพื่อกำจัดขอบ "ย้อนกลับ" ซึ่งเป็นประเภทที่จะทำให้ DAG ของพวกเขากลายเป็นกราฟที่มีวงจรขนาดใหญ่ นั่นทำให้ไม่น่าเป็นไปได้อย่างมากที่เส้นทางที่สั้นที่สุดจะผ่านส่วนย้อนกลับมากเกินไป ดังนั้นพวกเขาจึงสามารถแก้ปัญหาขั้นตอนสุดท้ายที่ยุ่งยากนี้ได้โดยการรวมวิธีการแบบเรียนสองวิธีจากปี 1950: อัลกอริทึมของ Dijkstra และอัลกอริทึมแรกที่พัฒนาขึ้นสำหรับกราฟน้ำหนักเชิงลบ
“มันเป็นองค์ประกอบที่ชาญฉลาดอย่างยิ่งของแนวคิดเหล่านี้” คันนากล่าว อัลกอริทึมนี้เป็นครั้งแรกสำหรับกราฟน้ำหนักเชิงลบที่ทำงานในเวลา "ใกล้เชิงเส้น" ซึ่งหมายความว่ารันไทม์เกือบจะเป็นสัดส่วนกับเวลาที่ต้องใช้เพียงเพื่อนับขอบทั้งหมด ซึ่งเร็วที่สุดเท่าที่จะเป็นไปได้
แล้วกราฟที่มีวัฏจักรเป็นลบล่ะ ซึ่งนักวิจัยตัดสินใจที่จะเพิกเฉยในตอนเริ่มต้น? หลังจากปรับแต่งอัลกอริทึมเส้นทางที่สั้นที่สุดแล้ว พวกเขาแสดงให้เห็นว่ามันยังสามารถทำงานเป็นอัลกอริทึมที่รวดเร็วสำหรับการระบุวัฏจักรเชิงลบได้อีกด้วย แทบไม่มีกราฟใดเกินเอื้อม
เส้นทางคู่ขนาน
Bernstein นำเสนอผลงานของทีมในการประชุม Foundations of Computer Science ปี 2022 ซึ่งต้นฉบับของพวกเขาที่อธิบายอัลกอริทึมใหม่นั้นถือว่าเป็นหนึ่งในสองบทความที่ดีที่สุด เดอะ กระดาษอื่น ๆ ยังเกิดขึ้นเพื่ออธิบายอัลกอริทึมเวลาใกล้เชิงเส้นใหม่สำหรับการแก้ปัญหาที่มีมายาวนานในทฤษฎีกราฟ
อัลกอริทึมดังกล่าวพัฒนาโดย Probst Gutenberg และนักวิจัยอีก XNUMX คน แก้ไขปัญหาทั่วไปที่เรียกว่าการไหลเวียนของต้นทุนขั้นต่ำ ซึ่งมีเป้าหมายเพื่อเพิ่มประสิทธิภาพการขนส่งผ่านเส้นทางต่างๆ ขนานกัน และแต่ละขอบมีความจุสูงสุดเช่นเดียวกับต้นทุนที่เกี่ยวข้อง . ปัญหาเส้นทางที่สั้นที่สุดเป็นกรณีพิเศษของการไหลของต้นทุนขั้นต่ำ ดังนั้นอัลกอริธึมการไหลของต้นทุนขั้นต่ำแบบใหม่จึงสามารถนำมาใช้เพื่อแก้ปัญหาเส้นทางที่สั้นที่สุดโดยน้ำหนักติดลบในเวลาใกล้เคียงเชิงเส้นได้ แม้ว่าจะใช้วิธีที่แตกต่างกันโดยสิ้นเชิงก็ตาม
ทีมที่ทำงานเกี่ยวกับการไหลของต้นทุนขั้นต่ำได้พัฒนาอัลกอริธึมที่รวดเร็วสำหรับวัตถุประสงค์ทั่วไปโดยใช้การสังเคราะห์ที่ซับซ้อนของเทคนิคการเพิ่มประสิทธิภาพแบบผสมผสานและต่อเนื่องซึ่งทำให้ใช้งานได้ยากในทางปฏิบัติ อย่างน้อยก็ในปัจจุบัน อัลกอริทึม combinatorial โดย Bernstein และเพื่อนร่วมงานของเขา แม้ว่าจะถูกจำกัดเฉพาะปัญหาที่เฉพาะเจาะจงมากขึ้น
"นี่คือสิ่งที่น่าอัศจรรย์มากเกี่ยวกับบทความนี้" Probst Gutenberg กล่าว “คุณสามารถอธิบายให้นักศึกษาระดับปริญญาตรีทราบได้ และคุณยังนำไปใช้กับคอมพิวเตอร์ของคุณได้อีกด้วย”
เป็นผลให้อัลกอริทึมใหม่นี้ได้ฟื้นความสนใจในแนวทาง combinatorial เพื่อแก้ไขปัญหาอื่น ๆ ในทฤษฎีกราฟ คงต้องรอดูกันต่อไปว่าปัญหาใดที่สามารถแก้ไขได้อย่างรวดเร็วโดยใช้อัลกอริธึมเชิงผสมเพียงอย่างเดียว และปัญหาใดที่ต้องใช้เทคนิคต่อเนื่องที่พัฒนาขึ้นในช่วง 20 ปีที่ผ่านมา
“นี่เป็นคำถามเชิงปรัชญาที่ฉันพยายามทำความเข้าใจ” หนานหนองคายกล่าว “ปัญหาเส้นทางที่สั้นที่สุดนี้ให้ความหวัง”
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าถึงได้ที่นี่.
- ที่มา: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 2021
- 2022
- a
- เกี่ยวกับเรา
- ตาม
- ลงชื่อเข้าใช้
- ประสบความสำเร็จ
- ข้าม
- จริง
- วัฏจักร
- ปรับ
- เพิ่ม
- หลังจาก
- กับ
- ขั้นตอนวิธี
- อัลกอริทึม
- ทั้งหมด
- แล้ว
- เสมอ
- ทะเยอทะยาน
- โบราณ
- และ
- อื่น
- นอกเหนือ
- เข้าใกล้
- วิธีการ
- รอบ
- ที่เกี่ยวข้อง
- กลับ
- ยอดคงเหลือ
- ตาม
- เพราะ
- กลายเป็น
- ก่อน
- เริ่ม
- เชื่อ
- Bernstein
- ที่ดีที่สุด
- ระหว่าง
- เกิน
- ใหญ่
- ยืม
- สาขา
- ทำลาย
- แบ่ง
- แตก
- คำนวณ
- ที่เรียกว่า
- ความจุ
- กรณี
- กรณี
- บาง
- CIS
- ปิดหน้านี้
- อย่างใกล้ชิด
- Cluster
- ร่วมมือ
- เพื่อนร่วมงาน
- การผสมผสาน
- การรวมกัน
- อย่างไร
- การคำนวณ
- คอมพิวเตอร์
- วิทยาการคอมพิวเตอร์
- จดจ่อ
- การประชุม
- งานที่เชื่อมต่อ
- การเชื่อมต่อ
- พิจารณา
- ประกอบด้วย
- ต่อเนื่องกัน
- ราคา
- ได้
- สร้าง
- ปัจจุบัน
- ขณะนี้
- ตัด
- รอบ
- DAG
- ทศวรรษที่ผ่านมา
- ตัดสินใจ
- การตัดสินใจ
- การจัดส่ง
- บรรยาย
- ปลายทาง
- แน่นอน
- พัฒนา
- พัฒนา
- DID
- ความแตกต่าง
- ต่าง
- ยาก
- โดยตรง
- ทิศทาง
- ค้นพบ
- ระยะทาง
- ไม่
- Dont
- ลง
- คนขับรถ
- Dutch
- แต่ละ
- ได้รับ
- ง่ายดาย
- ที่ง่ายที่สุด
- ขอบ
- ผลกระทบ
- กำจัด
- ตัดออก
- เปิดการใช้งาน
- อย่างสิ้นเชิง
- เป็นหลัก
- ประมาณการ
- ประมาณการ
- แม้
- เคย
- ทุกคน
- ที่มีอยู่
- ที่มีอยู่
- ผู้เชี่ยวชาญ
- อธิบาย
- สำรวจ
- อย่างยิ่ง
- อำนวยความสะดวก
- แฟน
- FAST
- ที่เร็วที่สุด
- รัฐบาลกลาง
- สองสาม
- สุดท้าย
- ในที่สุด
- หา
- หา
- พบ
- ชื่อจริง
- ครั้งแรก
- ไหล
- กระแส
- โฟกัส
- พบ
- ฐานราก
- เสรีภาพ
- ราคาเริ่มต้นที่
- อย่างเต็มที่
- ต่อไป
- GAS
- General
- จุดประสงค์ทั่วไป
- ประเทศเยอรมัน
- ได้รับ
- กำหนด
- จะช่วยให้
- Go
- เป้าหมาย
- กราฟ
- กราฟ
- โลภ
- รับประกัน
- กูเทนเบิร์ก
- ครึ่ง
- กำมือ
- จัดการ
- ที่เกิดขึ้น
- หัวข้อ
- ช่วย
- สูงกว่า
- ความหวัง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- อย่างไรก็ตาม
- HTML
- HTTPS
- ความคิด
- แยกแยะ
- การดำเนินการ
- in
- เงินได้
- อิสระ
- เป็นรายบุคคล
- ข้อมูล
- แรงบันดาลใจ
- ตัวอย่าง
- สถาบัน
- อยากเรียนรู้
- การประดิษฐ์คิดค้น
- รวมถึง
- IT
- ซ้ำ
- ร่วม
- การร่วม
- คีย์
- ชนิด
- ทราบ
- ที่รู้จักกัน
- ใหญ่
- ที่มีขนาดใหญ่
- ชั้น
- ชีวิต
- ถูก จำกัด
- ขีด จำกัด
- การเชื่อมโยง
- ในประเทศ
- นาน
- เวลานาน
- ยาวนาน
- อีกต่อไป
- ดู
- ทำ
- ทำ
- ทำให้
- การทำ
- ลักษณะ
- หลาย
- แผนที่
- การจับคู่
- คณิตศาสตร์
- แม็กซ์
- สูงสุด
- วิธี
- ในขณะเดียวกัน
- ผสาน
- วิธีการ
- อาจ
- ทันสมัย
- เงิน
- ข้อมูลเพิ่มเติม
- ย้าย
- การย้าย
- เกือบทั้งหมด
- เชิงลบ
- เพื่อนบ้าน
- อวน
- เครือข่าย
- ใหม่
- ถัดไป
- ปม
- โหนด
- ความคิด
- จำนวน
- ตัวเลข
- ชดเชย
- ONE
- เปิด
- การดำเนินการ
- การเพิ่มประสิทธิภาพ
- เพิ่มประสิทธิภาพ
- เป็นต้นฉบับ
- ต้นตอ
- อื่นๆ
- ผลิตภัณฑ์อื่นๆ
- มิฉะนั้น
- แพคเกจ
- การจับคู่
- กระดาษ
- เอกสาร
- Parallel
- ส่วนหนึ่ง
- ส่วน
- ที่ผ่านไป
- อดีต
- เส้นทาง
- เพนซิล
- เลือก
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- จุด
- จุด
- บวก
- ความเป็นไปได้
- เป็นไปได้
- จวน
- การปฏิบัติ
- นำเสนอ
- ปัญหา
- ปัญหาที่เกิดขึ้น
- กระบวนการ
- กำไร
- มีกำไร
- ความคืบหน้า
- โครงการ
- คุณสมบัติ
- พิสูจน์แล้วว่า
- ให้
- หมดจด
- วาง
- ควอนทามากาซีน
- คำถาม
- อย่างรวดเร็ว
- อย่างรุนแรง
- สุ่ม
- อย่างรวดเร็ว
- มาถึง
- จริง
- ตระหนัก
- เหตุผล
- เหมาะสม
- เมื่อเร็ว ๆ นี้
- ลด
- สะท้อน
- ภูมิภาค
- สัมพัทธ์
- ยังคงอยู่
- ซากศพ
- ซ้ำแล้วซ้ำอีก
- ซ้ำแล้วซ้ำเล่า
- แสดง
- เป็นตัวแทนของ
- แสดงให้เห็นถึง
- ต้องการ
- จำเป็นต้องใช้
- การวิจัย
- นักวิจัย
- รับผิดชอบ
- หวงห้าม
- ผล
- ส่งผลให้
- รางวัล
- ถนน
- เส้นทาง
- วิ่ง
- วิ่ง
- มหาวิทยาลัยรัตเกอร์ส
- เสียสละ
- กล่าวว่า
- เดียวกัน
- วิทยาศาสตร์
- นักวิทยาศาสตร์
- นักวิทยาศาสตร์
- ค้นหา
- ส่วน
- ส่วน
- กลุ่ม
- ความรู้สึก
- ชุด
- ทรงตัว
- หลาย
- สั้น
- คล้ายคลึงกัน
- ง่าย
- ความง่าย
- ตั้งแต่
- เดียว
- ขนาด
- เล็ก
- So
- แก้
- การแก้
- บาง
- บางคน
- บางสิ่งบางอย่าง
- บางแห่ง
- ซับซ้อน
- แหล่ง
- แหล่งที่มา
- พิเศษ
- โดยเฉพาะ
- ความเร็ว
- สะกด
- แยก
- มาตรฐาน
- เริ่มต้น
- ข้อความที่เริ่ม
- ที่เริ่มต้น
- ขั้นตอน
- ยังคง
- เรื่องราว
- กลยุทธ์
- กระแส
- ถนน
- โครงสร้าง
- นักเรียน
- อย่างเช่น
- ฤดูร้อน
- สวิสเซอร์แลนด์
- เอา
- ใช้เวลา
- การ
- ทีม
- เทคนิค
- เทคโนโลยี
- บอก
- ตำราเรียน
- พื้นที่
- กราฟ
- ที่มา
- ของพวกเขา
- สิ่ง
- สาม
- ตลอด
- เวลา
- ไปยัง
- ร่วมกัน
- เกินไป
- หัวข้อ
- สัมผัส
- การขนส่ง
- การเดินทาง
- ปัญหา
- จริง
- กลับ
- หัน
- พื้นฐาน
- เข้าใจ
- มหาวิทยาลัย
- การปรับปรุง
- ใช้
- วันหยุด
- จวน
- อยาก
- น้ำดื่ม
- webp
- น้ำหนัก
- อะไร
- ว่า
- ที่
- WHO
- ภายใน
- ไม่มี
- งาน
- การทำงาน
- โรงงาน
- จะ
- ปี
- คุณ
- ของคุณ
- ลมทะเล
- ซูริค