Deux petits énervements lié à ma recherche

Un petit post pour faire part de deux énervements que j'ai dans ma recherche. Normalement, j'espère que ça sera compréhensible si vous avez au moins un niveau BAC S, pourvu que vous ne soyez pas allergique aux mathématiques[1] et que vous ayez déjà vu le fait qu'un nombre, quand on l'écrit, c'est rien d'autre qu'une suite de chiffre, où la position est importante. Et qu'un nombre peut avoir une infinité de chiffre après la virgule[2].

Notes

[1] Je suppose qu'à force de parler d'autres choses que de science, j'ai pu avoir des lecteurs qui n'aiment pas les mathématiques. Aussi étrange que cette idée me soit, soyez les bienvenus !

[2] Et pour ceux qui s'y connaissent un peu en info théorique, niveau L2 à Paris Diderot, quand je parlerai de langage, en réalité je veux parler de l'automate minimal déterministe qui accepte ce langage.

D'abord, j'ai du mal avec le fait qu'on parle de vecteur pour un tuple d'élément qui n'est même pas un espace vectoriel. Pour moi, un vecteur d'entier positif, ça s'appelle un uplet. Même si je dirai vecteur dans mes papiers, parce que je préfère éviter qu'on me refuse un papier car j'utilise une notation sensée et pas une notation standard.


Je pense que je ne vous apprendrai rien si je vous dis que 7, 07 et 007 représentent le même nombre. Un entier positif naturel, égal à 7, ou a 10x0+7 ou encore à 10²x0+10x0+7. Ces trois écritures représentant ce que signifie, mathématiquement, 7, 07 et 007, qui sont trois mots différents. Je peux rajouter aussi que ce nombre est aussi égal à 6,9999... avec une infinité de 9 à droite. C'est peut-être un sujet de jeu/étonnement/débat pour les débutants en math, ou certains qui utilisent des définitions non standard des écritures des nombres, mais c'est juste une application du fait que 7, c'est la limite, quand n tend vers l'infini, de 6+(somme pour i allant de 1 à n de 9*10 puissance -i)[1]. Je sais que j'avais été très surpris quand, au collège je crois, la prof nous avait dit:
% 6,9999... = 1x 6,9999...= ((10-1)/9)x6,9999.... = ((10-1)6,9999...)/9 = (69,999999...-6,999999...)/9 = 63/9 = 7.

Dans mon travail, je m'intéresse énormément à l'écriture des nombres. Ou plus précisément, pour certains ensemble de nombre, à regarder l'ensemble des écritures des nombres de cet ensemble. C'est ce qu'on appelle un Language de Réels, LR. Un language, c'est un ensemble de mot. Ici, il se trouve que ces mots sont des nombres, représentés comme une suite de chiffre. C'est un peu confusant au début, mais on s'y fait.

Puisqu'on regarde des langages qui est un ensemble de représentation d'un ensemble de nombre, si mon language contient 7 on sait automatiquement qu'il contient aussi 07 et 007. Ou plus précisément, puisque je lis des réels, s'il contient 7,0000... on sait qu'il contient 07,000... et et 007,0000... et aussi 6,99999.... et 06,999... Bref, mon language aura de bonnes propriétés, on pourra faire de joli mathématiques dessus et obtenir une théorie relativement sympathique. Pour dire ça autrement, un Langage de Réel est un langage qui contient toutes les représentation des nombres d'un sous ensemble des réels positif.


Sauf que !

Je suis informaticien moi, pas mathématicien. Alors, cette théorie, c'est bien jolie, mais qu'est-ce que j'en fais ? comment je me débrouille avec ? Je veux écrire des algorithmes, je veux faire des choses avec ces langages de nombres. Des trucs d'apparences simples pour commencer. Par exemple, j'aimerai savoir dire si l'ensemble des nombres d'un Langage de Réel est de la forme {n x k | k un entier positif}. Et dans ce cas, trouver la valeur de n. Et mine de rien, c'est un problème compliqué, et aujourd'hui, je n'ai aucune idée de comment le résoudre efficacement. Et dire que je sais le résoudre inefficacement n'intéressera pas grand monde.

Et en fait, même si j'ai un algorithme qui est capable de répondre à cette question, comment est-ce que je sais si mon entrée est effectivement un Langage de Réel ? Car il se peut que l'algorithme utilise la jolie théorie développée pour les Langages de Réels, et que sur un autre langage, ça fasse une opération interdite, comme une division par 0 ou tenter d'accéder à quelque chose qui n'existe pas[2]. Le souci est qu'à ma connaissance, aucun des auteurs ayant considéré les Languages de Réels n'a pensé à dire comment vérifier si un langage est bien un Langage de Réel. J'ai trouvé une solution, mais elle est parfois plus compliqué[3] que l'algorithme qui m'intéresse à la base[4]. C'est quand même dommage d'avoir un algorithme où l'on doit passer plus de temps à vérifier si l'entrée satisfait les hypothèse qu'à effectivement appliquer l'algorithme.

Alors parfois, j'ai envie de dire: tant pis, n'utilisons pas cette bonne théorie, et prenons n'importe quel langage en entrée. C'est rare que ça marche, car avoir une théorie pour m'appuyer, c'est utile, mais dans quelques cas, ça passe. Et parfois Pas Du Tout. Ainsi, si je choisi l'ensemble des multiples de 7, j'aurai le droit d'avoir un langage qui contient {7, 014, 0000021, 28, 000000000000000000000000000000000000035, ...} et aussi {7, 14, 21, 28, 000000000000000000000000000000000000035, ...}. On pourrait dire que le nombre de 0 à gauche du ième nombre code une suite hyper compliqué, bien plus compliqué que le problème que je veux résoudre. Et puis, un truc tout bête: je ne serai même plus capable de regarder simplement si deux Langages de Réels sont égaux en regardant simplement si leur description est la même, puisque l'égalité de la syntaxe serait différente de l'égalité qui m'intéresse vraiment, celle des nombres. Et mine de rien, avoir le droit à utiliser le symbole =, c'est souvent utile en informatique.


Ce qui est un peu énervant, c'est que tout ce que je viens de vous dire - Enfin tout sauf le fait que je n'aime pas le mot vecteur - je dois l'écrire. Et l'écrire de manière plus formelle, en anglais et en mathématique. Parce que vu que j'ai décidé de quitter un peu la théorie habituelle, je dois justifier pourquoi je considère les Languages de Réels, mais aussi que je m'autorise des Langages qui ne sont pas «de Réels». Et c'est long[5].

Notes

[1] Je n'ai pas trouvé de plugin dotclear pour les maths la dernière fois que j'ai cherché, hélas

[2] nullPointerException

[3] quadratique

[4] ici, un algorithme linéaire

[5] Mais pas 200 pages non plus

Commentaires

1. Le lundi 26 septembre 2016, 11:52 par Typhon

Je suis pas sûr de comprendre ta définition d'un langage de réesl. C'est un langage qui contient tout les réels, ou un langage qui contient toutes les représentation possibles d'un ensemble quelconque de nombres réels ?

2. Le lundi 26 septembre 2016, 21:19 par Arthur Milchior

Toutes les représentations possible des nombres d'un ensemble quelconque de nombres. Je modifier. Merci

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet