**ขั้นตอนวิธีของคริสโตไฟด์** (อังกฤษ: Christofides algorithm) ตั้งชื่อตาม นิคอส คริสโตฟิลด์ เป็นขั้นตอนวิธีในการแก้ปัญหาบางกลุ่มของปัญหาการเดินทางของพนักงานขาย ที่มีเส้นเชื่อมถ่วงน้ำหนักเป็นไปตามความไม่เสมอภาคของสามเหลี่ยม ซึ่งได้คำตอบที่มีอัตราส่วนการประมาณ เป็น 1.5 เท่าของคำตอบดีที่สุด

รหัสเทียม
---------

ให้ {\displaystyle G=(V,w)} เป็นตัวแทนของปัญหาการเดินทางของพนักงานขาย, {\displaystyle G} เป็น กราฟบริบูรณ์ บนเซตของจุดยอด {\displaystyle V} ซึ่งมี {\displaystyle w} เป็นฟังก์ชันของน้ำหนักที่ไม่มีน้ำหนักติดลบในทุกๆเส้นเชื่อมบน {\displaystyle G}
ขั้นตอนที่ 1: สร้าง ต้นไม้ทอดข้ามที่น้อยที่สุด {\displaystyle T} จาก {\displaystyle G}

ขั้นตอนที่ 2: ให้ {\displaystyle O} เป็นเซตของจุดยอดที่มี ระดับขั้น เป็นจำนวนคี่ ใน {\displaystyle T} และหา การจับคู่สมบูรณ์ {\displaystyle M} ซึ่งมีน้ำหนักน้อยที่สุดใน กราฟบริบูรณ์ บนจุดยอดใน {\displaystyle O}

ขั้นตอนที่ 3: รวมเส้นเชื่อมของ {\displaystyle M} และ {\displaystyle T} เป็น มัลติกราฟ {\displaystyle H}

ขั้นตอนที่ 4: สร้างวงจรออยเลอร์ ใน {\displaystyle H}

ขั้นตอนที่ 5: สร้างวงจรแฮมิลตัน จากขึั้นตอนที่แล้วโดยข้ามจุดยอดที่เยี่ยมชมแล้วออกไป (*shortcutting*)

อัตราส่วนการประมาณ
------------------

ผลลัพธ์ของขั้นตอนวิธีนี้มีค่าเป็น 1.5 เท่าของของคำตอบดีที่สุด

พิสูจน์ได้ดังนี้:

ให้ {\displaystyle A} แทนเซตของเส้นเชื่อมของคำตอบดีสุดของปัญหาการเดินทางของพนักงานขาย สำหรับ{\displaystyle G}, เนื่องจาก{\displaystyle (V,A)} เชื่อมต่อกันบริบูรณ์ จึงมีต้นไม้ทอดข้ามแน่ๆ ดังนั้น {\displaystyle w(A)\geq w(T)}

ให้ B แทนเซตของเส้นเชื่อมของคำตอบดีสุดของปัญหาการเดินทางของพนักงานขาย สำหรับกราฟบริบูรณ์ที่ใช้จุดยอดจาก {\displaystyle O}, เนื่องจากน้ำหนักของเส้นเชื่อมเป็นรูปสามเหลี่ยม ไม่ว่าจะเยี่ยมชมจุดยอดเพิ่มก็ไม่ทำให้น้ำหนักลดลง (ตามสมบัติความไม่เสมอภาคของสามเหลี่ยม) ทำให้เรารู้ว่า {\displaystyle w(A)\geq w(B)}

เราแสดงให้เห็นว่ามีการจับคู่ที่สมบูรณ์แบบของจุดยอดจาก{\displaystyle O} ที่มีน้ำหนักต่ำกว่า {\displaystyle w(B)/2\leq w(A)/2} ซึ่งมีขอบบนเหมือนกันกับ {\displaystyle M} ( {\displaystyle M} เป็นการจับคู่สมบูรณ์ที่มีน้ำหนักน้อยที่สุด), เนื่องจาก {\displaystyle O} จะมีจำนวนจุดยอดเป็นเลขคู่ จึงมีการจับคู่สมบูรณ์แน่ๆ

ให้ {\displaystyle e\_{1},\ldots ,e\_{2k}} เป็นวิถีออยเลอร์ใน {\displaystyle (O,B)} แน่นอนว่า {\displaystyle \{e\_{1},e\_{3},\ldots ,e\_{2k-1}\}} และ {\displaystyle \{e\_{2},e\_{4},\ldots ,e\_{2k}\}} เป็นการจับคู่สมบูรณ์ และ มีเส้นเชื่อมในการจับคู่สมบูรณ์นี้ อย่างน้อยหนึ่งอันที่น้ำหนักน้อยกว่าหรือเท่ากับ {\displaystyle w(B)/2}

ดังนั้น จาก {\displaystyle w(M)+w(T)\leq w(A)+w(A)/2} และคุณสมบัติความไม่เสมอภาคของสามเหลี่ยม ทำให้ทราบว่าขั้นตอนวิธีนี้มีอัตราส่วนการประมาณ เป็น 1.5

ปัญหาอื่นๆที่เกี่ยวข้อง
-----------------------

* ขั้นตอนวิธีเพื่อนบ้านใกล้สุด
* ลิน-เคอนิกฮัน ฮิวริสติก
* การแก้ปัญหาการเดินทางของพนักงานขายแบบคันคอด

สรุป
----

เนื่องจากปัญหาการเดินทางของพนักงานขายอยู่ในกลุ่มปัญหาเอ็นพีบริบูรณ์ ซึ่งการจะหาคำตอบนั้นทำได้ยาก เราจึงมักใช้ขั้นตอนวิธีการประมาณในการประมาณคำตอบแทน และขั้นตอนวิธีของคริสโตไฟด์ ก็เป็นแนวทางหนึ่ง โดยมีเงื่อนไขว่าเส้นเชื่อมในกราฟนั้นจะเป็นไปตามความไม่เสมอภาคของสามเหลี่ยม ซึ่งเปรียบได้กับเมืองบนโลกจริงที่ถ้าหากมีเส้นทางจาก {\displaystyle A} ไป B และจาก B ไป {\displaystyle C} แล้ว จะมีเส้นทางจาก {\displaystyle A} ไป {\displaystyle C} ซึ่งไม่ยาวกว่าเส้นทางจาก {\displaystyle A} ไป B บวกกับเส้นทางจาก B ไป {\displaystyle C} แน่ๆ (ทางจาก {\displaystyle A} ไป {\displaystyle C} เปรียบได้กับทางลัด) ด้วยข้อกำหนดนี้ในการทำขั้นตอนที่ 2 และ 3 จะเป็นการเพิ่มเส้นเชื่อมที่จำเป็นในการหาวงจรออยเลอร์เข้าไปในกราฟ และขึ้นตอนที่ 5 ก็คือการเลือกเดินทางลัดนั่นเอง ซึ่งผลของขั้นตอนวิธีนี้ รับประกันได้ว่า ไม่แย่ไปกว่า 1.5 เท่าของคำตอบที่ดีที่สุด

บันทึก
------

* ความไม่เสมอภาคของสามเหลี่ยม คือผลบวกของด้านสั้นสองด้านของสามเหลี่ยมใดๆ ไม่มีทางสั้นกว่าด้านยาวของสามเหลี่ยมนั้นๆ

อ้างอิง
-------

* Approximation Algorithms
* Christofides's 3/2 Approximation for Matric TSP
* CHRISTOFIDES’ HEURISTIC
* NIST Christofides Algorithm Definition
* Nicos Christofides, Worst-case analysis of a new heuristic for the travelling salesman problem, Report 388, Graduate School of Industrial Administration, CMU, 1976.