 Okay, let's start. Good morning, everyone. Honestly, I've never seen this room so full before. Although I did the mTech masters, and I took probably all the courses that you're going to take, or some of them, this room has never been so full before. And actually, I hope there is enough space for everyone. But let's see how this room is going to look like after the fifth lecture, for example. My name is, well, first of all, welcome to the course of Systems, Dynamics, and Complexity. Hopefully, at the end of this lecture, you will know exactly what Systems, Dynamics means, and what complexity, well, not what complexity means, but what we mean by complexity. This course is originally thought by Professor Frank Schweitzer. Probably, you all received the email that he's on sabbatical, and that I'll be teaching the course, asking you to support me and all this kind of stuff. So it's not that bad, actually. I've taken this course, and I've tried to do most of the, improve most of the slides as a student assistant, so I think we can deal with this. My name is Pavlin. I recently finished the MTech Master's last December, and now I'm a PhD student in Professor Schweitzer's group. The group is the Chair of System Design, as you're well aware of. It is one of the chairs in the Department of MTech, and this course is a core course in the competence area qualitative and quantitative methods. So the other course in the Chair of System Design, which is Collective Dynamics of Firms, which is next semester, is now elective. It used to be a core course, but it is now elective. All right, so what is the team? What is our chair doing? We're basically doing research on social systems in general, financial systems. We have projects varying from modeling financial markets through, let's say, cyber emotions, modeling how users behave online to emergence of cooperation, for example, which is my project. We use a lot of agent-based modeling. You don't need to know what this means. You will have an idea at the end of, well, hopefully at the end of this course, what modeling means. We're a pretty quantitative chair, even though we're in the Department of MTech. I will talk about this later on, but some kind of familiarity and, let's say, comfortableness with quantitative methods should be kind of required. To explain what this course is about, so basically this lecture is going to be explaining what the course is about, and I hope that you really know at the end of this course very precisely how each subsequent lecture would fit into the program. To explain what this course is about, I need to introduce the predecessor four or five years ago of that course, which was the systems engineering course or perspective. The focus in systems engineering was on practical aspects. So problem-solving, situation analysis, this is the basic tools that you can also see in the other course in MTech, SWOT analysis, problem-solving cycle, things like this. The focus was very practical. It was a long-running tradition in ETH. It doesn't exist anymore, so this is the new course, and it only incorporates this practical aspect just for the first two lectures, so let's say first three, four lectures. Our focus here is mainly, is going to be mainly theoretical, so trying to understand what are the problems that we're actually trying to solve, that we're trying to model, and most importantly, once we think we've solved the problem and we have the solution kind of running, embedded into a system, then we try to understand how that system works, why does it behave in the way it behaves? In other words, how does the system behave on its own if left alone, if it's not coupled? And for this, we're going to use terms like systems dynamics, nonlinear dynamics, economic dynamics. I will explain what each of these mean individually later in the slides. And as I mentioned, the goal is to try to understand why systems behave the way they do, and if not, which is the more interesting case, who is to blame? So, is it our fault, or is it the property of the system that occasionally exhibits some kind of, let's call it, unpredictable behavior for now? Alright, so as I mentioned, this is a core course for the MTech students, which brings me to the amount of people in this room. I checked on Tuesday how many have been registered, and there were 114, and I thought, okay, well, this is going to be the final number. I think yesterday night I checked and there were 145. So in two days, there were like 30 more people registered. There is a huge variety in discipline. So mostly we have MTech students, 60 people, maybe more now. Who is MTech? Can you raise your hand? Wow, almost everyone. Who is the MAS program in MTech? Alright, who is an engineer from the MAS? Okay, that's good to know. Well, but then, except for MTech, we have the MAVT department, we have the environmental sciences, physicists, the agricultural department. So there's a huge variety of people in this room. There was one person in Informatics, I think. Is there anyone from Informatics? Never mind. So, and most importantly, there are master students, bachelor students, and PhD students here, and probably also some professionals. So there's an extreme huge variety of skills. Some of you are engineers, some of you are computer scientists, theoreticians, some of you just want to become managers. So it's a challenge to structure a course in order to satisfy everyone. At the end of the course, hopefully everyone would feel that they've learned something for themselves. So that's a challenge, as I mentioned. Hopefully the course is self-contained. You will not need to learn a lot of new stuff in order to be able to follow, although I mentioned some quantitative experience would help out. So the question is, how can everyone benefit something from this course? And it's difficult to answer this question unless you start asking yourselves these questions, for example. If you're an engineer, try to think about to what kind of problems can you apply your skills, to what kind of systems. Can you apply your skills to systems that are inherently unpredictable, that cannot be designed for function, for 100% predictable purpose? If you're a theoretician, for example, can you apply your skills in practice? Again, if you're more practically oriented, can you take a real-life problem, understand the most important aspects of this problem and then try to abstract away the unnecessary details and model this problem in a way that is manageable and that allows you to understand something and hopefully to make predictions. We're going to learn this modeling perspective, how to take a real-life entity and transform it to an abstract representation. Again, once you've done this, are you able to actually understand the model or the representation of the real-life scenario that you've just created? Or do you just run it into a computer and see something comes out? Like weather forecast models, for example. You just put them in a computer and then you get a probabilistic picture of what's going to happen. But can you really understand what happens if you change something by just a little bit? Would the impact be just small or would the impact be very big? In other words, can you reduce the model analytically so that it's completely tractable? These questions are important, especially for the M-Tech, because this program is designed mainly for engineers, for people with practical skills that want to get a broader view. Professor Schweitzer really likes this slide, so I decided to keep it. It's a bit old, but it basically is from the Zurich newspaper that you don't get in the train stations. Basically, what is the engineer of the future going to look like? It's a bit old, six years old, but it's still valid today. In your notes, you have the translation, but basically an engineer needs to have leadership skills, need to be able, most importantly, to deal with complexity. Complexity doesn't mean something which is just difficult to understand. It means much more. We're going to see that. You need to have entrepreneurial thinking, ecological thinking. In essence, this is what the M-Tech program tries to do. In this course, mainly, we're going to be dealing on dealing with complexity, understanding how to deal with complex systems from a theoretical perspective. This was a hand-waving explanation of what the course is about, and I'd like to present this running example now, which puts everything into more concrete terms, the purpose of this course into more concrete terms. Imagine you have the following scenario. You are a manager in a company, and hopefully top-level manager, and then you're responsible for building a new plant. This is a very hypothetical example. You will not be responsible for everything that is set here. No one person can be, but these things need to be done. You need to select the location. This is the first thing. Then you need to manage the construction. You need to hire workforce and start production, deal with production cycles. All these things start new products and stuff like that. All these things need to be done. Assume it has to be done by you. What problems need to be solved? This course is about solving all these problems. How to find the right location, how to build and supervise the construction, and then how to deal with the system that is currently running. The first problem to be solved comes from the systems engineering perspective. This is what I mentioned in the beginning, the predecessor of this course. It's mostly practically oriented situation analysis. What is the problem? What do we want to achieve? What are the objectives? For this, we're going to use the problem-solving cycle. It's a framework of structuring this kind of thinking. The first two lectures are only on the problem-solving cycle. It's not going to be a big part of this course, but it's still an important aspect. Next task, project management. Once you have selected your plant location and you start building, you need to supervise the project. You need to supervise the implementation of your solution. That is basically what project management is about. We're going to use concepts like critical path, basically identifying the optimal sequence of tasks, such that the project is accomplished in the most efficient way, whatever efficient means. Most importantly, and this is the system dynamics perspective, we're going to study how the system behaves, how a currently operating, let's say, manufacturing line behaves, if there are small changes applied to it. Again, my question in the beginning, do small changes have only a small impact, or can they snowball into something that is completely unexpected? We're going to see one case study for this. Next problem to be solved, I already started talking about it, the systems dynamics perspective, and this is part of the name, systems dynamics. You basically observe for currently running system, and you try to understand how it works, why it works the way it does and why it doesn't. For example, in your plant, why, despite all the efforts to optimize everything, to make your market research, your supply chain management is perfect. You still have cycles in your capacity utilization or inventory. Is this something that is your fault? You could have done better and avoided all this, or is this something that just happens? And those of you who take courses with Professor Sornet, basically the same question can be asked about, let's say, financial markets. Is it always the fault of people, or are these oscillations kind of property of the system? So that's the systems dynamics perspective. Then we're going to touch the nonlinear dynamics. Nonlinear dynamics essentially means limits of predictability. So what are the limits? How much can we predict something, actually? Standard economics theory deals with the supply and demand curves, and then you can, starting from a simple notion of supply and demand, you can basically build a whole economy. You can come up with policies, you can come up with regulations, and economic efficiency and all this kind of stuff. But our supply and demand, for example, really predictable. And if not, I mean, if yes, we have no problems. But then, otherwise, we wouldn't see a lot of things we saw today. But if not, the question is, is unpredictability an inherent part of life, for example? And unpredictability, kind of for now, equals chaos. So if chaos is part of, let's say, the way life is, this is, it comes from, what does this have to do with the deep questions of the universe? So Professor Schweitzer is a physicist. For him, this is a deep question of the universe, but it really, if you think about it, if chaos exists by itself as a separate entity, what do we do with it? Do we learn how to manage it, or can we try to avoid it? Can we avoid it at all? Another example, you think you can predict the market, or you have a very educated guess about the market, but can you really predict what happens if you couple two markets together? If the price in one of the markets influences the price in the other market. Just two markets. And real life is much more complicated than that, but just two markets, and you'll see that the results are kind of surprising. So nonlinear dynamics, limits of predictability. So the whole course is about systems engineering, project management, the first one-third of the course, and then we have systems dynamics and nonlinear dynamics. Alright. Some practical aspects in cooperating all these notions. You're going to deal with, or try to deal with a situation, in that case an airport, which tried to satisfy all stakeholders. We're going to see a company that won a lawsuit against the US government, proving in court that small changes, very, very miniature changes, can lead to complete qualitative changes in the behavior of a system. So this is actually the best practical example I know that illustrates this kind of theoretical notion. The tools that we're going to use are, some of you you will see in other courses, the SWOT analysis, the PES, the BCG matrix. This is all from the first part of the course with systems engineering and project management. The GAN diagrams, critical path method, as I mentioned for project management. Now with the systems dynamics, we're going to identify and see what role feedback loops have on your system. So how do positive feedback accelerate the dynamics of a system and vice versa? So this is one way to generate complexity, by the way, but I'll talk about this later on. And being able to spot these kind of feedback loops, sometimes they're not so obvious, but being able to spot them can really help you understand how a system works. All right, and then a big part of the, well, a larger part of the exercises, I'll talk about them in a second, is going to be using a, going to be building models. We're going to use Vensim. I forgot what the abbreviation stands for, but it's a kind of a business level software. There is no programming, there is no coding. It's really like building legal blocks. It's very intuitive to really see how this kind of complexity emerges. This is the larger part of the self-study, so the exercises, as I mentioned. All right, any questions so far? All right, so I suppose you will have a lot of questions for that part. These are the administrative issues. The lectures are every Thursday, same time at 8.15 to 10 o'clock. I know it's a bit early, but we couldn't get a better slot. We're going to have exercise sessions every Tuesday. Again, very uncomfortable, uncomfortable slot during lunch, but I think the reason for this was that some of the MAA students, they had the conflict with some other courses. I don't remember exactly which one, and then we had to shift the exercise basically for another day. There was no exercise this Tuesday. The first one is next Tuesday. I will talk about the exercise at length in a second. Please use this email, this one here, if you have any questions. The reason is that if you send me an email personally, it may really get sent to a folder and processed by a filter that I have no idea existed. Your email may end up somewhere that I won't read it, and that's not what you want. If you send your questions to this email, this is archived, first of all. It's read by Professor Schweitzer all the way from the US. You will have constant touch with him. If you feel like there's something he can do, then just send an email there. The exam is going to be during the last lecture. This is Thursday 22nd of December, just two days before Christmas. It's a very nice way to start Christmas, actually. I think this would be the last exam, so you would be very happy that it's over. Again in the morning. This is the last lecture. The exact room, I have to check. I think it's not decided yet what the exact room is. Now, there is this Testat concept in the MTech department, I think in ETH in general, or requirements that you have to fulfill in order to be able to take the exam. You need active participation in the exercises. I will explain exactly what active means, because I already got these questions, what is active and how do you evaluate activities, stuff like that. You need to pass two out of the three online tests. I will also explain what the online tests are, but basically so far, I have never met a person who did not pass an online test. It's not a problem. Any questions about administration at this point of time? Wow, everything is clear. Yeah. Who said, excuse me? It is used in industry, although I cannot tell you exactly which company uses it, but that's how they advertise the software. Now that I've already worked with it, and I've taken on this course and so on, I really don't think the real use in business is very widespread. I think it would be useful for managers to be impressed by technical guys, but I really don't see how you can base some decisions on the software. Basically, what the software does is you build your system, let's say supply chain system, really by using legal blocks, and then you press a button and you see how some quantities develop. Then you have scroll bars, so you can increase the value of a parameter, you can decrease it, everything is graphically, but you cannot really understand why things happen the way they do. You increase the value of a parameter and then suddenly you see bifurcation emerges. If you don't understand the system, there is no way to understand why. I wouldn't go too far by claiming that this software is going to be an inseparable part of your future career in business. I wouldn't say that. About the self-studies or exercises. I always call them exercises, but the official term is self-studies. Oh, so first of all, download material. Does everybody have access to Moodle to this platform? Is there anyone who doesn't have access to Moodle? No, nice. This is where you can find everything. All the lecture slides, all the additional readings, self-studies, everything. The password, you know already? I forgot to include something on the slides today and that is the forum. We have a forum in Moodle and I would really like you to use this forum for all course-related topics. So if there is something unclear about the lectures, about the administration, about anything course-related, please use the forum, start a new thread. I will be checking the forum more or less regularly and in that way everybody can benefit from your questions. If there is something personal, for example, you need to be excused for something or it's a very specific situation for you, then use that email in the beginning. But for everything course-related, please use the forum. It will help me a lot in answering your questions in due time and it will also help everybody else because one question is easily shared by a lot of people. So these other handouts, they look like this. I already got asked the question, are you going to put all your notes after the lecture here? The answer is no. These notes are for you to take notes. So basically if you feel like you have a question or you feel like there is an additional explanation for a particular slide that you need to remember, then please take notes. This is for you. And the best way I've found so far is to print out the slides in advance and then take your notes on them. So not just notebooks or text files or something like this. And this is the easiest way to study for an exam. If you don't like paper, I also know some people who really hate paper, then you can use a tablet PC if you have one. So yeah, the notes are for you. These are the handouts. The self-studies I'll talk about in a second. There would be no, you don't need to read any additional literature for this course. Everything that is in the slides and that I talk about will be part of the exam, but nothing more. So you don't need to read extra papers or books or whatever. Nevertheless, everything that is mentioned here in terms of citations or papers would be included as part of the additional literature if you want to read it. And you're more interested or curious about it than of course you're free to do so. Yeah, I'm still not sure about this. I was thinking that maybe when we get to the Vensim exercises I could put some sample solutions there so that everybody could see how a given thing was solved. Yeah, maybe I will, I don't know. The video lecture, so as you all know, this session is recorded. Actually I was obliged to tell you this in the beginning but I forgot. So if, I mean you will not be recorded, I think. No, I mean the camera would just record me but yeah, I have to inform you that this session is recorded. The lectures will be available, I would say one day after the lecture on this link. So if you missed the lecture you can still look at the podcast and even if you don't miss the lecture for preparation of the exam you can still look at the podcast. Okay, now the self-studies. It's a separate slide. The self-study contains kind of a three parts. One are the questions at the end of each lecture. So if you manage to skim through these slides there are questions at the end of each lecture. These questions are not going to be on the exam in any form. Not just changing the wording or something, they're not going to be on the exam. They're easy questions just to check your understanding of the current lecture. So if you don't have time to go thoroughly through the handout just make sure that you can answer the questions and in that way you'll be in touch with the material. Again this will be beneficial at the end for the exam. The self-study tasks themselves or the exercise sheets. There will be a mixture in the beginning it will be just reading discussion exercises so you'll have to read something and think about something and then we'll have to discuss it. We'll go to that later. Eventually in the course we'll have to do the Vensim models the Vensim exercises as I mentioned already modeling different systems creating models. You will work in groups and now I'm pretty sure that this would be a hot discussion point. The groups will be assigned randomly four to five people. Why randomly? There are benefits and cons for this. In the future in the past it used to be self-organized so we let people just find their partners but now basically I decided to have it randomly. The reason is well there are multiple benefits. First you will be forced to work with people you don't know and I find this a very useful skill to possess. To be able to create a working environment with people you don't know with people which are on a different level than you are for example. So that's one thing. Second it's easier from an administration point of view I just press a button and the groups are assigned. You will see your groups in Moodle I will assign them today after the lecture so you will know early afternoon which a group is. Again four to five people maximum. The idea of the groups is not to waste so much time in meeting each other and trying to come up with a meeting schedule on a regular basis. You can even communicate via email if you want. Is to discuss the current exercises and then during the exercise sessions which are on Tuesday for 45 minutes one group will have to present their solution or their idea of a solution to everybody else and start a discussion with the rest of the people. So now we come to the point of active participation. The minimum amount of participation that everybody should have is present once during the whole course present once and participate in a discussion started by another group at least once. So if you do that then you have the active participation basically. It is still kind of subjective but hopefully not too much. Every group will present just once so your group will not have to present more than once for the whole course. This is not, I think this is not such a big thing. The discussion, yeah I will also participate in the discussion obviously but it's good if you manage to start your own discussion in a way that is interesting for you. So you read the problem and then you think okay there is something interesting that we can discuss and then we start discussing it. Alright. There is no requirement to hand in any solutions. Any program code or events in models or anything. So there is no need for that. Any questions about the self-studies at this point? I think I was kind of clear, yes. Yes, yes, okay good point. So do we know in advance if you have to present? Yes of course. Ideally you will have one week. You will know one week in advance. Actually I will distribute all the groups for all the self-studies today. So you will live a no month in advance. The first group that have to present next Tuesday is kind of, yeah, at a disadvantageous position because till Tuesday there is not so much time but then again the self-study is very easy. It's mainly a discussion, reading exercise and then we have to discuss basic notions like what is a system, what is an open system, what is a closed system, what is complexity and things like this. So it's very easy and it shouldn't take you more than I would say one or two hours to get an idea of what we need to talk about. During the exercise I forgot to say something. During the exercises I will also try to leave some time if needed to revisit some of the lecture materials. So if there is some questions, something is unclear and there was not enough time to explain something properly then we can do this in the exercise sessions too. And you can also ask your questions not just exercise related by any kinds of questions about the course personally. It's like similar to office hours if you'd like to see it like that. Okay. Any more questions about the self-studies? You will know today as I said your group and when you have to present. Now, this was kind of quality control from our perspective. The quality control from your perspective is the usual course evaluation at the end of the semester, the standard questionnaire. And in addition to that, so this is a kind of very inefficient way to address problems because there is a huge lack. That's why we decided to have this kind of online surveys. I think it's two or three online surveys for the semester where you will have to answer some multiple-choice questions about the structure of the course, about the level of difficulty, teaching style, my clothes and all this kind of stuff. So probably there would also be some kind of a text input. So you can say whatever you want. And this is very helpful actually. I would ask you to take this opportunity because we can really adapt the course on the fly. So literally the next lecture I can address something that has been bothering you for a long time. And somehow I didn't know about. Okay. The online tests, which are part of this requirement for taking the exam. The online tests are three, yes, three online tests. You need to pass two. You can do them offline. So offline meaning not here. Obviously you need internet connection because they're online. Yeah, offline means different things. So there are going to be just basic questions, really basic questions about the material. You can use whatever you want. Open books, lights. You can work in groups. However you want to do it. And you have plenty of time. I think we started with 24 hours last semester, but it was too much. I mean, nobody used more than one hour. Even the slowest people used like 45 minutes. So probably you have two hours to do them. It's really kind of a check for us to make sure that you have a basic knowledge of what we're talking about. The questions will come again only from the handouts, only from the lectures. There will be no questions about anything else. All right. Let's see. Any questions about administrative issues in general? Because now we move again to the purpose of this course. Essentially the first lecture is all about that. No. All right. So this is the slide. If you need to remember one slide from that lecture and also throughout the course, this is the slide to remember. What is the course about? It's about three things. Finding solutions, which means first identifying what the problem is, what our goals are, what are the stakeholders, finding different solutions, selecting the best solution, whatever best means. It's a very hand-waving word, best. So selecting a solution. Second, implementing a solution. This is where project management comes into play. These first two parts are going to be together four lectures. In total we have 12 lectures, so one-third of the course is going to be about finding solutions and implementing solutions. Basically the first four lectures. So up until the first four lectures you will not have to do any mathematical stuff, per se. It's all kind of things that you will, you're likely to see in other courses as well. So it would be kind of easy. Then the bigger part of this course is controlling solutions. Or as I mentioned, observing how a system works, understanding why it doesn't work, and of course ultimately trying to control it. Not just observe and accept whatever happens to it, but trying to control it. And for this we need to understand what is the role of feedback processes in that system. Not just existing feedback loops, but also loops that we can introduce. You would see that by introducing feedback loops we can change the behavior of a system in a way that we want. What are the role of control parameters? So what happens if you vary something by a little bit? If you vary, let's say, the delay before a product goes on the manufacturing line. For example, what happens to the end result? Do we see just a small impact? Or do we see a qualitative change in the system? In other words, a bifurcation. You don't need to know what bifurcation means. But essentially, because you will learn, but essentially this is what it means. So the system changes completely its behavior. So from being very organized it suddenly becomes chaotic, for instance. All right, and these are going to be eight lectures. Actually, the focus of this course is on this. All right. Now, I talked a lot about solving problems and about situation analysis, identifying possible solutions, selecting solutions, but then the valid question is what problems are we talking about? And I will start introducing, I think we have one minute until the break. Oh no, we have plenty of time until the break. All right, so I will start with this now. What problems are we talking about? Well, yeah. This is, imagine the following situation. First of all, these are not the problems we'll be talking about, but it's an example of what problems we exist. The following case, you have a customer or you have a company and then you've created, you've conducted your market research and you've identified that your customers or the representative customer of your customer base has the following utility function, you, or gets the following utility from some feature of your product, feature X, for example price or quality or design for people with MacBooks. So basically, this is the utility. It's whatever function, doesn't matter. How we get this function is an interesting question, but let's hope this is the right function. It's to the fourth order, right? So the question that we need to, the goal that we need to have to accomplish is, well, what is the value of my product feature that maximizes my representative customer's utility? And the normal way to do it, you differentiate, you find the zeros of the first derivative. By the way, if you don't know why differentiating and setting this to zero would maximize a function, then probably you will have to do extra efforts to follow this course. So I hope everybody is more or less comfortable with this idea. Technically, we need to take the second derivative in order to prove that this is a maximum, but let's not go into this. So we just zero that, and we find the roots of this cubic equation, and that is, for example, one problem. How to find the roots of this equation? It's a very valid problem. You would think that the solution is straightforward, but in fact, even for this very Mickey Mouse example, there are different strategies to solve it. First, let me show you how this function looks like, just to get an idea. Not this one. So this is how this utility function looks like. You can see it. And you see here, if I put the cursor here, you can see the value. Well, you can't. The resolution is somehow messed up, but somewhere here you see the value. All right. Yeah, so this is how the function looks like, and we need to basically take the first derivative and maximize it. All right. Not this one. As I mentioned, even for this simple problem, there are two approaches. First, we can go with an analytical solution. You probably all know the Cardano formula, for example, for solving a cubic equation. Well, yeah. So I think it's a 10-minute break. Right? It is a 10-minute break. Okay. Let's go with a 10-minute break. All right. Let's continue. Let's continue. So we saw even for this very simple problem, there are multiple solutions available. One of them is the analytical solution. Analytical solution in the sense to use a formula. Just plug in the values and you get it. The problem with this solution is that it's quite messy, and I will just show you how messy it can be. This is how messy it is, actually. Right? So this is an analytical solution for the roots of a cubic equation. And depending on your preferences, you may or you may not like it. So that's one thing. A second approach, which is kind of similar to this one, is you do what, let's say, some modern engineers do. You simply put it in a computer and you get a symbolic calculation, which, again, symbolic is simply the analytical solution. You put it in Mathematica, for example. You get the solution. That's perfectly fine. You don't need to know how this formula was developed. There is also the chance to get an intuition about the solution. So you plot the function, you see where it becomes zero, and that's good enough for you. Graphical solution. You can do numerical integration, for example. Euler integration, some more sophisticated fourth-order Runge-Kutta integration. Again, that's a possibility. You can also try to simplify this equation before solving it. So you may argue, as I think it's said in the notes, no, as I actually said in the slides, you may argue that D is small. So if D is small, let's go back. If D is small and you simply ignore it, then effectively we have a quadratic equation and the solution for a quadratic equation is very easy. The formula is very easy. So you see, even for this very Mickey Mouse example, we have all these kinds of possibilities. And now the question is, do all solutions yield the same result? Do all of these solutions produce the same result? What do you think? Come again? Approximately what? Approximately the same result. If you do numerical integration and you don't choose your time step properly, then it will really look completely different. But yes, basically approximately no. So no, basically the answer is no. I mean, they don't. It's not the same. Depending on, let's say, your simplification, it may be approximation. But the answer is no. And see, even for these simple problems, we have multitudes of possibilities. And keep in mind, these are not the problems that we're going to be dealing with. So when we come to the real problems, keep that in mind and then you'll be just overwhelmed by the amount of complexity that emerges. All right. Now, which strategy would you choose, first of all? So for example, you would strategy would you choose? So basically you go for the exact solution, analytical or symbolic equation. Well, that's fine. I mean, it depends if you are aware of that formula for an exact solution of this cubic equation. You have the right skills, basically. You can use it. But for example, keep in mind that this cubic formula was unknown, let's say before the 16th century, I think, when Caldano invented it. So before that time, people did not have this kind of analytical formula for a cubic equation. So it really depends on the amount of skills that you have in choosing an equation. It also depends on the access to information. What kind of information about the problem and about the possible solutions do you have? And we'll come back to this knowledge of the solution space later on. But for now, if you don't have access to a computer, if you don't have access to a math book, if you don't have access to someone who owns a math book, then maybe you will be restricted just with a graphical kind of interpolation and calculation by hand. So again, as you said, level of accuracy. So what kind of approximation would work for us? Up to the fifth or up to the 150th digit, I don't know. The point is that the solution you choose depends on two main things, and that is the point of all this mental exercise. It depends on you personally, what you prefer, and it depends on your environment. So how your environment restricts you in approaching a problem and solving it. And there is a constant feedback between you and your environment, which ultimately influences the solution you choose. So for example, if you don't have a computer, if you don't have computing resources, you're restricted to just using analytical methods. And for some problems, they just don't work. So this is you and your environment. Okay. Of course, we assume so far the following thing. We assume that the solution actually exists. We took it for granted for that simple problem, and believe it or not, we take it for granted in a lot of real-life situations. We assume that the solution exists, and not only that, but we can find it in a finite time. And finite time, for most people, means their lifetime, unless you write down something on a piece of paper, and then you have the Fermat theorem or something like that. Okay. So why does this assumption hold? Why is it true? And this is the point of this whole thing, because we have a well-defined problem. So these types of problems that we're not going to deal with are well-defined problems, which means they have a well-defined problem space. We know, for example, for our utility function, we know the range of this product feature X. We know all the values that it can take. So it has a well-defined problem space. It has a well-defined algorithm or approach to solving it. We know it. And the goal is completely specified. What we want to do is not ambiguous in any way. You don't have different stakeholders asking you for, let's say, zeroing or non-zeroing the first derivative, for example. So all the information is available. These are well-defined problems, and they're not interesting, actually, at all. So we're not going to be dealing with these kind of trivial problems. A more interesting question, as I mentioned, is actually how do we get this utility function, which is the interesting thing. In some of the other courses, you would see microeconomics, you would see how this kind of utility functions are calculated from data and assumed, how do you argue about these utility functions. But this is the real problem, not about solving an equation. So we're not going to be dealing with this kind of stuff. So let's complicate things a little bit. We're not going to be dealing also with this kind of more complicated problems, but it's still kind of gradually getting to the real problems. So how many of you know the traveling salesman problem? Yes, well, it's about, well, all right, less than half. This is a very simple kind of a prototypical example of problems that, let's say, problems that are not reducible, meaning that if you solve the problem once and you change the problem space, you need to start from scratch. It's a prototypical example of this kind of real-life cases, and the scenario here is you have a salesman whose goal is to travel around, to visit cities in a way that, first, he visits all the cities and hopefully sells something, and, second, do this in the most efficient way. It could be the shortest way, it could be the cheapest way, it doesn't matter, but the prototypical example is do it in the shortest way possible. So visit all the cities, come back to the origin in the shortest way possible. All right, so what do we need to do here? How do you define the goal of that problem? What do you think? I mean, we need to find, obviously, the shortest path, for instance, or the sequence of travels. But this is still not a clearly defined goal. One thing that we can do, for example, is, given an existing path, we can evaluate how efficient it is. Efficient, of course, you define, but for now it's the shortest path. So given some random, somebody gave you a solution and told you, this is the solution, then you can evaluate it. And the way we evaluate it here is, again, we define a utility function, which is a utility function for the whole path, for the whole trip, in a sense. And the idea is very simple. So before explaining this formula, the idea is very simple. You start, so you have a bunch of cities, and you start with, let's say, the first city you calculate, or you see basically, for each link that you have with another city, you simply count that link. Okay, this is one, and this tether here is just one, if there is a link between two cities, and zero if there is not. So you start from the first city, if there is a link to city two and three, then you add one, one. Then you go to city two, and you see if there is a link between two, one, and two, three, you add more, one and one. And then you scale these additions by whatever for you is most efficient. In that sense, this is simply the length of the link. So we're trying to find the shortest path. So this is an example of a utility function that we can define, and of course we have a boundary condition. All cities need to be visited. How do we solve this? Of course the one way to solve it is simply try all possibilities and find the optimal path, which is, I don't know the exact calculation, but I think it's like you would need for moderate size problem, you would need something like of the order of the age of the universe or something like that to solve this problem explicitly with brute forcing. So this is obviously not, and even if you solve it once, adding one more city would mean that you need to start from scratch. And that is basically what this notion of NP-hard means. NP-hard means that you cannot reduce the problem into sub-problems, solve them individually and then combine them. You need to start from scratch with every new instance of the problem. All right, so how do we solve it? One way to solve it is using the, taking ideas from evolution, which simply means mutation, selection, mutation, recombination and selection. So let me just walk you through this procedure. We start, as I said, somebody gives you the solution and tells you this is the solution, or let's say, obviously this is not the solution, let's say they tell you start from here. We start from this kind of path, right? So according to this, the salesman has to go from here to here and then here and I don't know, here and so on, right? Obviously this is not the shortest path by any means. So what you can do from using this idea of evolution or optimization, again, mutation, so mutation simply means you change this somehow. How do you change it? Well, we remove a link at random, okay? We simply remove, let's assume we remove that link. We remove it. And then we calculate the utility of the resulting graph, the utility of the resulting path in this way, right? If the utility of the new path is larger than the utility before removing that link, then we accept the change. It was a good change, right? We improved, we kind of, we're closer to the real solution now. But if it's worse, so if removing that link has lower utility, results in lower utility, then we can still accept that change with a certain small probability. So we don't completely ignore that change, but there is still some probability of accepting it. Why is that the case? This is kind of a very important point. Why do we accept kind of decisions that result in a worse state? Yes, exactly, yes. So that's the reason. Just as an evolution, you are not aware of what the best solution is, right? So if you get stuck in something which looks good at the first glance, you will never move from that state. There may be a better state somewhere else, but you will never find it, because you never move. And that's why also in evolution, not every evolutionary step is beneficial in the short term. So this is an important point. We accept this kind of deterioration, temporary deterioration, in order to be able to constantly keep moving, to constantly exploring our solution space, simply because we're never actually aware of the whole thing. And I will show you a simulation of how this works. So this is, yes, you can see it now, right? We start from a random graph, okay? Let's say this one. And then we start this procedure, removing a link, accepting it if it results in a better utility and accepting it with a small probability if it doesn't. And this is what happens, right? At any given point of time, you don't know if that's the best solution. Eventually you end up at a state which somehow doesn't change anymore, right? And then hopefully this is the optimal solution. Let's see if these graphs are the same. I mean, they shouldn't be, obviously, right? So this looks like, let's say, a relatively efficient way to go about this. So this is the idea of evolutionary optimizations. One way, yeah. Yeah, I mean, obviously you don't because here we got different things, but let's do it here. Yes, so let's start from a different, well, actually I forgot how the previous graph looked like. So you'll tell me if it's the same or not. I don't think it looks the same. Oh, it does it? That is true. It looks familiar. Is it the same? Okay. Right? So this is one way to solve this kind of problem. There is, see, at any given point of time we're never sure whether we found the optimal path, but we're getting close to it. That's one thing. That's one thing we can be certain of. And that is the basic idea of all the problems that we're going to solve. We're never aware of the optimality or sure of the optimality of the solution. All right. So what's different? What's different with that simple utility example with the cubic function that I showed you? Well, first of all, we were still given all the information about the problem. We knew what the salesman has to do. We have the set or the link of cities. We know the distances between the cities or the travel costs involved. So we know everything about the problem. However, obviously the procedure was unclear how to find the optimal solution. Let me be more specific. The procedure which you can execute in a finite time was kind of unclear. There is a solution. We know there must be one solution, but we're never sure if we found it or if we can find it in a finite time. So this is the different thing now. We don't have a procedure for the solution and we're not sure whether the solution we've currently found is the optimal one. Yes, there are some algorithms for finding the optimal solution for a traveling salesman problem. But the point is that this algorithm is not universally applicable to all instances of this problem. So if you add 20 more cities, then things just explode. We use an iterative procedure at any given point of time, removing a link, calculating utilities, and in a sense trying to improve step by step. We start from a very coarse-grained approximate solution, which was the random graph. This is kind of the best we can do in the beginning without any information. And then we try to constantly refine it. And this kind of fine-grained refinement or fine-grained search toward the end is accomplished by modifying this kind of mutation probability P. So at the end, the more you improve, the less likely it becomes to adopt suboptimal solutions. But it's still a non-zero probability. And this is the fine-grained idea of tuning the acceptance probability. Most importantly, however, from all these discussions so far, as somebody mentioned, we need to accept random deviations, which are suboptimal from a myopic point of view, because otherwise we can get stuck in suboptimal states. We're never sure whether the state we're currently in is the optimal one. And now think about, as I said, these kind of deteriorations are unavoidable. So think about the repercussions. That was still kind of a slightly more complicated problem, but not as complicated as real life. But think about the repercussions for, let's say, project management. Can you go to your boss and ask them to accept a short-term detrimental solution, hopefully leading to better results in the long term? It's a very difficult thing to do, especially if you put it in the framework of rationality, where you always calculate best strategies and best payoff and optimal net present value and stuff like that. You will never very hardly accept a solution which is, at least in the short-term, suboptimal. So that's an interesting kind of property of that problem. You can even call it property of that problem. To solve it, we need to do this. And now let's go slowly to the problems at hand. What if we have multiple optimization criteria? And here the first example is kind of very relevant for Zurich. Imagine you would like to find an apartment and you have multiple criteria by which to evaluate this apartment. You may want affordable price, nice location, furnished in a nice neighborhood close to your work, close to your university. So these are all contradicting goals, contradicting demands. But nevertheless they are correlated. If you want one, you tend to want all the others, right? Nobody wants to live in a, well, most people would not like to live in a, let's say in an apartment which is cheap, affordable, furnished, but five hours from the workplace or something like that. So you would tend to want all these goals which are contradicting among each other. So these are multiple criteria by which you can evaluate the best solution, what the best solution is. Something also very interesting. Often in real life the interests of an individual are at odds with the interests of the whole group. In game theory there is a whole field about common good problems, common good games, where the interests of the individuals are completely counter to the interests of, let's say, the whole system. And it's very also relevant for economics where, especially with this renewable energy that's coming out now, for example, if all countries contribute to, let's say, reducing emissions, everybody would be better off. But each individual country has the incentives to actually not do anything and just free write on the efforts of the others. So these are local interests versus global interests and these kind of problems are very hard to solve. They cannot be solved by an algorithm. Here the example is with the road network, of course, the government would like to build a road and people would like to have roads, but nobody wanted to have a highway next to their home, right? So that's again balancing the individual versus the global interests. Bottom line, there is no perfect solution for this kind of problems with multiple optimization criteria and multiple stakeholders, but we can still try to find some of the better ones. And this is where the problem solving cycle comes into play and the first self-study, no, the second self-study. So we would like to find some of the better solutions, but again the problem is, well, how do we know what's good and what's not? How do we know actually are we close to a better solution or are we not close? And the answer is that we can never be absolutely sure, but that's just the fact of life. This is actually quite difficult to explain, especially if you go to industry, that you can never eliminate, for example, chaos from supply chains or periods of kind of cycle behavior, let's say, and some capacity utilization. You will learn about this also in other courses, especially with the supply chain management, the so-called bull whip effect, for now let's stop here. This kind of sketch is simply comparing these trivial problems that I talked about with these kind of more complicated problems. For these problems, first of all, this, as I mentioned, Professor Schweitzer is a physicist, so this is similar to a potential in physics. For now, you only need to know that the minimum of this potential corresponds to a good state, to a state that we want to be in. That's just what you need to remember. There are, for these simple problems, there are only a few optimization criteria like this one. The state space is very limited and we know there is a perfect solution. We know it's right here. It's very easy to find. However, for these non-privileged problems, more complicated problems, look what happens. I mean, we have multiple good states that we can be in. And if you're, for example, here, you don't know about the existence of that state. You don't know that. So if you never explore, if you never move around in a sense or accept short-term deterioration, you will never find this state. So these are the problems that we're going to be dealing with, many optimization criteria, unclear goals, and unclear problem space. An example for the second self-study is the following problem. It's with the Zurich Airport. Actually, it's a real problem. I will just read it to you. You would need to expand the carrying capacity of the Zurich Airport, taking into account, as I mentioned, this is a real problem, taking into account the interests of the users, passengers and airlines, the interests of the suppliers, the people, the common public living around the airport, environmental policies, environmental protection, and of course you have to obey laws and regulations. So you can see there are many different stakeholders for this problem. The goal is somehow clear, you expand the carrying capacity, but there is no way that you can actually implement an algorithm, an algorithm which does this for you, or an analytical solution that does this for you. For example, expanding the carrying capacity can be done by building a new runway. That would expand the carrying capacity, or expanding the carrying capacity would be by simply accepting more flights. However, all these two different solutions achieve the same goal, but have completely different, going back here, they're a completely different state space, and whether you can actually achieve them is a question with this contradicting demands, because expanding the airport by building a runway would be against what the people living there want. These are the ill-defined problems, or the non-trivial problems, ill-defined meaning. The problem space is unclear, the approach to solving it is unclear, and we are not certain how to do it. We would still be, so these are kind of a helpless attitude towards real life, but we can still do a lot, and that is we can find some of the better solutions. This is the framework of the problem-solving cycle, and we simply achieve this, not through algorithms, but through mediation. For simple problems, how to find the solutions? Well, one way is you break the problem into many sub-problems, and then you solve them individually, you combine them in some way, superposition or doesn't matter how, and then you have the solution. Of course, the assumption is that the problem is decomposable, so you can build a factory by building many different small things and just running them in a sequence, problem is decomposable, but we, of course, doing this, we neglect any interdependencies that different sub-tasks of problems may have between each other. Again, the non-trivial problems, they cannot be solved by a clear algorithm. We need to have, this is where the human problem solvers come into play, which is basically people, so problem-solving cycle, discussions, mediation, and stuff like that. I will give you now a quick introduction into the problem-solving cycle, which is going to be the topic of the next lecture, and there would be a self-study, the next self-study, the airport example. The problem-solving cycle is actually very simple. It's a framework of the way you should kind of think about a given situation. First, of course, we need to define what the situation is, so what, given all the information, what do we want to achieve, and we'll do situation analysis, SWOT, the PEST, and all this kind of stuff. For example, for the TSP, the traveling salesman, we simply define the utility function. This is what we want to, this is our objective, we want to optimize this. Given the problem, clearly defined problem, this is where the kind of the creative part of the problem-solving cycle comes into play. You need to generate solutions. There are no algorithms, there are no kind of models, well, there are models, but you need to be creative and generate possible solutions taking into account the influence of these solutions on the different stakeholders. And there are techniques to generate solutions in the problem-solving cycles. For example, for the TSP, for the traveling salesman problem, we used evolutionary optimizations to generate solutions, and then we evaluated each individual solution. After you've identified solution candidates, you need to select the right solution. Selection is based on, this is where the multiple selection criteria come into play. They could be selected in many different ways. You need to weight the pros and cons of each solution on all the stakeholders. And as you know, for real-life problems, many different solutions have more or less the same attractiveness, and it's difficult to select one or the other. So this is all the problem-solving cycle. It's, as I mentioned, kind of a framework for what you need to do. All right, let me just repeat quickly what kind of problems I was talking about and what problems we're not going to be concerned with. We have the non-trivial, well, first let's start. We have the well-defined problems. I hope it's clear what well-defined is. It's their trivial, it's not interesting for us. The non-trivial problems or the ill-defined problems are those that have multitudes of solutions, multiple kind of problem definitions or multiple goals, and the important approach here is intuition. In other words, using heuristic strategies and not trying to find an exact optimal solution, which often actually does not exist. In the problem-solving cycle, what you will need to do is, as I mentioned, generate solution candidates, evaluate solution candidates. So for each of these steps, you need to argue why you think this is a good solution candidate or why you think this solution should be chosen and preferred over another one. And then, yes, so implementing solution comes later, but this is it. All right, again, finding the solution is clear, implementing solutions. Now, a known solution, for the airport example, for instance, it does not define the way to implement it. Different ways of implementation are possible. With the critical path method, we're going to see basically you split the implementation into sub-steps, you link them somehow together, you shift them around, you do some in parallel, some sequentially, and then you evaluate the efficiency of that implementation approach. Obviously, respecting constraints. This is the first one-third of the lecture, basically. The last one and the most important one, once you've implemented your solution and it's working, your factory is running, does it work? And if it doesn't work, as is more often the case, whose fault is it? This is what people always want to know. Who is to blame for, let's say, financial crisis or for unutilized inventory or stuff like that? So, in order to understand who is to blame, you need to understand how the system works. What are the properties of the system? And this goes back to the idea of predictability. If you cannot really predict the system, can you be blamed if it's not working? And you see the case study with the company that managed to win the lawsuit against the US government, which they essentially proved this, which is quite amazing. All right. Now, before we end this lecture, I'd like to shortly introduce this concept of complexity, because this is the last part of the title of this course, System Dynamics and Complexity. You will, especially in the MTech, you will see this term popping up often. Also with Professor Sornet, complexity, what is complex and what is complicated, there is a clear difference. This would be an exam question too. What is the difference between complicated and complex? Now, we would consider complexity as a system property, meaning for the systems or for the real-life examples that we're going to be dealing with, complexity would be a property of the system just as, let's say, a GDP is a property of an economic of a country's performance, or let's say, yeah, well, it's going to be a systems property, which means that we cannot simply eliminate it. We can control it, we can understand it, but it's going to be there at all times. Complexity comes with unpredictability, with indeterminism. And just to give you an example, financial markets can be considered complex. Why? Well, this is the next point. How does complexity emerge? Well, there are kind of two main ways. First is through nonlinear feedbacks. So if you couple different parts of the system together, they would start influencing each other in such a way that things simply become unpredictable. And there would be a case study with coupled markets where just the influence, a small influence of one market on the other completely changes the dynamics. More interestingly, sources of complexity are the collective interaction between individual elements. Even though you think you understand humans, when you put them in a financial market, and they start influencing each other through herding, through rumors, through way information is spread, the overall properties of the system that emerge, of the collective that emerge, are completely different from those of the individual actors. People start behaving irrationally. So nobody, for example, everybody knows the detrimental effects of bank runs. If you go attack a bank, everybody, and want to have your money, the bank will go bankrupt. So people know this individually, you know this. But bank runs still happen. So if you put all these people together, they start exhibiting properties. The whole system starts exhibiting properties that cannot be explained just by studying the individual actors. And there are many examples for collective systems, for complex systems. My favorite one is the brain. You know how individual neurons more or less work, what they're made of, how they communicate with each other. And still, to my knowledge, nobody can explain why consciousness emerge, for example, from this collective interaction between neurons. Or more realistic, well, let's say not more realistic, but more relevant for this course. Again, the supply chain management chaos or unpredictability in supply chain. All right, this is what systems dynamics means. This is the part of the course, managing and dealing with complexity, learning how to identify complexity, not how to eliminate it, but how to try to control it to some extent. And we need to do this in order to be able to design these kind of systems. If you understand how they work, then you can design them as well. And hopefully this would mean better design for economic systems, better design for financial markets, which is quite relevant today. But in order to design something, first you need to understand how it works. And this is the goal of systems dynamics. What is the dynamic of the system? Now, the first self-study or the first exercise. Let me mention a few words. There were a lot of people coming now in the break and saying that they haven't registered. They're not sure if they're going to take the course. There will still be a self-study next Tuesday. And I will still try to allocate a group for that and notify this group in advance. I will hopefully, well, not hopefully, but I will probably ask a group which is sure that's going to take the course to present next Tuesday so that people who, you know, are still finding out their way into the MTech, they don't have to worry about presenting something next Tuesday. There's not so much time anyway. The self-study is very easy. It's just a reading exercise, actually. There's nothing for you to do. Familiarizing you with these basic notions of a system. What is a system? We're talking about systems, but what is actually a system? And also, what are complex systems? Especially for engineers, I think this would be very interesting to read. There's a nature letter about complex systems. I think it's an enjoyable reading for everyone. Even if you don't mean to come to the exercise, you're not sure if you're going to take the course, you can still read it. It's easy. It's not abstract. And it's going to help you a lot in understanding this kind of transition from the real world to models that we're going to do in this course. These are the questions. As I mentioned at the beginning, if you can answer these questions, then you're fine. At least as a first-order approximation, you're fine. For the exam, I'm not sure if that's going to be enough. All right. I think that's all. Thanks a lot. Oh, sorry. There's a question. The nature letter? No, I just printed it yesterday. Yeah. So the one which has nature or something, the file name? Okay, we can talk about this right now. Thank you very much.