In the first approximation, decision making is nothing else but an optimization problem: We want to select the best alternative. This description, however, is not fully accurate: it implicitly assumes that we know the exact consequences of each decision, and that, once we have selected a decision, no constraints prevent us from implementing it. In reality, we usually know the consequences with some uncertainty, and there are also numerous constraints that needs to be taken into account. The presence of uncertainty and constraints makes decision making challenging. To resolve these challenges, we need to go beyond simple optimization, we also need to get a good understanding of how the corresponding systems and objects operate, a good understanding of why we observe what we observe ¿ this will help us better predict what will be the consequences of different decisions. All these problems ¿ in relation to different application areas ¿ are the main focus of this book.