Reliable computations for high-assurance systems: ------------------------------------------------- * Brief description and AI targeted area: Although commonly assumed that computers are always right (also worded as "what they say is true" :-) ), computers are unfortunately far from being reliable machines... at least in the common use that is proposed to common users and common applications. A way to guarantee reliability in the computations performed by your (everyday) computer, is to replace all floating-point computations for interval computations. In brief, the way it works is that all real number (usually simulated by a floating-point number, most of the time being an approximation of the original real number) is replaced in computations by the smallest interval (representable in machine) that contains it. This way, by following some rules on the bounds of the interval, interval computations are guaranteed to always contain the expected real quantity (which is far from being the case when using floating-point numbers). So we can be safe with these intervals. Unfortunately, "no lunch is free" :-(... and it turns out that when gaining reliability of computations, we jeopardize somehow the accuracy of computations (an interval as opposed as just a floating-point value). And in case we need to reach a given accuracy, it is at the expense of time, because interval computations have this bad habbit of overestimating the quantities that are supposed to be computed. So now we can be reliable but at the expense of performance. However, critical applications require reliable and performant systems. So there is a strong need to design systems that have these two properties. One way to progress in this direction is to understand better how interval computations are performed so that we can improve their accuracy, thus limiting the overestimation problem. By working in the project, you will learn about problem solving and decision making. You will also be given the opportunity to explore the possible many applications of interval computations, and the need for reliable computations in critical systems. ---------- * Description of the objectives and tasks: Your work in this project will be based on previous work done in this area. You will also be given the possibility to use already implemented libraries for interval computations (you will have a choice as which one you prefer). By the end of the project, you will have acquired a strong understanding of interval computations as well as of their many applications. In particular, you will have to: - write a short tutorial about interval computations, but also about at least five detailed applications of interval computations and their critical role in high-risk systems; this tutorial will be handed out to all students in the class; * this tutorial should be ready by the end of week 4 of the project timeline; - propose at least two strategies to make interval computations more accurate, and evaluate the chances of success of each of them; - implement a prototype integrating these two strategies, run intensive testing, and report/ analyze the results; - implement a toy application. You will also have to write a general report in which you will include: - an introduction: presenting the problem you plan to address, and explain how you will tackle it; explain how it is related to AI and what specific area it is related to; include your tutorial about intervals; - the description of your team: names of the students, tasks assignment (contribution of each one), timeline of your work; - the description of the strategies that you have designed: * in particular, explain why you think that these strategies are efficient ones; - the description of your system: * which methods you used and how you implemented them (justify your choice and make your descriptions clear) - the report of your testing your system: * description of your testing; report of the results; * does your system meet your expectations? why? - the description of a toy application, and how this toy application relates to a real-world problem (and which problem); - a discussion of what went wrong and why: self-criticism; - a conclusion: synthesis of your work, future work directions (what you would do if you were given more time on your project). ----------