Sparse Linear Programming

ให้ปัญหาของ sparse linear programming เขียนอยู่ในรูป \[ \begin{array}{ll} \left\{ \begin{array}{l} \mbox{maximize} \\ \mbox{minimize} \end{array} \right\} & f(\mathbf{x})=\mathbf{c}^T\mathbf{x} \\ \mbox{ภายใต้เงื่อนไข} & \mathbf{A}\mathbf{x} \left\{\begin{array}{c} \leqslant \\ = \\ \geqslant \end{array}\right\} \mathbf{b} \\ \mbox{และ} & \mathbf{x} \geqslant 0 \end{array} \] โดยที่
     $\mathbf{x}=\{x_1,x_2,\ldots,x_n\}$ เป็นเวกเตอร์ขนาด $n$ ของตัวแปร
     $\mathbf{c}$ เป็นเวกเตอร์ขนาด $n$ ของสัมประสิทธิ์
     $\mathbf{b}$ เป็นเวกเตอร์ขนาด $m$ ของค่าทางขวามือ
     $\mathbf{A}$ เป็นเมตริกซ์ขนาด $m\times n$
     เวกเตอร์ทั้งหมดและเมตริกซ์มีสมาชิกเป็นจำนวนจริง

แอปพลิเคชันนี้ใช้คำนวณหาค่า $\mathbf{x}$ ที่จะทำให้ฟังก์ชัน $f(\mathbf{x})$ มีค่ามากที่สุดหรือน้อยที่สุดตามที่เราต้องการ

แอปพลิเคชันนี้ต่างจาก กำหนดการเชิงเส้น ตรงที่มันสามารถแก้ปัญหาที่มี constraints เป็นเมตริกซ์ขนาดใหญ่และ sparse ได้อย่างมีประสิทธิภาพ    ขณะที่ กำหนดการเชิงเส้น ใช้สำหรับปัญหาที่มีขนาดเล็กเท่านั้น

ข้อมูลอินพุท

แอปพลิเคชันนี้ต้องใช้ข้อมูลอินพุทสองส่วน

  • ส่วนแรกจะเหมือนกันกับใน กำหนดการเชิงเส้น

  • ส่วนที่สองจะเป็น linear constraints ในรูปของ sparse matrix ขนาด $m\times(n+2)$ และเฉพาะสมาชิกที่ไม่เป็นศูนย์ของเมตริกซ์เท่านั้นที่จะนำมาใช้    โดยสมาชิกเหล่านี้จะเป็นข้อมูลอินพุทในรูป Coordinate list    โดยแถวและหลักเริ่มนับจากหนึ่งไม่ใช่ศูนย์    sparse matrix นี้เก็บ $\mathbf{A}$ ไว้ใน $n$ หลักแรก    สมาชิกจาก $\{-1,0,1\}$ ในหลักที่ $n+1$    และ $\mathbf{b}$ ในหลักสุดท้าย

ยกตัวอย่างเช่น linear constraints จาก กำหนดการเชิงเส้น จะมีข้อมูลในรูปของ sparse matrix ดังนี้

 1   1   1
 1   2   1
 1   3  -1
 1   5   1
 2   1  -2
 2   2   1
 2   3   2
 2   4   1
 2   5  -5
 3   1   1
 3   2  -1
 3   4  -1
 3   5   4
 4   2   1
 4   3   1
 4   4  -1
 4   5   5
จะสังเกตว่า 0 สามตัวนั้นไม่มีในข้อมูลนี้

คำนวณคำตอบของ sparse linear programming