กลับไปหน้าบทความ

อ่าน 7 นาที

อัลกอริทึมของคาร์มาร์การ์

การเขียนโปรแกรมเชิงเส้น/อัลกอริธึมและวิธีการเพิ่มประสิทธิภาพ/กฎหมายสิทธิบัตรซอฟต์แวร์

อัลกอริทึมของคาร์มาร์การ์เป็นอัลกอริทึม ที่ นเรนทรา คาร์มาร์การ์คิดค้นขึ้นในปี 1984 เพื่อแก้ปัญหาการเขียนโปรแกรมเชิงเส้น เป็น...

อัลกอริทึมของคาร์มาร์การ์

อัลกอริทึมของคาร์มาร์การ์เป็นอัลกอริทึม ที่ นเรนทรา คาร์มาร์การ์คิดค้นขึ้นในปี 1984 เพื่อแก้ปัญหาการเขียนโปรแกรมเชิงเส้น เป็น อัลกอริทึมแรกที่มีประสิทธิภาพพอสมควรที่สามารถแก้ปัญหาเหล่านี้ได้ใน เวลาพหุนามวิธีการวงรีก็ใช้เวลาพหุนามเช่นกัน แต่พิสูจน์แล้วว่าไม่มีประสิทธิภาพในทางปฏิบัติ

โดยกำหนดให้เป็นจำนวนตัวแปรmเป็นจำนวนข้อจำกัดความไม่เท่าเทียมกัน และเป็นจำนวนบิตของอินพุตไปยังอัลกอริทึม อัลกอริทึมของ Karmarkar ต้องการการดำเนินการกับตัวเลขหลัก n เมื่อเทียบกับการดำเนินการดังกล่าวสำหรับอัลกอริทึมทรงรี[ 1 ]ในปัญหา "สี่เหลี่ยม" เมื่อmอยู่ใน O( n ) อัลกอริทึมของ Karmarkar ต้องการการดำเนินการกับตัวเลขหลัก n เมื่อเทียบกับการดำเนินการดังกล่าวสำหรับอัลกอริทึมทรงรี ดังนั้นเวลาการทำงานของอัลกอริทึมของ Karmarkar จึง ใช้การคูณแบบ FFT (ดูสัญกรณ์ Big O )

อัลกอริทึมของ Karmarkar จัดอยู่ในกลุ่มของวิธีการจุดภายใน : การคาดเดาปัจจุบันสำหรับคำตอบไม่ได้ติดตามขอบเขตของเซตที่เป็นไปได้เหมือนในวิธีการซิมเพล็กซ์แต่เคลื่อนที่ผ่านภายในของพื้นที่ที่เป็นไปได้ ปรับปรุงการประมาณคำตอบที่เหมาะสมที่สุดด้วยเศษส่วนที่แน่นอนในแต่ละรอบการทำซ้ำ และลู่เข้าสู่คำตอบที่เหมาะสมที่สุดด้วยข้อมูลเชิงตรรกะ[ 2 ]

อัลกอริทึม

พิจารณาปัญหาการเขียนโปรแกรมเชิงเส้นในรูปแบบเมทริกซ์:

เพิ่มค่า c T xให้สูงสุด
ขึ้นอยู่กับ Axb .

อัลกอริทึมของ Karmarkar กำหนดทิศทางที่เป็นไปได้ถัดไปสู่ความเหมาะสมที่สุดและปรับขนาดกลับด้วยปัจจัย0 < γ ≤ 1มีการอธิบายไว้ในแหล่งข้อมูลหลายแหล่ง[ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] Karmarkar ยังได้ขยายวิธีการ[ 9 ] [ 10 ] [ 11 ] [ 12 ]เพื่อแก้ปัญหาที่มีข้อจำกัดจำนวนเต็มและปัญหาที่ไม่นูน[ 13 ]

อัลกอริทึมการปรับขนาดเชิงเส้น 

เนื่องจากอัลกอริทึมจริงค่อนข้างซับซ้อน นักวิจัยจึงมองหาเวอร์ชันที่เข้าใจง่ายกว่า และในปี 1985 ได้พัฒนาaffine scalingซึ่งเป็นเวอร์ชันของอัลกอริทึมของ Karmarkar ที่ใช้การแปลงแบบ affineในขณะที่ Karmarkar ใช้ การแปลง แบบ projectiveเพียงสี่ปีต่อมาจึงได้ตระหนักว่าพวกเขาได้ค้นพบอัลกอริทึมที่ นักคณิตศาสตร์ ชาวโซเวียต II Dikin ตีพิมพ์ในปี 1967 อีกครั้ง[ 14 ]วิธีการ affine-scaling สามารถอธิบายได้อย่างกระชับดังนี้[ 15 ]แม้ว่าจะใช้ได้กับปัญหาขนาดเล็ก แต่ก็ไม่ใช่อัลกอริทึมเวลาพหุนาม[ 14 ]

อินพุต: A, b, c, , เกณฑ์การหยุด , γ . 
ทำซ้ำในขณะที่เงื่อนไขการหยุดไม่เป็นไปตามที่กำหนดหากเป็นเช่นนั้นให้ส่งคืนค่าที่ไม่มี  ขอบเขต จบการทำซ้ำ
  • "←" หมายถึงการกำหนดค่าตัวอย่างเช่น " largestitem " หมายความว่าค่าของlargestเปลี่ยนไปเป็นค่าของitem
  • " return " จะยุติการทำงานของอัลกอริทึมและส่งค่าต่อไปนี้ออกมา

ตัวอย่าง

ตัวอย่างวิธีแก้ปัญหา

พิจารณาโปรแกรมเชิงเส้น นี้ นั่นคือ มีตัวแปร 2 ตัวและข้อจำกัด 11 ข้อที่เกี่ยวข้องกับค่าต่างๆ ของรูปนี้แสดงการวนซ้ำแต่ละครั้งของอัลกอริทึมด้วยจุดวงกลมสีแดง ข้อจำกัดแสดงด้วยเส้นสีน้ำเงิน

ข้อพิพาทเรื่องสิทธิบัตร

ในขณะที่เขาคิดค้นอัลกอริทึมนั้น Karmarkar ทำงานให้กับIBMในตำแหน่งนักวิจัยหลังปริญญาเอกที่ห้องปฏิบัติการวิจัย IBM San Joseในแคลิฟอร์เนีย เมื่อวันที่ 11 สิงหาคม 1983 เขาได้บรรยายในสัมมนาที่มหาวิทยาลัยสแตนฟอร์ดเพื่ออธิบายอัลกอริทึม โดยยังคงระบุสังกัดของเขาเป็น IBM อยู่ ในฤดูใบไม้ร่วงปี 1983 Karmarkar เริ่มทำงานที่AT&Tและส่งบทความของเขาไปยังงานประชุมวิชาการ ACM Symposium on Theory of Computing (STOC ซึ่งจัดขึ้นระหว่างวันที่ 30 เมษายน - 2 พฤษภาคม 1984) ประจำปี 1984 โดยระบุว่าสังกัดของเขาคือAT&T Bell Laboratories [ 16 ]หลังจากนำอัลกอริทึมไปใช้ในการเพิ่มประสิทธิภาพเครือข่ายโทรศัพท์ของ AT&T [ 17 ]พวกเขาก็ตระหนักว่าสิ่งประดิษฐ์ของเขาสามารถมีความสำคัญในทางปฏิบัติได้ ในเดือนเมษายน 1985 AT&T จึงยื่นขอจดสิทธิบัตรอัลกอริทึมของเขาทันที

