ฉันไม่เคยได้ยินเกี่ยวกับการเขียนโปรแกรมเชิงเรขาคณิตจนกระทั่งคำถามนี้ นี่คือรายงานการตรวจสอบของ Stephen Boyd, et al (Vandenberghe เป็นผู้เขียนร่วมด้วย) ซึ่งเป็นการสอนเกี่ยวกับการเขียนโปรแกรมเชิงเรขาคณิต
โปรแกรมทางเรขาคณิตตามที่แสดงไว้ในตอนแรกไม่ใช่แบบนูน ยกตัวอย่างเช่นเป็นคำสั่งบวกและไม่ใช่นูนดังนั้นโปรแกรมเชิงเรขาคณิตจึงไม่ใช่เซตย่อยที่เข้มงวดของการเขียนโปรแกรมนูนx1/2
ข้อดีของการแปลงโปรแกรมเรขาคณิตเป็นโปรแกรมนูนคือโปรแกรมเรขาคณิตดั้งเดิมไม่จำเป็นต้องนูน หากคุณแก้ไขโปรแกรมเรขาคณิตเป็นโปรแกรมที่ไม่เชิงเส้น (NLP) คุณจะต้องใช้วิธีการจากการปรับให้เหมาะสมแบบไม่ต้องนูนเพื่อรับประกันโซลูชันที่เหมาะสมที่สุดระดับโลก วิธีการเหล่านี้มีราคาแพงกว่าวิธีการปรับให้เหมาะสมที่สุดต้องใช้การปรับอัลกอริทึมมากขึ้นและต้องมีการคาดเดาเริ่มต้น
ยิ่งกว่านั้นหากคุณใช้อัลกอริทึมจาก NLP ที่ไม่นูนคุณจะต้องระบุชุดที่เป็นไปได้ของคุณเป็นชุดคอมแพ็คใน ; ในโปรแกรมรูปทรงเรขาคณิตเป็นข้อ จำกัด ที่ถูกต้องRnx>0
ไม่ชัดเจนว่าชุดของโปรแกรมทางเรขาคณิตแมป (ผ่านการแปลงเลขชี้กำลังเป็นเลขชี้กำลัง) ไปยังชุดของโปรแกรมนูนที่แก้ปัญหาได้อย่างมีประสิทธิภาพโดยเฉพาะ ฉันไม่เห็นข้อได้เปรียบใด ๆ ในการเขียนโปรแกรมเชิงเรขาคณิตนอกเหนือจากการแปลงเป็นโปรแกรมนูน
สำหรับคำถามสุดท้ายของคุณฉันไม่คิดว่าชุดโปรแกรมทางเรขาคณิตนั้นเป็นแบบ isomorphic กับชุดโปรแกรมนูนดังนั้นฉันสงสัยว่ามีโปรแกรมนูนที่ไม่สามารถแสดงเป็นโปรแกรมเรขาคณิตและโปรแกรมเหล่านี้ฉันสงสัยว่ามี เป็นบางอย่างที่ไม่สามารถประมาณได้ดีพอสมควรโดยโปรแกรมทางเรขาคณิต อย่างไรก็ตามฉันไม่มีหลักฐานหรือตัวอย่าง