GSAT อัลกอริทึมส่วนใหญ่ส่งตรง: คุณได้รับสูตรในรูปแบบปกติซึ่งเชื่อมต่อกันและพลิกตัวอักษรของอนุประโยคจนกว่าคุณจะพบวิธีแก้ปัญหาที่ตรงกับสูตรหรือถึงขีด จำกัด สูงสุดของ max_tries / max_flips และไม่พบวิธีแก้ปัญหา
ฉันใช้อัลกอริทึมต่อไปนี้:
procedure GSAT(A,Max_Tries,Max_Flips)
A: is a CNF formula
for i:=1 to Max_Tries do
S <- instantiation of variables
for j:=1 to Max_Iter do
if A satisfiable by S then
return S
endif
V <- the variable whose flip yield the most important raise in the number of satisfied clauses;
S <- S with V flipped;
endfor
endfor
return the best instantiation found
end GSAT
ฉันมีปัญหาในการตีความบรรทัดต่อไปนี้:
V <- the variable whose flip yield the most important raise in the number of satisfied clauses;
จำนวนคำที่พอใจสูงสุดไม่ใช่สิ่งที่เรากำลังมองหาใช่ไหม สำหรับฉันดูเหมือนว่าเรากำลังพยายามใช้วิธีแก้ปัญหาหรือการประมาณเพื่อหาวิธีแก้ปัญหา
ฉันเคยคิดว่าจะทำสิ่งนี้ได้บ้าง แต่มันจะเป็นการดีหากได้ยินมุมมองอื่น ๆ (สมมุติว่าเมื่อตัวแปรถูกเปิดเมื่อเลือกแล้ว):
- สร้างพื้นที่รัฐด้วยการพลิกที่เป็นไปได้ทั้งหมดและค้นหาพื้นที่สำหรับตัวอักษรที่ให้ผลลัพธ์ที่ดีที่สุดในการประเมินสถานะเป้าหมาย
- เลือกตัวแปรแบบสุ่มที่ฉันจะพลิกโดยเริ่มจากตัวอักษรที่มีอยู่ทั่วไป
- เลือกตัวอักษรแบบสุ่ม