แรงจูงใจที่คุณระบุสำหรับการจัดการกับความไม่แน่นอนนั้นมีผลกับปัญหาที่ตัดสินใจได้ แต่ยากเช่นกัน หากคุณมีปัญหาที่ NP-hard หรือ PSPACE-hard โดยทั่วไปเราจะต้องใช้รูปแบบการประมาณ (ในความหมายกว้าง ๆ ของคำ) เพื่อค้นหาวิธีแก้ไข
มันมีประโยชน์ที่จะแยกแยะความแตกต่างของพัฒนาการต่าง ๆ
(ε,δ)
นี่คือตัวอย่างของความคิดที่แตกต่างของการประมาณ สมมติว่าคุณทำการคำนวณเช่นการคูณสองจำนวนมากและต้องการตรวจสอบว่าการคูณนั้นถูกต้องหรือไม่ มีเทคนิคฮิวริสติกจำนวนมากที่ใช้ในทางปฏิบัติเพื่อตรวจสอบความถูกต้องโดยไม่ต้องทำการคำนวณซ้ำอีกครั้ง คุณสามารถตรวจสอบว่าสัญญาณถูกคูณเพื่อให้ได้สัญญาณที่ถูกต้อง คุณสามารถตรวจสอบว่าตัวเลขมีความเท่าเทียมกันที่ถูกต้อง (แม้ / คุณสมบัติเลขคี่) คุณสามารถใช้การตรวจสอบที่ซับซ้อนยิ่งขึ้นเช่นการคัดลอกเก้า. เทคนิคเหล่านี้ทั้งหมดมีคุณสมบัติทั่วไปที่พวกเขาสามารถบอกคุณได้ว่าคุณทำผิดพลาด แต่พวกเขาไม่สามารถรับประกันได้หากคุณได้รับคำตอบที่ถูกต้อง คุณสมบัตินี้สามารถดูเป็นการประมาณแบบลอจิคัลได้เนื่องจากคุณอาจพิสูจน์ได้ว่าการคำนวณดั้งเดิมนั้นผิด แต่คุณอาจไม่สามารถพิสูจน์ได้ว่าถูกต้อง
การตรวจสอบทั้งหมดที่ฉันได้กล่าวถึงข้างต้นเป็นตัวอย่างของเทคนิคที่เรียกว่าการตีความเชิงนามธรรม การตีความนามธรรมทำให้ความคิดเกี่ยวกับการประมาณเชิงตรรกะอย่างเข้มงวดแตกต่างจากการประมาณเชิงตัวเลขและความน่าจะเป็น ปัญหาที่ฉันอธิบายด้วยการวิเคราะห์ของการคำนวณเดียวครอบคลุมถึงกรณีที่ซับซ้อนมากขึ้นของการวิเคราะห์ของโปรแกรม วรรณกรรมเกี่ยวกับการตีความที่เป็นนามธรรมได้พัฒนาเทคนิคและกรอบสำหรับการประมาณเหตุผลเชิงตรรกะเกี่ยวกับโปรแกรมและอีกไม่นานเกี่ยวกับ logics ข้อมูลอ้างอิงต่อไปนี้อาจเป็นประโยชน์
- บทคัดย่อการตีความสั้น ๆโดย Patrick Cousot ซึ่งเป็นภาพรวมอย่างง่าย
- ภาพรวมของ Abstractionโดย Patrick Cousot ซึ่งเป็นส่วนหนึ่งของหลักสูตรของเขา มีตัวอย่างที่ดีมาก ๆ ที่เป็นนามธรรมของการกำหนดคุณสมบัติของดอกจำนวนหนึ่ง การเปรียบเทียบช่อประกอบด้วยจุดคงที่และสามารถทำให้แม่นยำทางคณิตศาสตร์อย่างสมบูรณ์
- หลักสูตรการตีความนามธรรมโดย Patrick Cousot หากคุณต้องการความลึกและรายละเอียดทั้งหมด
- การตีความที่เป็นนามธรรมและการประยุกต์ใช้กับโปรแกรมเชิงตรรกะ Patrick Cousot และ Radhia Cousot, 1992 นำไปใช้กับโปรแกรมตรรกะตามคำขอของคุณ ส่วนเริ่มต้นยังดำเนินการขั้นตอนการคัดลอกเก้าออกมาอย่างเป็นทางการเพื่อการตีความเชิงนามธรรม
ทั้งหมดนี้มักจะถูกนำไปใช้กับเหตุผลเกี่ยวกับโปรแกรมคอมพิวเตอร์ มีการทำงานล่าสุดเกี่ยวกับการประยุกต์ใช้แนวคิดจากการตีความเชิงนามธรรมเพื่อศึกษาขั้นตอนการตัดสินใจสำหรับ logics การโฟกัสไม่ได้เป็นแบบโมดัลลอจิก แต่เป็นที่น่าพอใจในเชิงตรรกะเชิงประพจน์และทฤษฎีลำดับที่หนึ่งที่ไม่มีปริมาณ (เนื่องจากฉันได้ทำงานในพื้นที่นี้กระดาษด้านล่างเป็นของฉัน)
- ความเห็นโดยทั่วไปของวิธีของ Staalmarckโดย Aditya Thakur และ Thomas Reps, 2012 ให้วิธีการทั่วไปของ Staalmarck ของปัญหาในการวิเคราะห์โปรแกรม
- ผลิตภัณฑ์ลดลงของโดเมนที่เป็นนามธรรมและการรวมกันของขั้นตอนการตัดสินใจ Patrick Cousot, Radhia Cousot และ Laurent Mauborgne, 2011 บทความนี้ศึกษาเทคนิค Nelson-Oppen สำหรับการรวมขั้นตอนการตัดสินใจและแสดงให้เห็นว่ามันยังสามารถใช้สำหรับการผสมที่ไม่สมบูรณ์ เป็นสิ่งที่น่าสนใจเป็นพิเศษหากคุณมีปัญหาที่ไม่อาจตัดสินใจได้
- เครื่องมือแก้ปัญหาที่น่าพอใจคือเครื่องวิเคราะห์แบบคงที่กระดาษของฉันกับ Leopold Haller และ Daniel Kroening, 2012 ใช้มุมมองแบบโครงตาข่ายโดยประมาณเพื่อแสดงลักษณะของตัวแก้ไขที่มีอยู่ คุณสามารถดูสไลด์ของฉันในหัวข้อแทน
ตอนนี้ไม่มีเอกสารใดข้างต้นตอบคำถามเฉพาะของคุณเกี่ยวกับการโจมตีปัญหาความพึงพอใจที่ไม่สามารถตัดสินใจได้ สิ่งที่ทำในเอกสารเหล่านี้คือการมองปัญหาเชิงตรรกะโดยประมาณที่ไม่ใช่ตัวเลขหรือความน่าจะเป็น มุมมองนี้ถูกนำไปใช้อย่างกว้างขวางเพื่อเหตุผลเกี่ยวกับโปรแกรมและฉันเชื่อว่ามันอยู่ตรงกับสิ่งที่คุณถาม
เพื่อนำไปใช้กับตรรกะโมดอลฉันขอแนะนำให้จุดเริ่มต้นคือการใช้ความหมายเชิงพีชคณิตของ Jonsson และ Tarski หรือความหมายในภายหลังของ Lemmon และ Scott นี่เป็นเพราะการตีความที่เป็นนามธรรมถูกกำหนดในแง่ของโปรยและฟังก์ชั่นเสียงเดียวดังนั้นพีชคณิตแบบบูลกับผู้ประกอบการจึงเป็นความหมายที่สะดวกในการทำงาน หากคุณต้องการเริ่มต้นด้วยเฟรม Kripke คุณสามารถใช้ทฤษฎีคู่ของ Jonsson และ Tarski (ซึ่งบางคนอาจเรียกว่าเป็นหินคู่) และได้รับการเป็นตัวแทนเกี่ยวกับพีชคณิต หลังจากนั้นคุณสามารถใช้ทฤษฎีการตีความเชิงนามธรรมเพื่อการประมาณเชิงตรรกะ