Задание. Для предметной области (тема: “Как правильно распорядиться заработанными средствами в зависимости от дохода, имеющейся собственности и социального статуса”) сформировать базу знаний, соответствующую следующим требованиям:
§ включать не менее 12 правил, из которых не менее 7- сложные правила;
§ для описания правил использовать не менее 8 переменных;
§ для обратной цепочки рассуждений должны быть логически выведены не менее 4 переменных, прежде чем будет определена переменная вывода;
§ пару последовательных правил.
Отчет должен содержать:
1. перечисление переменных, их описание и принимаемые ими возможные значения;
2. правила, составляющие базу знаний.
Правило 1: Если зарплата не превышает прожиточный минимум, то нет возможности приобрести акции.
Правило 2: Если зарплата не превышает прожиточный минимум, то нет возможности накопить материальные ценности.
Правило 3: Если зарплата превышает прожиточный минимум на величину менее чем стоимость акций, то нет возможности приобрести акции.
Правило 4: Если зарплата превышает прожиточный минимум на величину большую, чем стоимость акций, то есть возможность приобрести акции.
Правило 5: Если зарплата (доход) превышает прожиточный минимум, но нет возможности приобрести акции, то есть возможность накопить ценности.
Правило 6: Если инфляция в пределах от 5% до 20% и есть возможность приобрести акции, то рекомендуется приобрести акции компаний.
Правило 7:Если инфляция менее 5% и имеется возможность накопить ценности или купить акции, то рекомендуется положить деньги в банк.
Правило 8: Если общая сумма имеющихся средств больше стоимости акций и имеется возможность накопить материальные средства, то есть возможность продать часть имущества.
Правило 9: Если сумма имеющихся средств меньше стоимости акций или нет возможности накапливать материальные ценности, то и нет возможности продать часть имущества.
Правило 10: Если зарплата (доход) не превышает прожиточного минимума, то рекомендуется сменить место работы.
Правило 11: Если инфляция больше 20% и есть возможность продать имущество, то рекомендуется купить акции, продав имущество.
Правило 12: Если нет возможности продать имущество, но есть возможность накопить материальные ценности, то рекомендуется приобрести дополнительно материальные ценности.
Определим переменные, входящие в правила:
Zr |
– |
зарплата (доход); |
Nd |
– |
необходимый прожиточный минимум (уровень); |
StAk |
– |
стоимость акций компаний (минимальная или средняя); |
VAk |
– |
возможность приобрести акции:VAk принимает значения истина или ложь; |
Vcn |
– |
возможность накопить (приобрести) материальные ценности (Vcn принимает значения истина или ложь); |
Inf |
– |
уровень инфляции; |
SumO |
– |
общая сумма имеющихся средств; |
VPImu |
– |
возможность продать часть имущества(VPImuпринимает значения истина или ложь) |
Rec |
– |
рекомендация, как распорядиться полученным доходом, переменная принимает текстовые значения. |
DOMAINS
фио, дата, совет, объект_приобретения, возможность = string
зарплата, сумма, инфляция, стоимость, прож_мин = integer
FACTS
nondeterm фзарплата(фио,зарплата)
nondeterm финфляция(дата, инфляция)
nondeterm фобщая_сумма(фио, сумма)
nondeterm фстоимость_акций(дата, стоимость)
nondeterm фпрожиточный_минимум(дата, прож_мин)
nondeterm фдата(дата)
nondeterm фличность(фио)
PREDICATES
nondeterm рекомендация(фио, совет)
nondeterm возможность_приобрести(фио, объект_приобретения)
nondeterm продажа_имущества(фио, возможность)
nondeterm зарплата(фио,зарплата)
CLAUSES
фдата("2009.02.01").
фдата("2008.12.01").
%фзарплата("Коробова",1000).
фзарплата("Коротин",20000).
зарплата(Фио,Зарплата):- фзарплата(Фио,Зарплата),!.
зарплата(Фио,Зарплата):- nl, write("Уважаемый господин ",
Фио, " введите размер Вашей зарплаты или дохода "), readint(Зарплата), assertz(фзарплата(Фио,Зарплата)),nl.
финфляция("2009.02.01", 12).
финфляция("2008.12.01", 8).
фличность("Коробова").
фличность("Коротин").
фобщая_сумма("Коробова", 500000).
фобщая_сумма("Коротин", 50000000).
фстоимость_акций("2009.02.01", 10000).
фстоимость_акций("2008.12.01", 100000).
фпрожиточный_минимум("2009.02.01", 4300).
фпрожиточный_минимум("2008.12.01", 2500).
рекомендация(Фио, "Сменить место работы"):- фдата(Дата),
зарплата(Фио,Зарплата),
фпрожиточный_минимум(Дата, Прож_мин),
Зарплата < Прож_мин,!.
рекомендация(Фио, "Купить акции, продав имущество"):- фдата(Дата),
финфляция(Дата, Инфляция),
Инфляция > 20,
продажа_имущества(Фио, "Да"),!.
рекомендация(Фио, "Приобрести материальные ценности"):- продажа_имущества(Фио, "Нет"),
возможность_приобрести(Фио, "Ценности"),!.
рекомендация(Фио, "Приобрести акции компаний"):- фдата(Дата),
финфляция(Дата, Инфляция),
Инфляция >= 5,
Инфляция <= 20,
возможность_приобрести(Фио, "Акции"),!.
рекомендация(Фио, "Положить деньги в банк"):- фдата(Дата),
финфляция(Дата, Инфляция),
Инфляция < 5,
возможность_приобрести(Фио, X),!.
продажа_имущества(Фио, "Да"):- фдата(Дата), фобщая_сумма(Фио, Сумма),
фстоимость_акций(Дата, Стоимость),
Сумма > Стоимость,
возможность_приобрести(Фио, "Ценности"),!.
продажа_имущества(Фио, "Нет").
возможность_приобрести(Фио, "Акции"):- фдата(Дата),
зарплата(Фио,Зарплата),
фпрожиточный_минимум(Дата, Прож_мин),
фстоимость_акций(Дата, Стоимость), Зарплата - Прож_мин > Стоимость.
возможность_приобрести(Фио, "Ценности"):- фдата(Дата),
зарплата(Фио,Зарплата),
фпрожиточный_минимум(Дата, Прож_мин),
Зарплата > Прож_мин.
GOAL
фличность(Фио), рекомендация(Фио, Совет).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.