Dernier message de la page précédente :
Si tu dis à une machine (ordinateur ou robot) "crée la variable tartempion et assigne-lui la valeur 100, (et plus tard), ajoute 12 à tartempion", elle ne comprendra évidemment pas. Alors tu vas utiliser un langage de programmation et écrire par exemple "var tartempion = 100 (et plus tard) tartempion += 12". Mais elle ne comprendra toujours pas ! Les langages de programmation courants, comme le C++, ainsi que les langages de script comme Javascript et Php, sont dits de haut niveau parce qu'ils se rapprochent du langage naturel. Ex : si (condition remplie) {faire ceci} sinon {faire cela}. Un programmeur lit son programme avec pratiquement la même aisance que de la prose. Mais pour la machine ça reste du chinois. Il faut ensuite compiler ce programme ou ce script (un script est plutôt interprété en temps réel), c'est-à-dire le traduire en langage machine (du code binaire pur et simple), pour que le processeur qui équipe la machine puisse le "comprendre", en fait l'exécuter. Mais l'humain ne le comprend alors plus. Un langage de programmation agit donc comme une interface entre l'homme et la machine, et le compilateur (ou l'interpréteur) représente le traducteur. Le langage de programmation de plus bas niveau est celui qui s'approche le plus du langage machine : c'est l'assembleur ; le langage de haut niveau est celui qui s'approche le plus du langage naturel.Ainsi, les algorithmes les plus sophistiqués sont au final réduits à un ensemble d'instructions codées en binaire, constitué d'une succession plus ou moins longue d'opérations élémentaires telles que +, -, ET, OU, etc. Un microprocesseur, et par voie de conséquence l'ordinateur ou le robot qu'il équipe, n'a nullement besoin d'être intelligent pour exécuter le programme sophistiqué conçu par le programmeur. Les quelques dizaines d'opérations qu'il est capable d'effectuer sont physiquement implémentées via le circuit imprimé et le câblage ; il n'a aucun besoin de comprendre quoi que ce soit, c'est de l'électronique à l'état brut.
L'intelligence que les profanes et les marchands attribuent à l'ordinateur ou au robot est donc bien en réalité celle du programmeur. C'est lui qui conçoit de A à Z ce que la machine exécutera, et ceci quel que soit le degré de complexité de la tâche qu'elle doit accomplir.
La seule chose qui soit possible est d'introduire le hasard (en réalité pseudo-hasard) dans le programme. Dans une situation donnée la machine pourra ainsi faire un choix aléatoire parmi ceux qui lui sont proposés. La marge de liberté qui lui est laissée sera donc intentionnelle et ne relèvera en aucune façon d'une forme quelconque d'intelligence de sa part. Il faut garder à l'esprit qu'aucun programmeur ne laisserait la machine exécuter quoi que ce soit qu'il n'ait pas prévu, car ça conduirait inévitablement à un bug, voire à un plantage. "Le programme a conduit à quelque chose qui n'était pas prévu, résultat d'une situation qui n'avait pas été envisagée", est la définition même du bug. Dans ce cas, le programmeur utilise un débogueur afin de suivre pas à pas ce que fait le programme, dans le but de comprendre pourquoi il conduit à cette situation inattendue. Plus un programme est complexe et plus il y a de chances pour que le programmeur ait à corriger des bugs par la suite (ils sont en général signalés par les utilisateurs), justement parce qu'il n'avait pas pensé à tout.20-sided-dice a écrit : ↑23 juin 2017, 20:58Ensuite oui, il est possible de coder un programme pour qu'il fasse quelque chose qui n'était pas prévu. Evidemment, si on laisse une certaine marge de liberté, le robot ne la dépassera pas, mais c'est possible.
Là où un joueur humain prévoit quelques coups à l'avance et en déduit la stratégie la plus bénéfique pour lui, l'ordinateur peut en prévoir beaucoup plus, ce qui lui assure une certaine supériorité. Contrairement au joueur qui sent intuitivement quel est le meilleur prochain coup, l'ordinateur se base sur un système de points. C'est donc tout simplement en faisant quelques additions qu'il trouve le meilleur prochain coup.20-sided-dice a écrit : ↑23 juin 2017, 20:58Il suffit de penser aux ordis ayant battu les champions mondiaux d'échecs, de dames, de go...
Ce n'est pas l'avis de tout le monde, et en tout cas pas le mien. Personne ne peut nier que le chimpanzé qui efface les neuf chiffres après avoir observé l'écran pendant 65/100ème de seconde est intelligent, pourtant il ne se livre à aucun raisonnement logique. Toujours l'indécrottable confusion entre pensée et conscience/intelligence...20-sided-dice a écrit : ↑23 juin 2017, 20:58je pense qu'il est possible de coder une vraie IA, puisque l'intelligence provient d'un raisonnement logique.
Définition du mot algorithme : "suite finie de règles et d’opérations élémentaires sur un nombre fini de données qui permet de résoudre une classe de problèmes". Tu veux sans doute dire que, non pas la pensée mais le raisonnement met en application des règles définies pour résoudre un problème donné. Certes, mais ce n'est pas de l'intelligence. Quant à la pensée elle-même elle est automatique, chaotique et répétitive, et peu de gens la maîtrisent.20-sided-dice a écrit : ↑23 juin 2017, 20:58Oserais-tu dire que nous pensons d'une manière non-algorithmique ?
La réaction de la pensée résulte d'un conditionnement. Les hindous ne pensent pas de la même manière que nous ou que les lapons, parce que leur culture a induit chez eux un conditionnement différent. De plus, chaque individu au sein d'une même population réagit et pense en fonction de son histoire personnelle, de ses goûts et de ses ambitions. Par exemple, nombre d'Africains mangent du singe, mais pas les Sénégalais, parce que pour eux c'est tabou. Il n'y a rien de logique là-dedans.20-sided-dice a écrit : ↑23 juin 2017, 20:58Et donc que notre réponse n'est pas prévisible, et n'obéit à aucun mécanisme logique ?