मुझे यह कहकर शुरू करना है कि इस प्रश्न का उत्तर एआई जादूगरों द्वारा बिना किसी प्रस्ताव के अनुभव के उत्तर दिया जा सकता है।मिनिमैक्स "आर्टिफिशियल इंटेलिजेंस के लिए प्रोलॉग प्रोग्रामिंग" में कार्यान्वित करें - min_to_move/1 और max_to_move/1 क्या हैं?
उत्कृष्ट Prolog Programming for Artificial Intelligence किताब यह काफी संक्षिप्त और चालाक अल्पमहिष्ठ कार्यान्वयन है:
minimax(Pos, BestSucc, Val) :-
moves(Pos, PosList), !, % Legal moves in Pos produce PosList
best(PosList, BestSucc, Val)
;
staticval(Pos, Val). % Pos has no successors: evaluate statically
best([ Pos], Pos, Val) :-
minimax(Pos, _, Val), !.
best([Pos1 | PosList], BestPos, BestVal) :-
minimax(Pos1, _, Val1),
best(PosList, Pos2, Val2),
betterof(Pos1, Val1, Pos2, Val2, BestPos, BestVal).
betterof(Pos0, Val0, Pos1, Val1, Pos0, Val0) :- % Pos0 better than Pos1
min_to_move(Pos0), % MIN to move in Pos0
Val0 > Val1, ! % MAX prefers the greater value
;
max_to_move(Pos0), % MAX to move in Pos0
Val0 < Val1, !. % MIN prefers the lesser value
betterof(Pos0, Val0, Pos1, Val1, Pos1, Val1). % Otherwise Pos1 better than Pos0
हालांकि, लेखक नहीं यह वर्णन करने में ज्यादा लंबाई करने के लिए चले गए और मुझे आश्चर्य है कि क्या min_to_move/1
और max_to_move/1
हैं छोड़ दिया हूँ ।
क्या कोई मुझे इन्हें समझा सकता है?
अग्रिम धन्यवाद!