\makeReportTitle{лабораторной}{№ 3}{Программирование наборов решений}{Представление знаний в информационных системах}{}{Лычков И.И.}
\newpage
\thispagestyle{empty}
\tableofcontents
\newpage
\pagestyle{fancy}
\section{Цель работы}
Получение практических навыков разработки логических программ на языке ASP программирования наборов решений.
\section{Условие логической задачи}
\subsection{Перевод}
У Ван Ли, торговца китайским антиквариатом и артефактами, недавно был отличный месяц, когда он продал четырем покупателям со всего мира — Финляндии, Италии, Японии и Соединенных Штатов, — которые были в состоянии очень хорошо заплатить. Четыре проданных предмета представляли собой редкие нефритовые фигурки (пряжка для ремня, дракон, кузнечик и лошадь), каждая из которых была вырезана из нефрита разных цветов (темно-зеленого, светло-зеленого, красного и белого). Каждая фигурка относится к разным китайским династиям (Цзин, Мин, Сун и Тан). Сможете ли вы подобрать для каждой статуэтки свой цвет и династию, а также указать родную страну каждого покупателя?
\begin{enumerate}
\item Редкий белый дракон (которого американка не купила) не происходил из династии Сун.
\item Изысканная пряжка для ремня (не имеющая оттенка зеленого) была создана в 618 году нашей эры для императора династии Тан.
\item Из трёх фигурок одна была куплена финном (это не дракон), одна из династии Цин (которая не досталась покупателю из Японии) и светло-зеленый предмет (который не был лошадью).
\item Американка отказалась как от кузнечика, так и от произведения династии Сун, поскольку ни один из них, по её мнению, не подходил к её домашнему декору.
\end{enumerate}
Определить: Товар -- Цвет -- Династия -- Страна покупателя
\subsection{Результат разбора условия задачи}
\begin{itemize}
\item\textcolor{red}{Страны}: Финляндия, Италия, Япония, Соединенные Штаты;
\textcolor{violet}{Фиолетовым цветом} в тексте выделены дополнительные отношения между переменными.
\subsection{Исходное}
Wan Li, a dealer in Chinese antiques and artifacts, had an excellent month recently when he made sales to four customers from around the world -- \textcolor{red}{Finland}, \textcolor{red}{Italy}, \textcolor{red}{Japan}, and the \textcolor{red}{United States} -- who were willing and able to pay very good prices. The \textcolor{violet}{four items} were rare jade figurines (\textcolor{teal}{a belt buckle}, \textcolor{teal}{dragon}, \textcolor{teal}{grasshopper}, and \textcolor{teal}{horse}), each carved from a \textcolor{violet}{different color} of jade (\textcolor{blue}{dark green}, \textcolor{blue}{light green}, \textcolor{blue}{red}, and \textcolor{blue}{white}). Each piece dates from a \textcolor{violet}{different Chinese dynasty} (\textcolor{green}{Ching}, \textcolor{green}{Ming}, \textcolor{green}{Sung}, and \textcolor{green}{Tang}). Can you match each figurine with its color and dynasty, and give the home country of each buyer?
\begin{enumerate}
\item The rare \textcolor{teal}{white dragon} (which the \textcolor{red}{American}\textcolor{violet}{didn't buy}) \textcolor{violet}{didn't come from} the \textcolor{green}{Sung} dynasty.
\item The exquisite \textcolor{teal}{belt buckle} (which \textcolor{violet}{wasn't any}\textcolor{blue}{shade of green}) was created in 618 A.D. for an emperor of the \textcolor{green}{Tang} dynasty.
\item\textcolor{violet}{Three of} the figurines were the one bought by the \textcolor{red}{Finn} (which \textcolor{violet}{wasn't} the \textcolor{teal}{dragon}), the one from the \textcolor{green}{Ching} dynasty (which \textcolor{violet}{didn't go to the buyer} from \textcolor{red}{Japan}), and the \textcolor{blue}{light green} object (which \textcolor{violet}{wasn't} the \textcolor{teal}{horse}).
\item The \textcolor{red}{American}\textcolor{violet}{decided against both} the \textcolor{teal}{grasshopper} and the piece from the \textcolor{green}{Sung} dynasty, neither of which she felt would match her home decor.
\end{enumerate}
Determine: Item -- Color -- Dynasty -- Country of buyer
\section{Решение}
\begin{enumerate}
\item Факты: страны, фигурки, цвета и династии.
\small
\begin{verbatim}
country(finland; italy; japan; states).
item(buckle).
item(dragon).
item(grasshopper).
item(horse).
color(dkgreen; ltgreen; red; white).
dynasty(ching; ming; sung; tang).
\end{verbatim}
\normalsize
\item Генерирующие (выбирающие) правила: каждая фигурка может быть одного цвета, принадлежать какой-то одной династии и быть купленной представителем какой-то одной страны
{check_country(I, C) : country(C)} = 1 :- item(I).
\end{verbatim}
\normalsize
\item Глобальные ограничения: обязательно должны выполняться требования (описанные в тексте), а также из текста следует, что нет фигурок одинакового цвета, никто не купил две фигурки, от каждого временн\'{о}го периода была представлена только одна фигурка
\item Вспомогательные предикаты: поскольку правила не могут содержать одновременно и отрицание и переменную, такая логика должна быть выделена в отдельный предикат.
\small
\begin{verbatim}
ofDyn_notJapan(It, Dyn) :-
check_dynasty(It, Dyn), not check_country(It, japan).
ofDyn_notStates(It, Dyn) :-
check_dynasty(It, Dyn), not check_country(It, states).