Справочник от Автор24
Поделись лекцией за скидку на Автор24

Рекомендации на языке исчисления предикатов

  • 👀 182 просмотра
  • 📌 134 загрузки
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Рекомендации на языке исчисления предикатов» docx
В качестве последнего примера использования исчисления предикатов для представления предметной области и рассуждения о ней разработаем простую систему, которую можно применять в качестве "финансового советника". Хотя пример и прост, он иллюстрирует много проблем, связанных с реальными приложениями. Задача "советника" - помочь пользователю решить, положить деньги на сберегательный счет или вложить их в акции. Некоторые инвесторы, возможно, захотят распределить свой капитал между двумя вариантами. Рекомендации отдельным инвесторам должны зависеть от их дохода и текущей накопленной суммы, т. е. удовлетворять следующим требованиям. 1. Лица с недостаточными накоплениями должны в первую очередь увеличивать сумму на счету, независимо от их дохода. 2. Лица с достаточными накоплениями и стабильным доходом должны рассматривать более рискованные, но потенциально более выгодные инвестиции. 3. Лица с недостаточно высоким доходом, но уже имеющие значительные накопления, могут захотеть рассмотреть возможность распределения их дохода между накоплениями и акциями, чтобы, с одной стороны, оградить себя от потерь при попытке увеличить доход за счет акций, а с другой, рискнуть и значительно увеличить прибыль. Соответствие между накоплением и доходом определяется числом иждивенцев, которых данное лицо должно содержать. На каждого иждивенца необходимо иметь в банке по крайней мере $5000. Достаточным считается стабильный доход, составляющий по крайней мере $15000 в год плюс $4000 на каждого иждивенца. Чтобы автоматизировать эти рекомендации, запишем их на языке исчисления предикатов. Вначале необходимо выделить главное требование, которые следует принять во внимание. Поэтому первое требование - это достаточность сбережений и дохода. Их можно представить с помощью предикатов savings_account (сберегательный счет) и income (доход) соответственно. Это унарные предикаты, параметром которых может быть значение adequate (достаточен) или inadequate (недостаточен). Таким образом, возможны следующие комбинации. savings_account(adequate). savings_account(inadequate). income(adequate). income(inadequate). Заключения представим унарным предикатом investment (инвестиции), параметр которого может принимать значения: stocks (акции), savings (сбережения) или combination (сочетание - т.е. разбиение инвестиций). Используя эти предикаты и импликацию, можно представить различные инвестиционные стратегии. Приоритетное правило, которому должны следовать лица с недостаточными средствами, - это увеличение сбережений на счету. Его можно записать так. savings_account(inadequate) → investment(savings). Аналогично сохранение двух инвестиционных альтернатив можно представить следующим образом. savings_account(adequate) ˄ income(adequate) → investment(stocks). savings_account(adequate) ˄ income(inadequate) → investment(combination). Затем, советник должен определить, достаточны ли сбережения и доходы. Это также можно записать с помощью импликации. Потребность в арифметических вычислениях приводит к использованию функций. Для определения минимума достаточных сбережений создадим функцию minsavings. Функция minsavings зависит от одного параметра, соответствующего числу иждивенцев, и возвращает результат умножения этого параметра на 5000. Используя функцию minsavings, достаточность сбережений можно определить правилами X amount_saved(X) ˄ Y (dependents(Y) ˄ greater(X, minsavings(Y))) → savings_account(adequate). X amount_saved(X) ˄ Y(dependents(Y) ˄ ¬ greater(X, minsavings(Y))) → savings_account(inadequate), где minsavings(X) =5000 * X. При этих определениях amount_saved(X) и dependents(Y) означают текущую сумму сбережений и число иждивенцев (dependents) инвестора. Здесь greater(X, Y) - стандартная арифметическая проверка, определяющая, что больше: X или Y. В этом примере данная функция формально не определена. Аналогично функцию minincome можно определить так. minincome(X) =15000 +(4000 * X). Функция minincome используется для вычисления минимального приемлемого дохода в зависимости от числа иждивенцев. Текущий доход инвестора представлен предикатом earnings (доходы). Поскольку достаточный доход должен быть стабилен и превышать минимально допустимое значение, earnings имеет два параметра. Первый параметр - заработанная сумма, а второй может принимать значение steady (стабильный) или unsteady (нестабильный). Приведем правила работы советника, описывающего эту ситуацию. X earnings(X, steady) ˄ Y (dependents(Y) ˄ greater(X, minincome(Y))) → income(adequate). X earnings(X, steady) ˄ Y (dependents(Y) ˄ ¬ greater(X, inincome(Y))) → income(inadequate). X earnings(X, unsteady) → income(inadequate). Чтобы давать консультации, необходимо добавить к этому набору предложений исчисления предикатов описание конкретного инвестора. Это - предикаты amount_saved (сумма на счету), earnings (доходы) и dependents (иждивенцы). Например, человека с тремя иждивенцами, имеющего $22000 в сбережениях, и с устойчивым доходом в $25000 можно описать так. amount_saved (22000). earnings (25000, steady) dependents (3). Таким образом, мы построили логическую систему, состоящую из следующих предложений. 1. savings_account(inadequate) → investment(savings). 2. savings_account(adequate) ˄ income(adequate) → investment(stocks). 3. savings_account(adequate) ˄ income(inadequate) → investment(combination). 4. amount_saved(X) ˄ Y (dependents(Y) ˄ greater(X, minsavings(Y))) → savings_account(adequate). 5. X amount_saved(X) ˄ Y (dependents(Y) ˄ greater(X, minsavings(Y))) → savings_account(inadequate). 6. X earnings(X, steady) ˄ Y (dependents (Y) ˄ greater(X, minincome(Y))) → income(adequate). 7. X earnings(X, steady) ˄ Y (dependents(Y) ˄ ¬ greater(X, minincome(Y))) → income(inadequate). 8. X earnings(X, unsteady) → income(inadequate). 9. amount_saved (22000). 10. earnings (25000, steady). 11. dependents (3). Здесь minsavings(X) = 5000 * X и minincome(X) = 15000 + (4000 * X). Этот набор логических предложений описывает предметную область задачи. Утверждения пронумерованы, поэтому на них можно ссылаться, описывая ход рассуждений. Используя унификацию и правило модус поненс, можно вывести правильную инвестиционную стратегию для этого лица как логическое следствие данных выше описаний. На первом шаге нужно унифицировать конъюнкцию высказываний 10 и 11 с первыми двумя компонентами предпосылки из 7. Иными словами, earnings(25000, steady) ˄ dependents(3) нужно объединить с earnings(X, steady) ˄ dependents(Y) с учетом подстановки {25000/Х, 3/Y}. Эта подстановка порождает новую импликацию. earnings(25000, steady) ˄ dependents(3) ˄ ¬ greater(25000, minincome(3)) → income(inadequate). Оценивая функцию minincome, приходим к выражению earnings(25000, steady) ˄ dependents(3) ˄ ¬ greafer(25000, 27000) → income(inadequate). Поскольку в этом частном случае все три компонента предпосылки истинны согласно предложениям 10, 11 и математическому определению функции greater (больше), их конъюнкция тоже истинна. Из этого следует, что истинна и вся предпосылка. Поэтому можно применить правило модус поненс и получить заключение income(inadequate), означающее, что доход недостаточен. Добавим этот вывод к набору предложений, присвоив ему номер 12. 12. income(inadequate). Аналогично, унифицируя amount_saved(22000) ˄ dependents(3) с первыми двумя элементами предпосылки утверждения 4 с учетом подстановки {22000/X, 3/Y}, получим импликацию amount_saved(22000) ˄ dependents(3) ˄ greafer(22000, minsavings(3)) → savings_account(adequate). Оценивая функцию minsavings(3), приходим к выражению amount_saved(22000) ˄ dependents(3) ˄ greafer(22000, 15000) → savings_account(adequate). Опять же, поскольку все компоненты предпосылки этой импликации истинны, то вся предпосылка истинна, поэтому можно снова применить модус поненс и получить заключение savings_account(adequate). Представим его как предложение 13. 13. savings_account(adequate). Анализируя выражения 3, 12 и 13, делаем вывод, что предпосылка в выражении 3 также истинна. Применив модус поненс в третий раз, получаем результат investment(combination). Это предложение и есть рекомендация по инвестициям для данного лица.
«Рекомендации на языке исчисления предикатов» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 493 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot