Изменить программу под другой метод поиска - Prolog

Узнай цену своей работы

Формулировка задачи:

Добрый день, помогите пожалуйста изменить на метод Поиска в глубину.

Решение задачи: «Изменить программу под другой метод поиска»

textual
Листинг программы
domains
str=string.
int=integer.
intlist=integer*.
predicates
nondeterm rule(int,str,str,intlist).
nondeterm complete(int).
nondeterm recognition(str).
nondeterm discover(intlist).
nondeterm ask(int).
facts
fact(int,str).
clauses
 
 
 
ask(X):-fact(X,"y"),!.
ask(X):-fact(X,"n"),!,fail.
 
ask(1):-write("Заражает компьютер ?"),!,complete(1).
ask(2):-write("Распространяется людьми?"),!,complete(2).
ask(3):-write("Совершает звонки на платные номера?"),!,complete(3).
ask(4):-write("Осуществляет доступ к файловой системе?"),!,complete(4).
ask(5):-write("Внедряется в существующие файлы?"),!,complete(5).
ask(6):-write("Отправляет СМС-сообщения на платные номера?"),!,complete(6).
ask(7):-write("Создан группой хакеров Культ дохлой коровы?"),!,complete(7).
ask(8):-write("Используют сетевые протоколы?"),!,complete(8).
ask(9):-write("Самораспространяется по СМС-сообщениям?"),!,complete(9).
ask(10):-write("Приносит доход владельцам порносайтов?"),!,complete(10).
ask(11):-write("Данные жертвы хранятся во временной файле?"),!,complete(11).
ask(12):-write("Записывают свои копии в архивы?"),!,complete(12).
ask(13):-write("Использует уязвимости и ошибки администрирования?"),!,complete(13).
ask(14):-write("Пересылает входящие СМС-сообщения?"),!,complete(14).
ask(15):-write("Располагается в каталоге Windows?"),!,complete(15).
 
rule(1,"вирус","BackOrifice",[1,2,4,7]).
rule(2,"вирус","Pinch",[1,2,4,11]).
rule(3,"вирус","NetBus",[1,2,4]).
rule(4,"вирус","Trojan.Winlock",[1,2]).
rule(5,"вирус","Virus.Win9x.CIH",[1,5]).
rule(6,"вирус","WinStart",[1,8,12,15]).
rule(7,"вирус","AdjVirus",[1,8,12]).
rule(8,"вирус","Worm.Info",[1,8]).
rule(9,"вирус","Conficker",[1,13]).
rule(10,"вирус","VBS.LoveLetter",[1]).
rule(11,"вирус","Trojan.WinCE.Terdial.a",[3]).
rule(12,"вирус","Worm.SymbOS.Yxe",[6,9]).
rule(13,"вирус","Trojan_Spy.SymbOS.Zbot",[6,14]).
rule(14,"вирус","Trojan_SMSWinCE.Sejweek",[6]).
rule(15,"вирус","Trojan-SMS.Android.FakePlayer",[10]).
rule(15,"вирус","Net-Worm.IphoneOS.lke.b",[]).
 
 
recognition(X):- rule(N, X, Y, Z), discover(Z), !,
write("       это более всего похоже на ", X, " - ", Y, " (правило ", N,")"), nl,
recognition(Y).
recognition("сеть"):- write("Система не имеет данных, этот вирус системе не известен"),nl,!.
recognition(_).
 
discover([]).
discover([X|Y]):- ask(X), discover(Y).
 
complete(X):- nl, readln(Y), assert(fact(X, Y)), Y="y".
 
goal
retractall(_), recognition("вирус").

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы