IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Mon algorithme de compression


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    CoeurDeLion
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : CoeurDeLion

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Par défaut Mon algorithme de compression
    Bonjour.

    J'ai une idée à vous proposer, je suis encore incapable de la réaliser par moi même avant tout je voudrais savoir ce que vous en pensez.

    Supposons que nous ayons une suite de T Chiffres, le système pourra s'adapter à n'importe quelle base.

    Nous allons chercher à enregistrer une information équivalente qui permette par la suite de retrouver la suite en question tout en diminuant la taille requise pour son écriture.

    Voici ce que je propose. Nous allons supposer que nous disposons d'un Algorithme qui permette de générer des équations qui admettent une seule solution qui est un nombre univers.

    Nous allons executer cet algorithme pour trouver ce nombre univers. Pour prendre un exemple nous supposerons que notre nombre univers est PI.

    On prend PI = 3.1415926535897932384626433832795028841...

    J'associe à notre nombre univers, PI En l'occurence une fonction F qui a toute séquence de chiffre associe la position du premier nombre de sa première occurence dans les décimales du nombre univers. Ici F(15) = 3 F(26) = 6 F(14) = 1... F(14159) = 1...

    Ainsi notre fonction est définie mais n'est pas bijective.

    Nous allons remédier à ce problème. Retenons d'abord l'équation dont notre nombre univers est solution. Commencons par faire des paquets de deux nombres et à écrire le nombre qui correspond ( Si on doit stocker 149253 on découpe notre nombre en paquets de deux : 14 92 53 et on applique F à chacun de ces paquets à savoir F(14) = 1 F(92) = 5 F(53) = 8 Ce qui fait que nous n'avons plus qu'à retenir : L'équation dont le nombre univers est solution le nombre de chiffres par paquets et la suite des valeurs de F. En essayant une infinité de nombre univers avec des chiffres par paquets de plus en plus grand nous finirons à mon avis systématiquement par trouver une façon plus courte de compresser notre suite de chiffres.

    Je voudrais mettre cela en place mais j'ai un problème. J'ignore TOTALEMENT comment créer des équations dont seuls des nombres univers sont solution. S'il vous plaît donnez moi votre avis

  2. #2
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Mon Algorithme De Compression
    Bonjour,

    Citation Envoyé par CoeurDeLion Voir le message
    ... J'ai une idée à vous proposer ... avant tout je voudrais savoir ce que vous en pensez ... Nous allons chercher à enregistrer une information équivalente qui permette par la suite de retrouver la suite en question tout en diminuant la taille requise pour son écriture ...
    On pressent ce qui est en cause: le rêve indestructible du tour de prestidigitation algorithmique, par lequel n'importe quel grand nombre pourrait être représenté par une courte séquence de caractères; c'est l'équivalent informatique du projet qui consiste à vouloir installer dans une 2CV une famille d'éléphants, belle-mère comprise ...

    Et naturellement, c'est là que ça se corse (sans que les belles-mères y soient pour quelque chose):

    Citation Envoyé par CoeurDeLion Voir le message
    ... Nous allons supposer que nous disposons d'un Algorithme qui permette de générer des équations qui admettent une seule solution qui est un nombre univers.

    Nous allons exécuter cet algorithme pour trouver ce nombre univers. Pour prendre un exemple nous supposerons que notre nombre univers est PI.

    On prend PI = 3.1415926535897932384626433832795028841...
    Qu'est-ce qu'un nombre univers ? Il est à craindre que la nuance incontestablement poétique de l'expression ne dissimule un flou rédhibitoire, et un projet inconsistant.
    Tu pars d'un nombre d'un nombre réel, non-entier, irrationnel et pire encore non-algébrique, dont la valeur exacte ne peut être ni entièrement mémorisée, ni restituée par un nombre fini d'instructions. L'ordinateur n'est sous ce rapport qu'un super-boublier, qui ne peut malheureusement traiter que des nombres entiers dans les limites finies de la mémoire disponible.

    Citation Envoyé par CoeurDeLion Voir le message
    ... Retenons d'abord l'équation dont notre nombre univers est solution. Commencons par faire des paquets de deux nombres et à écrire le nombre qui correspond ( Si on doit stocker 149253 on découpe notre nombre en paquets de deux : 14 92 53 et on applique F à chacun de ces paquets à savoir F(14) = 1 F(92) = 5 F(53) = 8 Ce qui fait que nous n'avons plus qu'à retenir : L'équation dont le nombre univers est solution le nombre de chiffres par paquets et la suite des valeurs de F. En essayant une infinité de nombres univers avec des chiffres par paquets de plus en plus grand nous finirons à mon avis systématiquement par trouver une façon plus courte de compresser notre suite de chiffres ...
    Un nombre univers comportant une infinité de chiffres conduira au stockage d'une infinité de paquets, et cela ne va pas s'arranger avec une une infinité de nombres univers ...
    Et s'il faut gérer des paquets de paquets, cela tourne franchement au cauchemar !
    As-tu songé un seul instant à l'espace mémoire requis par un tel projet ?
    Et aux obstacles parfois insurmontables qui se présentent lors de la recherche d'une solution entière, comportant un grand nombre de chiffres ?

    Citation Envoyé par CoeurDeLion Voir le message
    ... nous disposons d'un Algorithme qui permette de générer des équations qui admettent une seule solution qui est un nombre univers.
    Nous allons exécuter cet algorithme pour trouver ce nombre univers ...
    À coeur vaillant, rien d'impossible.

    C'est à la fin que survient un pressentiment de la situation:

    Citation Envoyé par CoeurDeLion Voir le message
    ... mais j'ai un problème. J'ignore TOTALEMENT comment créer des équations dont seuls des nombres univers sont solution ...
    Il n'y a malheureusement pas de procédé permettant de compresser une longue séquence quelconque de chiffres (ou données numériques), à fortiori lorsque sa taille est illimitée.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 283
    Par défaut
    Bonjour

    "CoeurDeLion" ? C'est "fanmanga" qui revient avec un nouveau pseudo ?

    Reprenons les bases :

    • tout en diminuant la taille requise pour son écriture.
      Les ordinateurs écrivent en binaire.
      Tu peux le déplorer mais c'est la réalité.
      Quelque soit la bijection que tu imagines, tu retomberas toujours sur un nombre binaire; car les ordinateurs sont binaires.
      Donc il n'y a pas de réduction de taille d'écriture.

    • Combien y a-t-il de fichier de taille n bits ?
      Réponse : 2n

      Combien y a-t-il de fichiers de taille inférieure à n ?
      Il faut faire la somme des quantités de fichiers de taille n-1 et n-2 et n-3 .... 3 et 2 et 1 et 0 ! Oui 0 !
      On obtient:
      Formule mathématique
      Réponse : 2n-1

      Que conclure ?
      Réponse : La compression absolue n'existe pas.
      Il y a moins de fichiers plus petit que de fichiers de taille initiale.

      Mais la compression existe ?
      Réponse: Oui!
      C'est tout l'art de naviguer entre l'existence de la compression et l'inexistence de la compression absolue, en désignant une élite des fichiers qui se compressera bien, pendant que les autres fichiers stagneront ou grossiront.
      On exploite une faille du fichier.
      Toujours.
      Par exemple, la redondance, la fréquence, l'information inutile, etc...

    • Quand aux nombres univers, on n'est déjà pas capable de prouver que pi est univers ...

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 201
    Par défaut
    On va le formuler autrement. La compression de nombres, c'est sans espoir. Alors que la compression de fichier, ça marche. Pourquoi ? Surprenant, vu que un fichier, informatiquement, ce n'est qu'une suite de nombres.

    On va se placer dans le codage ANSI, pour simplifier. Un fichier, c'est une suite de caractères, ou d'octets. Il existe 256 caractères, mais parmi ces 256, certains sont fréquemment utilisés, alors que les autres le sont beaucoup moins. En gros, les 26 lettres minuscules + 26 majuscules + les 10 chiffres + une trentaine d'autres symboles... ça fait en gros 80 caractères fréquemment utilisés, sur 256 possibles. En jouant là dessus, et en jouant sur les suites les plus fréquemment utilisées, on arrive à beaucoup compresser les fichiers. Quand je parle de suites, je dis que le caractère "H" est souvent précédé de "C", et rarement précédé de "X" ou "6". Ou je dis que la chaine "ent" est plus fréquente dans un texte en français que la chaine "x6u". Dans la compression de nombres (l'objectif de CoeurDeLion), on n'a pas ce phénomène ; on a a priori une répartition 'uniforme' des 10 chiffres.

    Comprendre comment fonctionnent les outils de compression 'classiques' serait une première étape utile pour CoeurDeLion.

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Quitte à utiliser le nombre univers PI, je propose un truc encore plus génial: simplement écrire un algo qui renvoie le couple (offset,longueur) dans l'écriture de PI qui correspond à la séquence à compresser.

    Par exemple, pour la séquence "2307816406286208998628034" l'algo renvoie simplement (64,25) car

    PI = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865...

    La forme compressé de "2307816406286208998628034" est donc "64;25", soit un taux de compression de 25%.
    C'est génial !!

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 201
    Par défaut
    @PseudoCode
    CoeurDeLion pourrait te prendre au sérieux, parce qu'il croit réellement que son idée est bonne.

    Donc il faut donner un contre exemple.
    Effectivement, pour 'compresser' 2307816406286208998628034, ça marche bien. Mais pour compresser 2307816406286208998628035, il va peut-être falloir aller chercher dans une position très très loin dans Pi. Peut-être que l'Offset sera très très grand, et qu'il faudra 30 ou 35 chiffres pour dire où on trouve pour la première fois cette séquence 2307816406286208998628035. On aura donc besoin de 35 chiffres dans la version compressée, contre 25 dans la version non-compressée. Statistiquement, pour trouver le nombre 2307816406286208998628035, il faut aller chercher à la position 2307816406286208998628035. Donc on ne gagne rien. Et comme on implémente une couche supplémentaire pour cette conversion, on y perd, au lieu d'y gagner.

Discussions similaires

  1. Algorithme de compression
    Par yahia_sahli dans le forum VHDL
    Réponses: 3
    Dernier message: 26/03/2008, 07h40
  2. Un algorithme de compression
    Par babar56 dans le forum C
    Réponses: 19
    Dernier message: 09/04/2006, 10h18
  3. Probleme avec mon algorithme de tri
    Par kaygee dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2006, 21h23
  4. Algorithme de compression
    Par nebneb37 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 01/06/2005, 18h45
  5. Problème lors de la transformation de mon "algorithm&qu
    Par prunodagen dans le forum Langage SQL
    Réponses: 8
    Dernier message: 27/04/2005, 21h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo