
Bonjour,
Je précise que je n'ai émis aucun avis sur le sujet principal de cette discussion, je n'ai réagis qu'à une affirmation ("Ce serait inutile") qui, au regard de mon expérience, m'a semblée fausse.
Pour répondre directement, les modification étaient programmées, mais je pourrais très facilement envisager des cas ou les modifications auraient été aléatoires (dans certaines bornes), par exemple dans du traitement d'images (il y a une éternité, avec des scanners monochromes, une puissance toute relative et des mémoires réduites).
Je suis Charlie.
J'affirme péremptoirement que toute affirmation péremptoire est fausse
Pour répondre directement, les modification étaient programmées, mais je pourrais très facilement envisager des cas ou les modifications auraient été aléatoires (dans certaines bornes), par exemple dans du traitement d'images (il y a une éternité, avec des scanners monochromes, une puissance toute relative et des mémoires réduites).
les modifications programmées , c'est l'homme qui les fait .
les modifications aléatoires , c'est le programme qui les fait , c'est une bonne étape pour son indépendance .
Alan Turing a étendu son concept de machine aux programmes randomisés (faire x avec probabilité p1, faire y avec probabilité p2, etc). Ça ne permet pas un libre-arbitre total mais c'est mieux que rien.Bonjour,
Je précise que je n'ai émis aucun avis sur le sujet principal de cette discussion, je n'ai réagis qu'à une affirmation ("Ce serait inutile") qui, au regard de mon expérience, m'a semblée fausse.
Pour répondre directement, les modification étaient programmées, mais je pourrais très facilement envisager des cas ou les modifications auraient été aléatoires (dans certaines bornes), par exemple dans du traitement d'images (il y a une éternité, avec des scanners monochromes, une puissance toute relative et des mémoires réduites).
N'empêche, un programme peut échapper à son concepteur grâce à ce mécanisme. Et beaucoup de questions sur les programmes sont indécidables, probabilités ou pas. Va-t-il s'arrêter, donner une réponse originale ? On n'en sait rien. Faut l'exécuter pour savoir.
Dans la mesure où rien dans l'univers n'est prouvé comme ayant le "libre arbitre total", ça place ces programmes au même niveau que le reste.
Je profite de cette phrase pour rappeler que les programmes s'arrêtant ne sont qu'une catégorie restreinte des programmes existants.Et beaucoup de questions sur les programmes sont indécidables, probabilités ou pas. Va-t-il s'arrêter, donner une réponse originale ? On n'en sait rien. Faut l'exécuter pour savoir.
De manière générale, Turing n'est pas utilisable pour tout ce qui concerne la robotique et les traitements continus: dans ces situations, il n'y a pas de fin, et il n'y a pas de résultat.
Il n'y a qu'une continuité de positions.
La continuité du monde réel est une illusion. Il se déroule des phénomènes discrets à l'échelle quantique. Plus formellement, la thèse de Church-Turing dit que tout modèle de calcul est équivalent à une machine de Turing. Sinon il pourrait résoudre des problèmes défiant l'entendement physique (cf. hypercalcul)Je profite de cette phrase pour rappeler que les programmes s'arrêtant ne sont qu'une catégorie restreinte des programmes existants.
De manière générale, Turing n'est pas utilisable pour tout ce qui concerne la robotique et les traitements continus: dans ces situations, il n'y a pas de fin, et il n'y a pas de résultat.
Il n'y a qu'une continuité de positions.
De plus, les machines de Turing peuvent recevoir et émettre des données à l'exécution. C'est ce que font les processeurs des robots.
A te lire on peut effectivement se poser la question de ou se trouve l'illusion. Ne confonds tu pas illusion et idéalisation ? Tout comme la notion de symétrie, une idéalisation qui nous est bien utile car très féconde pour son usage prédictif.
Patrick
Je ne confonds pas les deux. Beaucoup de gens croient sincèrement que le temps et l'espace sont continus (nom dénombrable). Il s'agit bien d'une illusion de nos sens.
D'un autre côté, certains calculs sont plus aisés dans un espace continu. Il s'agit alors d'une idéalisation mathématique. C'est ce que je voulais dire.
D'autres croient sincèrement qu'ils sont de nature discrète. Il s'agit bien d'une chosification par nos sens.
Patrick
Oui, les physiciens des boucles. Ils n'ont pas encore trouvé la bonne quantification de l'espace-temps. Mais je suis déjà convaincu de la nature discrète de l'Univers. Sinon, c'est qu'il existe une forme d’indéterminisme pire que le hasard, le libre-arbitre total.
Pour rester pragmatique :
les nombres entiers sont par définitions de nature discontinue.
Le temps et l'espace sont par nature continue.
L'illusion étant de croire qu'un nombre rationnel ou décimal, qui est par nature discontinue ( exemple : 1/3 =0,333333 métre), puisse être la représentation réelle de la mesure d'un espace continu. Il ne s'agit en fait que d'une construction mathématique de nature discontinue qui tente seulement d'approcher le continu .....ni plus, ni moins.
PS: Le fait de pouvoir dénombrer n'a rien avoir avec la nature continue/discontinue
C'est un bon test éliminatoire. Si les points d'un espace sont dénombrables, on prédit l'existence de "trous". Par exemple, la racine carré de deux est irrationnel (1.41...). On en déduit que l'intervalle [1, 2] n'est pas continu sur l'espace des rationnels.Pour rester pragmatique :
les nombres entiers sont par définitions de nature discontinue.
Le temps et l'espace sont par nature continue.
L'illusion étant de croire qu'un nombre rationnel ou décimal, qui est par nature discontinue ( exemple : 1/3 =0,333333 métre), puisse être la représentation réelle de la mesure d'un espace continu. Il ne s'agit en fait que d'une construction mathématique de nature discontinue qui tente seulement d'approcher le continu .....ni plus, ni moins.
PS: Le fait de pouvoir dénombrer n'a rien avoir avec la nature continue/discontinue
Je pense qu'il y a comme qui dirait un léger courant d'air.
Soyons clair et simple l'espace PHYSIQUE est caractérisé entre autre par sa distance entre 2 points, plus communément appelée :longueur.L'intervalle entre c'est 2 points est purement continue (sinon cela veut dire qu'il y aurait des trous dans l'espace PHYSIQUE. Dans ce cas merci de m'indiquer la nature de ces trous). Par contre la mesure donc la représentation numérique de cette opération peut donner une valeur entière ou avec décimales.
Si ton but est de t'appuyer sur un exemple algébrique pour conclure que l'espace physique serait discontinu ....merci de revoir ta copie.
Déjà, il est impossible de mesurer des longueurs en dessous de l'échelle de Planck (10^-34). Et la mécanique quantique montre qu'une particule n'a pas de position déterminée dans l'espace. Elle peut effectuer des sauts par effet tunnel.Je pense qu'il y a comme qui dirait un léger courant d'air.
Soyons clair et simple l'espace PHYSIQUE est caractérisé entre autre par sa distance entre 2 points, plus communément appelée :longueur.L'intervalle entre c'est 2 points est purement continue (sinon cela veut dire qu'il y aurait des trous dans l'espace PHYSIQUE. Dans ce cas merci de m'indiquer la nature de ces trous). Par contre la mesure donc la représentation numérique de cette opération peut donner une valeur entière ou avec décimales.
Si ton but est de t'appuyer sur un exemple algébrique pour conclure que l'espace physique serait discontinu ....merci de revoir ta copie.
Mieux, certains calculs de gravité quantique considèrent des grains d'espace-temps. C'est un indice supplémentaire de la nature discontinue de l'Univers.
D'un point de vue algébrique, un espace rationnel contient une infinité de trous. N'empêche, on peut les approcher d'aussi près qu'on veut. C'est ça que tu as du mal à comprendre.
Manque de chance cette remarque ironique tombe à plat. Le fait qu'à un niveau certes infime l'espace puisse être discontinu n’implique nullement qu'il y aurait des trous... car dire trou c'est dire espace, donc espace entre les "quanta" (j'emploie ce mot dans un sens imagé sans rapport avec le sens actuel) d'espace. Or que serait cet espace entre les éléments d'espace ?
Alors j'image 4MOLLE triomphant en pensant que ce raisonnement prouve l'absurdité d'un espace discontinu. Malheureusement pour lui il existe des approches théoriques, certes spéculatives pour le moment mais très sérieuses dans lesquelles l'espace et/ou le temps sont discontinus.
Dernière remarque : peut-être serait-il bon de ne pas mélanger continu/discontinu en mathématique et continu/discontinu en physique de l'espace-temps. Je trouve que cela embrouille plus qu'autre chose par une analogie qui me semble fausse. Il faut donc revenir à ce qui est strictement l'objet de la discussion.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
Cette phrase n'a pas vraiment de sens.
On parle d'un programme qui se modifie. Il n'a donc jamais d'état final. Ce n'est pas "le même programme" que l'on peut écrire, mais "les mêmes programmes" (le pluriel pouvant décrire des centaines de milliers de versions de programme différentes).
Par ailleurs "on" (humain) ne pourrait pas écrire ces programmes car ils n'ont en général pas de sens pour l'homme: certains sont justement construits pour dépasser les limites de l'homme, et trouver (notamment grace au hasard) des voies que la réflexion ne peut pas aborder.
Je ne suis pas sur que tu maitrises tant "l'informatique fondamentale". Le fait qu'un langage est Turing-Complet signifie qu'il peut faire tout ce qu'une machine de Turing peut faire, mais pas qu'il se limite à cela.Ils sont tous deux Turing-Complet. Eh oui je parle d'informatique fondamentale.
Soit tu n'as pas compris la phrase, soit tu la sors volontairement de son contexte.
J'explique au cas où on serait dans la première situation:
traitement continu = traitement qui commence mais n'a pas d'état de fin défini. Il fonctionne en permanence, il n'a pas d'état final (prévu).
Mieux vaut éviter de parler de machine de Turing quand on parle robotique.Plus formellement, la thèse de Church-Turing dit que tout modèle de calcul est équivalent à une machine de Turing.
Les machines de Turing concernent les algorithmes, pas les programmes, et encore moins les programmes "temps-réel".
Les machines de Turing ne peuvent pas gérer le temps, ni les interruptions, ni les traitements parallèles (une tentative pour adapter le concept au parallélisme, mais il ne maintient pas les déductions applicables aux machines de Turing simples)
Ils font bien plus.De plus, les machines de Turing peuvent recevoir et émettre des données à l'exécution. C'est ce que font les processeurs des robots.
Et en particulier, ils dépendent de facteurs physiques (température et temps en particulier) contrairement à une machine de Turing.
J'ai l'impression que tu butes sur la programmation système. Je me trompe ?traitement continu = traitement qui commence mais n'a pas d'état de fin défini. Il fonctionne en permanence, il n'a pas d'état final (prévu).
Mieux vaut éviter de parler de machine de Turing quand on parle robotique.
Les machines de Turing concernent les algorithmes, pas les programmes, et encore moins les programmes "temps-réel".
Les machines de Turing ne peuvent pas gérer le temps, ni les interruptions, ni les traitements parallèles (une tentative pour adapter le concept au parallélisme, mais il ne maintient pas les déductions applicables aux machines de Turing simples)
Ils font bien plus.
Et en particulier, ils dépendent de facteurs physiques (température et temps en particulier) contrairement à une machine de Turing.
1/ Pour gérer la continuité au sens du temps infini, on fait un programme qui ne s'arrête jamais. C'est pas interdit que je sache.
while(true)
{
in = lire();
out = traitement(in);
ecrire(out);
}
2/ Pour gérer une interruption, on donne une illusion de parallélisme via le concept de Thread. Ça peut se faire via une machine virtuelle qui interprète un code exécutable. Il lance deux threads entrelacés, l'un qui surveille les interruptions, l'autre qui réalise les traitements. On peut ajouter une horloge pour mesurer le temps qui s'écoule. Facile
while(true)
{
interrupteur.execute(1); //un pas de temps à la fois
traitement.execute(1);
horloge.execute(1);
}
3/ Pour dépendre de facteurs physiques continus, on échantillonne le signal via un convertisseur numerique-analogique.
Par contre, ta critique sur les langages Turing-Complet n'est pas claire ??? Je ne peux pas te répondre sur ce point.
J'ai plutôt l'impression que tu butes sur la compréhension de mon post.
Et surtout sur la définition d'une machine de Turing.
Une machine de Turing ne connait pas le concept de traitements parallèles. Tu ne peux pas coder de threads (sauf certains cas particulier de programmation parallèle où on force volontairement la synchronisation) dans une machine de Turing, encore moins de processus différents.
Sans blague ? Merci pour cette découverte.1/ Pour gérer la continuité au sens du temps infini, on fait un programme qui ne s'arrête jamais.
Ce que j'ai tenté de t'expliquer, c'est qu'un while(1) qui modifie en permanence son propre code ne peut pas être remplacé par 1 (et un seul) programme déclaratif qui ne se modifie pas.
Euh... non...2/ Pour gérer une interruption, on donne une illusion de parallélisme via le concept de Thread.
Les vrais interruptions, c'est au niveau hardware en général.
C'est pas une critique, je te dis juste que les langages de programmation ne se limitent pas aux capacité d'une machine de Turing pour aller plus loin et offrir des possibilités qu'une machine de Turing ne peut pas atteindre.Par contre, ta critique sur les langages Turing-Complet n'est pas claire ??? Je ne peux pas te répondre sur ce point.
Autrement dit, certaines conclusions valables pour une machine de Turing ne sont pas valables pour un ordinateur/programme.
Par exemple:
Ceci est faux.Se modifier soit-même n'est pas la solution miracle au libre-arbitre.
C'est équivalent à une fonction statique qui prend en paramètre l'historique des entrées.
y = f(x1, ..., xn).
Enfin, ça peut être vrai si l'une des variables de ta fonction contient l'état du "monde" (environnement physique immédiat ou proche).
Ou alors, si tu prends une sous partie des programmes existants pour te concentrer sur les plus simples: ceux qui n'ont aucun parallélismes, ou un parallélisme synchronisé.
Pour les autres, l'état du "monde" est indispensable.
Par ailleurs, j'attends toujours un argument permettant de dire que nous ne sommes pas (nous, humains) une "fonction statique qui prend en paramètre l'historique des entrées"
Déjà, une machine de Turing est un modèle de calcul. Rien à voir avec les actions physiques du type capteur/effecteur. Il ne s'agit que de traitement d'informations.C'est pas une critique, je te dis juste que les langages de programmation ne se limitent pas aux capacité d'une machine de Turing pour aller plus loin et offrir des possibilités qu'une machine de Turing ne peut pas atteindre.
Autrement dit, certaines conclusions valables pour une machine de Turing ne sont pas valables pour un ordinateur/programme.
Ce modèle permet un questionnement théorique: quelles sont les fonctions calculables avec telle ressource en temps-mémoire-processeur ? Par exemple, il est prouvé qu'on peut trier un tableau en temps O(log n), espace O(1) et O(n^2) processeurs.
Ceci dit, il faut savoir ce qu'on veut calculer avant d'utiliser un tel modèle.
- Que veux-t-on faire ? Créer un programme doté de libre-arbitre.
- Comment le tester ? On lui pose des questions pour s'en convaincre.
Le programme est donc une fonction qui prend en paramètre un message et retourne un autre message. C'est tout simple.
Là-dessus, le modèle de Turing nous dit qu'une fonction est programmable si sa complexité est finie. Eh oui, il existe des fonctions non programmables comme le castor affairé.
Je disais plus haut qu'un programme est une fonction. Deux cas de figure peuvent se produire:j'attends toujours un argument permettant de dire que nous ne sommes pas (nous, humains) une "fonction statique qui prend en paramètre l'historique des entrées"
- soit il est sans mémoire. Il répond pareil aux mêmes questions.
- soit il a une mémoire. Il tient compte des échanges passés.
Bien sûr, l'Homme appartient à la deuxième catégorie. Il réagit en fonction des événements passés. Est-ce la marque de fabrique du libre-arbitre ? Difficile à dire.
Par contre, les questions de parallélisme sont HS. Je ne vois pas l’intérêt de compliquer le débat avec du libre-arbitre temps-réel![]()
Il y a t-il un lien entre représentation et traitement de l'information et la calculabilité ?
Patrick
Merci pour le lien, je traite un gros volume d'informations issus de satellites. On s'appuie sur le métalangage XML pour faire des conversions de format.Il y a t-il un lien entre représentation et traitement de l'information et la calculabilité ?
Patrick
Ceci dit, la calculabilité se pose pour certains traitements théoriques. Ainsi, le compresseur parfait est prouvé non calculable au sens de Turing. Il est impossible à programmer quelque soit la puissance de calcul à disposition.
@Exciton: il y a deux erreurs de raisonnement. Fais bien attention à ce qui suit:
Non. Ce modèle permet de répondre à la question: "quelles sont les fonctions calculables avec telle ressource en temps-mémoire-processeur par une machine de Turing ?"Déjà, une machine de Turing est un modèle de calcul. Rien à voir avec les actions physiques du type capteur/effecteur. Il ne s'agit que de traitement d'informations.
Ce modèle permet un questionnement théorique: quelles sont les fonctions calculables avec telle ressource en temps-mémoire-processeur ?
Un robot ou un ordinateur peut être volontairement bridé pour n'être pas plus qu'une machine de Turing. Dans ce cas tu as raison.
Mais un robot ou un ordinateur est naturellement davantage qu'une machine de Turing. Dans ce cas, ce modèle ne donne, dans le meilleur des cas, qu'une estimation pessimiste du potentiel du robot/ordinateur.
Il peut donc donner une réponse positive (ça peut faire XXX), mais en aucun cas une réponse négative (ça ne peut pas faire XXX) sur les capacités du robot/ordinateur.
Justement non.Le programme est donc une fonction qui prend en paramètre un message et retourne un autre message. C'est tout simple.
Quand on parle de libre arbitre, il n'y a pas une question => une réponse.
La deuxième catégorie est trop vague.Je disais plus haut qu'un programme est une fonction. Deux cas de figure peuvent se produire:
- soit il est sans mémoire. Il répond pareil aux mêmes questions.
- soit il a une mémoire. Il tient compte des échanges passés.
elle doit être découpée en deux autres catégories:
* pour des échanges passés donnés, une réponse unique est obtenable.
* pour des échanges passés donnés, plusieurs (voir une infinité) de réponses peuvent être obtenues. <= robot et humain peuvent se situer dans cette catégorie.
C'est au contraire essentiel pour écarter les propos sur le modèle de Turing qui est, lui, fréquemment HORS-SUJET quand on parle de robotique.Par contre, les questions de parallélisme sont HS. Je ne vois pas l’intérêt de compliquer le débat avec du libre-arbitre temps-réel![]()
Soyons précis. De quel potentiel robot/ordinateur veux-tu parler ? Et quels sont ses interfaces avec le monde extérieur ? Ce sera plus simple de vérifier ce qui est réalisable ou pas.@Exciton: il y a deux erreurs de raisonnement. Fais bien attention à ce qui suit:
Non. Ce modèle permet de répondre à la question: "quelles sont les fonctions calculables avec telle ressource en temps-mémoire-processeur par une machine de Turing ?"
Un robot ou un ordinateur peut être volontairement bridé pour n'être pas plus qu'une machine de Turing. Dans ce cas tu as raison.
Mais un robot ou un ordinateur est naturellement davantage qu'une machine de Turing. Dans ce cas, ce modèle ne donne, dans le meilleur des cas, qu'une estimation pessimiste du potentiel du robot/ordinateur.
Il peut donc donner une réponse positive (ça peut faire XXX), mais en aucun cas une réponse négative (ça ne peut pas faire XXX) sur les capacités du robot/ordinateur.
Je préfère pas m'avancer tant que ces réponses ne sont pas claires.
Ce n'est qu'un artefact des langages impératifs comme le C++. On peut réaliser le même programme sans effets de bord avec un style déclaratif. Ils sont tous deux Turing-Complet. Eh oui je parle d'informatique fondamentale.
Je te rejoins sur les systèmes interactifs tel qu'un robot qu'on envoie sur Mars. C'est obligatoire d'employer les langages à effets de bord dans ce cas de figure.
Je suis Charlie.
J'affirme péremptoirement que toute affirmation péremptoire est fausse
Je parlais d'inutilité pour notre débat. Se modifier soit-même n'est pas la solution miracle au libre-arbitre.
C'est équivalent à une fonction statique qui prend en paramètre l'historique des entrées.
y = f(x1, ..., xn).
Du coup, la mémoire du passé m'a l'air plus fondamentale que les modifications programmées![]()
Le moins que l'on puisse dire c'est que si c'est vraiment ce que vous vouliez dire, vous l'avez bien caché :
Mais bon, si finalement vous convenez qu'un programme peut modifier son propre code et que ce n'est pas forcément inutile, nous sommes d'accord.Envoyé par exciton
Ben je suis informaticien. Je peux t'assurer que le code logiciel est stable dans le temps. Ce sont les entrées et les cases mémoires qui varient.
Cependant, il est vrai que la mémoire d'un ordinateur contient le programme, les entrées et les paramètres internes sur un seul support. Mais le programme évite de modifier son propre code. Ce serait inutile
Je suis Charlie.
J'affirme péremptoirement que toute affirmation péremptoire est fausse
Je ne sais pas. Êtes-vous d'accord qu'une modification programmée est comparable à une mémoire du passé ?
Par ailleurs, il n'est pas prouvé qu'un code mutant est plus performant qu'un code statique. C'est peut-être lié à l'expérience du programmeur.
