\chapter{Foundations}
\label{ch:Foundations}

\section{Recommender System}
\label{Foundations:RecommenderSystem}

A recommender system is a system that gives individualized recommendations to users to guide them through a large space of objects \cite[~ p. 331]{burkeHybridRecommenderSystems}.


\section{Product Configuration}
\label{Foundations:ProductConfiguration}

Product configuration is a process consisting of a series of decision tasks whereby a product is constructed of components which interact with each other. During a configuration process no new components are created. Their interplay and specification is defined beforehand \cite[~ p. 42, 43]{sabinProductConfigurationFrameworksa1998}.

Formally a configuration problem can be specified as a \emph{constraint satisfaction problem (CSP)} \cite{tsangFoundationsConstraintSatisfaction1993} as 
\[
    CSP(V,D,C)
\]
where \( V = \{v_1,\dots, v_n\} \) is a set of variables, \( D = dom : V \mapsto X \) is a relation of variables and their corresponding domain definitions \( X \), and \( C = C_{PREF} \cup C_{KB} \) is a set of constraints with customer preferences \( C_{PREF} \) and configuration knowledge base \( C_{KB} \) \cite{felfernigOpenConfiguration2014, felferningGroupBasedConfiguration2016}.


\section{Group-Based Product Configuration}
\label{Foundations:GroupBasedProductConfiguration}

To define group-based product configuration we extend the definition (\ref{Foundations:ProductConfiguration}) to 
\[ 
    C_{PREF} = \bigcup 
PREF_i \]
with preferences of user \( i \) as \( PREF_i \) \cite{ felferningGroupBasedConfiguration2016}.

\section{Group-Based Configuration-Solution}
\label{Foundations:GroupBasedConfigurationSolution}

\ref{Foundations:ProductConfiguration} and \ref{Foundations:GroupBasedProductConfiguration} expand to a solution of a group-based configuration with the addition of variable assignments
\[
    C_{CONF} = \bigcup_{v_i \in V} \{ v_i = x_i \}, \ x_i \in dom(v_i)
\]
and where \( C_{CONF} \cup C_{PREF} \cup C_{KB} \) is consistent \cite{ felferningGroupBasedConfiguration2016}.