สิทธิบัตรดังกล่าวกลายเป็นเชื้อเพลิงเพิ่มเติมให้กับข้อโต้แย้งที่กำลังดำเนินอยู่เกี่ยวกับประเด็นสิทธิบัตรซอฟต์แวร์ [ 18 ] สิ่ง นี้ทำให้บรรดานักคณิตศาสตร์หลายคนรู้สึกไม่สบายใจ เช่นโรนัลด์ ริเวสต์ (ซึ่งเป็นหนึ่งในผู้ถือสิทธิบัตรของ อัลกอริทึม RSA ) ผู้ซึ่งแสดงความคิดเห็นว่าการวิจัยดำเนินไปบนพื้นฐานที่ว่าอัลกอริทึมควรเป็นอิสระ แม้กระทั่งก่อนที่สิทธิบัตรจะได้รับการอนุมัติจริง ก็มีการโต้แย้งว่าอาจมีงานวิจัยก่อนหน้าที่สามารถนำไปใช้ได้[ 19 ]นักคณิตศาสตร์ที่เชี่ยวชาญด้านการวิเคราะห์เชิงตัวเลขรวมถึงฟิลิป กิลล์และคนอื่นๆ อ้างว่าอัลกอริทึมของคาร์มาร์การ์เทียบเท่ากับวิธีการกั้นแบบนิวตันที่ฉายภาพด้วยฟังก์ชันกั้นแบบ ลอการิทึม หากเลือกพารามิเตอร์อย่างเหมาะสม[ 20 ] นักวิชาการด้านกฎหมาย แอนดรูว์ ชิน แสดงความคิดเห็นว่าข้อโต้แย้งของกิลล์มีข้อบกพร่อง เนื่องจากวิธีการที่พวกเขาอธิบายนั้นไม่ถือเป็น "อัลกอริทึม" เพราะต้องมีการเลือกพารามิเตอร์ที่ไม่เป็นไปตามตรรกะภายในของวิธีการ แต่ต้องอาศัยคำแนะนำจากภายนอก โดยพื้นฐานแล้วมาจากอัลกอริทึมของคาร์มาร์การ์[ 21 ]ยิ่งไปกว่านั้น ผลงานของ Karmarkar ถือว่าไม่ชัดเจนนักเมื่อพิจารณาจากผลงานก่อนหน้าทั้งหมด รวมถึง Fiacco-McCormick, Gill และคนอื่นๆ ที่ Saltzman อ้างถึง[ 21 ] [ 22 ] [ 23 ] สิทธิบัตรนี้ได้รับการอนุมัติเพื่อเป็นการยอมรับถึงความริเริ่มสร้างสรรค์ที่สำคัญของผลงานของ Karmarkar โดยเป็นสิทธิบัตรของสหรัฐอเมริกาหมายเลข 4,744,028 : "วิธีการและอุปกรณ์สำหรับการจัดสรรทรัพยากรอย่างมีประสิทธิภาพ" ในเดือนพฤษภาคม พ.ศ. 2531

AT&T ออกแบบ ระบบคอมพิวเตอร์ มัลติโปรเซสเซอร์เวกเตอร์ โดยเฉพาะเพื่อใช้งานอัลกอริทึมของ Karmarkar โดยเรียกการผสมผสานระหว่างฮาร์ดแวร์และซอฟต์แวร์ที่ได้นี้ว่า KORBX [ 24 ]และวางตลาดระบบนี้ในราคา 8.9 ล้านดอลลาร์สหรัฐ[ 25 ] [ 26 ]ลูกค้ารายแรกคือเพนตากอน[ 27 ] [ 28 ]

ผู้คัดค้านสิทธิบัตรซอฟต์แวร์ยังโต้แย้งเพิ่มเติมว่าสิทธิบัตรดังกล่าวทำลายวงจรปฏิสัมพันธ์เชิงบวกที่เคยเป็นลักษณะเฉพาะของความสัมพันธ์ระหว่างนักวิจัยในการเขียนโปรแกรมเชิงเส้นและอุตสาหกรรม และโดยเฉพาะอย่างยิ่งทำให้คาร์มาร์การ์ถูกแยกออกจากเครือข่ายนักวิจัยทางคณิตศาสตร์ในสาขาของเขา[ 29 ]

