Problèmes fondamentaux de l’informatique

Slides:



Advertisements
Présentations similaires
Negation… I go… I do not go. = Je vais… Je ne vais pas.
Advertisements

THE ADJECTIVES: BEAU, NOUVEAU AND VIEUX 1.
Les Mots Interrogatifs
2 La négation Les normes: –Communication 1.2 –Comparisons 4.1:
WALT: how to talk about your timetable
Les verbes réfléchis.
Making PowerPoint Slides Avoiding the Pitfalls of Bad Slides.
Traffic Sign Recognition Jacob Carlson Sean St. Onge Advisor: Dr. Thomas L. Stewart.
IP Multicast Text available on
Template Provided By Genigraphics – Replace This Text With Your Title John Smith, MD 1 ; Jane Doe, PhD 2 ; Frederick Smith, MD, PhD 1,2 1.
The passé composé with être
Formules en 2 étapes 1MPES4
Êtes-vous terrorisés par la pollution ?
AP Examen Pratique commentaires
There exists more negatives than just Ne…pas
Speaking Exam Preparation
Imparfait v. Passé Composé
Direct & Indirect Object Pronouns (D.O.Ps & I.O.Ps)
LES PRONOMS D’OBJET DIRECT
Venir de.
IDL_IDL bridge The IDL_IDLBridge object class allows an IDL session to create and control other IDL sessions, each of which runs as a separate process.
l y a which we have already learned means “there is/are l y a which we have already learned means “there is/are.” When we put a measure of time.
Reflective verbs or Pronominal verbs
Quantum Computer A New Era of Future Computing Ahmed WAFDI ??????
mardi, le douze septembre
Je pars Tu pars Il/Elle/On part Nous partons Vous partez
Français I – Leçon 6A Structures
French 1st Level The Weather.
Year 7 French Homework Mr MWAMBA Autumn term 2
Theme One Speaking Questions
There are so many types of sports. For example-: Basketball,volleyball, cricket, badminton, table tennis, football, lawn tennis etc.
© 2004 Prentice-Hall, Inc.Chap 4-1 Basic Business Statistics (9 th Edition) Chapter 4 Basic Probability.
F RIENDS AND FRIENDSHIP Project by: POPA BIANCA IONELA.
The passé composé with être
The Great debate Day 2: In which we intone, persuade (again) and we begin developing vocabulary for debate and argumentation.
Leadership Styles Mrs. Keith Main Types of Leadership Styles 1.The Autocratic or Authoritarian Leader 2.The Democratic or Participative Leader.
Psychological Approaches to Dreams why people dream? five major approaches to psychology: Psychodynamic, humanistic, behavioral, cognitive, and neuroscience.
Lect12EEE 2021 Differential Equation Solutions of Transient Circuits Dr. Holbert March 3, 2008.
Essai
Le soir Objectifs: Talking about what you do in the evening
L'amour ne demande pas pourquoi Défilement automatique
Qu’est-ce que tu as dans ta trousse?
Bienvenue Au monde des Pronoms.
Imparfait v. Passé Composé
Imparfait v. Passé Composé
Quelle est la date aujourd’hui?
Pour commencer…Corrige les erreurs
Les Couleurs.
Year 7 French Homework Mr Mwamba Autumn term 2
Aim: To learn about the use and formation of direct / indirect speech
Qu’est-ce que tu as dans ta trousse?
Révision – Phrases Importantes
Roots of a Polynomial: Root of a polynomial is the value of the independent variable at which the polynomial intersects the horizontal axis (the function.
Quelle est la date aujourd’hui?
Question formation In English, you can change a statement into a question by adding a helping verb (auxiliary): does he sing? do we sing? did they sing.
Le verbe « être » au pluriel
WRITING A PROS AND CONS ESSAY. Instructions 1. Begin your essay by introducing your topic Explaining that you are exploring the advantages and disadvantages.
What’s the weather like?
Making PowerPoint Slides Avoiding the Pitfalls of Bad Slides.
Les formes et les couleurs
Task while waiting for everyone to finish writing the WALT and WILF
les instructions Bonjour la classe, sortez vos affaires
Avoiding the Pitfalls of Bad Slides Tips to be Covered Outlines Slide Structure Fonts Colour Background Graphs Spelling and Grammar Conclusions Questions.
Les Mots Intérrogatifs
Les opinions Les opinions = Opinions. In this lesson pupils will learn to understand and give their own opinions about singular items.
Les couleurs.
3rd February, 2016 Alstom Controlling. © ALSTOM All rights reserved. Information contained in this document is indicative only. No representation.
Prepositions of Location
Les Jours de la Semaine ©  Copyright Kapow! 2017.
IMPROVING PF’s M&E APPROACH AND LEARNING STRATEGY Sylvain N’CHO M&E Manager IPA-Cote d’Ivoire.
Transcription de la présentation:

Problèmes fondamentaux de l’informatique w3.uqo.ca/luigi

Problèmes fondamentaux L’informatique et le génie informatique sont conditionnés par des problèmes fondamentaux d’indécidabilité Nous pouvons écrire un programme pour décider si un programme n’a pas d’erreurs de syntaxe Mais nous ne pouvons pas écrire un programme pour décider si un programme calcule le résultat désiré L’autre solution, de simplement exécuter le programme et voir le résultat, n’est pas complètement satisfaisante, car Nous ne pouvons pas essayer toutes les valeurs d’entrée possibles Un programme pourrait prendre un jour, un mois, un an pour rendre son résultat, il pourra donner un résultat ou pourrait ne jamais le rendre… INF6001 Indécidabilité

A very old puzzle Epimenides Paradox (6th Century BC), modified by Eubulides (4th Century BC) Certain statements can neither be true nor false ‘The statement written on this line is false’ is this statement true or false? If this statement is true, then it cannot be false If this statement is false, then it cannot be true Other examples: I am lying – cannot be true nor false Everyone is lying… Should a library catalogue include the catalogue itself as one of its books? It should, and it shouldn’t INF6001 Indécidabilité

Type theory A solution for this problem was proposed around 1910 by logician/philosopher Bertrand Russell. He postulated a type theory, which essentially makes these statements illegal They cause a type-checking error, just as the one your compiler will generate if you apply a function to the wrong arguments However this solution is still a matter of debate: One cannot simply outlaw all applications of a statement to itself: For example, there is nothing wrong with this statement: Cette phrase est écrite en français Similarly, one cannot outlaw applications of a function or a program to itself: One can apply a syntax checker program to the program itself INF6001 Indécidabilité

Problèmes indécidables en informatique L’application d’idées semblables en informatique conduit à la conclusion que: Certains problèmes sont indécidables C’est-à-dire, il n’est pas possible d’écrire un programme pour les résoudre Un programme pour résoudre un problème de ce type est logiquement impossible Si le programme existait, une contradiction logique en dériverait Nous verrons que la manière d’arriver à une telle preuve est essentiellement: Supposons qu’un tel programme existe, et appliquons-le à lui-même (diagonalisation!) Ceci conduit à une contradiction, donc le programme ne peut pas exister INF6001 Indécidabilité

Undecidability results (well before the invention of computers!) In the early 1930s, it was discovered that there are mathematical problems that cannot be solved by any program Such problems are called undecidable The first undecidability results were proven by Gödel in a paper published in 1931 (undecidability of predicate calculus with number theory) This is often cited as one of the major scientific discoveries of the 20th century Alan Turing proved the undecidability result for the halting of Turing machines a paper published in 1936 His proof was quite complicated, nowadays we can understand it in simple terms INF6001 Indécidabilité

The main idea: diagonalization The main issue with Epimenides/Eubulides paradox is that it allowed a statement to refer to itself. This process of applying a function to itself is called diagonalization Programs can be applied to themselves: for example, a syntax checker program SC can be applied to itself, to decide if SC is free of syntax errors: SC(SC) will return either true or false, no problem… But in some cases, thinking of the consequences of applying a program P to itself leads to the conclusion that program P cannot exist, cannot be written This is expressed by saying that the problem that P is supposed to solve is undecidable INF6001 Indécidabilité

Une preuve simplifiée du théorème d’indécidabilité On peut donner à un ordinateur un programme qui répond VRAI ou FAUX à une affirmation qu'on lui donne, sans jamais se tromper. La question est de savoir: Si un humain est capable de savoir si la phrase qu'il donne à la machine est vraie ou fausse, la machine est-elle aussi capable de découvrir la vérité ? Gödel donne alors la phrase suivante à la machine: "La machine ne répondra jamais VRAI à cette phrase" Que fait la machine ? Si elle répond VRAI, elle affirme que "La machine ne répondra jamais VRAI à cette phrase" est une affirmation vraie. Or ce n'est pas le cas, puisqu'elle vient justement de répondre VRAI à la phrase. Si la machine ne se trompe pas, elle ne peut donc pas répondre VRAI.   Si elle répond FAUX, elle affirme que "La machine ne répondra jamais VRAI à cette phrase" est une affirmation fausse. Or l'affirmation n'est pas fausse puisque la machine vient justement de répondre FAUX. Si la machine ne se trompe pas, elle ne peut donc pas répondre FAUX. Et nous, pouvons nous répondre à la question ?... La phrase dit : "La machine ne répondra jamais VRAI à cette phrase". Nous venons de voir qu'en effet, la machine ne peut pas répondre VRAI. Nous savons donc que cette phrase est une vérité. Pourtant la machine ne pourra pas la découvrir... Adapté de http://membres.lycos.fr/godel/theoreme.htm (accédé janvier 2004) INF6001 Indécidabilité

Application to problems of software engineering: Turing’s Halting problem Suppose one could write a program Stops(Z,X) to decide whether an arbitrary program Z will stop, if given as input the string X Using Stops we can define a function Loop which uses Stops to determine whether or not another function W halts when given its own text as input If W stops then Loop enters an infinite loop, otherwise Loop stops Loop(W) = if Stops(W,W) then while (true) {} else stop Then we run Loop(Loop), i.e. if Stops(Loop,Loop) then while (true) {} else stop INF6001 Indécidabilité

The contradiction If Stops(Loop,Loop) returns true then: From the definition of Stops, Loop stops on input Loop From the definition of Loop, Loop loops on input Loop If Stops(Loop,Loop) returns false then: From the definition of Stops, Loop loops on input Loop From the definition of Loop, Loop stops on input Loop Contradiction in both cases! No such program can exist, the program Stops cannot be written INF6001 Indécidabilité

Consequences By static analysis of an arbitrary program it is impossible to determine, in general If the program has an infinite loop If it has a deadlock Whether a test in the program will give true or false If an arbitrary program path can ever be executed If an arbitrary statement can ever be executed If a variable will ever be used Etc., etc. INF6001 Indécidabilité

Mais il ne faut pas être trop pessimistes… Les questions mentionnées ne peuvent pas être intégralement résolues de manière générale Ceci ne veut pas dire qu’elles ne puissent pas être résolues dans un grand nombre de cas particuliers, par des algorithmes spécifiques à ces cas particuliers C’est un des sujets de l’informatique et du génie informatique… INF6001 Indécidabilité

Décidabilité et complexité Il est important de ne pas confondre les problèmes indécidable et les problèmes à haut niveau de complexité Un problème indécidable est un problème logiquement impossible à résoudre, ni avec un ordinateur présent ni futur (à moins de trouver une façon différente de le formuler) Aucun algorithme ne peut exister Un problème à haute complexité (par exemple, exponentiel) est un problème qui demande des calculs laborieux Des algorithmes existent Le calcul peut être effectué sur des petits ensembles Le calcul pourrait devenir pratique avec des ordinateurs futurs, p.ex. quantiques, si jamais ils deviendront réalité INF6001 Indécidabilité