Программирование на языке Пролог для искусственного интеллекта


         

Минимаксная процедура: минимакс( Поз, ЛучшПоз,


        V( Р)  =  max V( Рi

)

                           i

если  P  -  позиция с ходом МАКС'а

        V( Р)  =  min V( Рi

)

                           i

если  Р  -  позиция с ходом МИН'а

line();

% Минимаксная процедура: минимакс( Поз, ЛучшПоз, Оц)

% Поз - позиция, Оц - ее минимаксная оценка;

% лучший ход из Поз ведет в позицию ЛучшПоз

        минимакс( Поз, ЛучшПоз, Оц) :-

                ходы( Поз, СписПоз),  !,


                                        % СписПоз - список разрешенных ходов

                лучш( СписПоз, ЛучшПоз, Оц);

                стат_оц( Поз, Оц).


                % Поз не имеет преемников

        лучш( [Поз], Поз, Оц) :-

                минимакс( Поз, _, Оц),  !.


        лучш( [Поз1 | СписПоз], ЛучшПоз, ЛучшОц) :-

                минимакс( Поз1, _, Оц1),

                лучш( СписПоз, Поз2, Оц2),

Содержание  Назад  Вперед