สิทธิบัตรดังกล่าวหมดอายุในเดือนเมษายน พ.ศ. 2549 และปัจจุบันอัลกอริทึมนี้เป็นสาธารณสมบัติแล้ว

ศาลฎีกาสหรัฐอเมริกาได้ตัดสินว่าคณิตศาสตร์ไม่สามารถจดสิทธิบัตรได้ในคดีGottschalk v. Benson [ 30 ]ในคดีนั้น ศาลได้พิจารณาก่อนว่าอัลกอริทึมคอมพิวเตอร์สามารถจดสิทธิบัตรได้หรือไม่ และได้ตัดสินว่าไม่สามารถจดสิทธิบัตรได้ เนื่องจากระบบสิทธิบัตรไม่ได้คุ้มครองแนวคิดและนามธรรมที่คล้ายคลึงกัน ในคดีDiamond v. Diehr [ 31 ]ศาลฎีกาได้กล่าวว่า "สูตรทางคณิตศาสตร์นั้นไม่ได้รับการคุ้มครองตามกฎหมายสิทธิบัตรของเรา และหลักการนี้ไม่สามารถหลีกเลี่ยงได้โดยการพยายามจำกัดการใช้สูตรให้อยู่ในสภาพแวดล้อมทางเทคโนโลยีเฉพาะ[ 32 ]ในคดี Mayo Collaborative Services v. Prometheus Labs., Inc. [ 33 ] ศาลฎีกาได้อธิบายเพิ่มเติมว่า "การนำหลักการทางคณิตศาสตร์ไปใช้กับเครื่องจักรทางกายภาพ เช่น คอมพิวเตอร์ ไม่ใช่การประยุกต์ใช้หลักการนั้นที่สามารถจดสิทธิบัตรได้" [ 34 ]

แอปพลิเคชัน

อัลกอริทึมของ Karmarkar ถูกใช้โดยกองทัพสหรัฐฯ สำหรับการวางแผนด้านโลจิสติกส์ในช่วงสงครามอ่าว [ 1 ]

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Karmarkar%27s_algorithm&oldid=1301578148 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อัลกอริทึมของคาร์มาร์การ์

อัลกอริทึมของคาร์มาร์การ์เป็นอัลกอริทึม ที่ นเรนทรา คาร์มาร์การ์คิดค้นขึ้นในปี 1984 เพื่อแก้ปัญหาการเขียนโปรแกรมเชิงเส้น เป็น...

อัลกอริทึม

พิจารณาปัญหาการเขียนโปรแกรมเชิงเส้นในรูปแบบเมทริกซ์:

ตัวอย่าง

พิจารณาโปรแกรมเชิงเส้น นี้ นั่นคือ มีตัวแปร 2 ตัวและข้อจำกัด 11 ข้อที่เกี่ยวข้องกับค่าต่างๆ ของรูปนี้แสดงการวนซ้ำแต่ละครั้งของอัลกอริทึมด้วยจุดวงกลมสีแดง ข้อจำกัดแสดงด้วยเส้นสีน้ำเงิน เพิ่มสูงสุด x 1 + x 2 ขึ้นอยู่กับ 2 พี x 1 + x 2 ≤ พี 2 + 1 , พี = 0.0 , 0.

ข้อพิพาทเรื่องสิทธิบัตร

ในขณะที่เขาคิดค้นอัลกอริทึมนั้น Karmarkar ทำงานให้กับ IBM ในตำแหน่งนักวิจัยหลังปริญญาเอกที่ ห้องปฏิบัติการวิจัย IBM San Jose ในแคลิฟอร์เนีย เมื่อวันที่ 11 สิงหาคม 1983 เขาได้บรรยายในสัมมนาที่ มหาวิทยาลัยสแตนฟอร์ด เพื่ออธิบายอัลกอริทึม...