Griffonnages

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 14 décembre 2007

Une idée lumineuse

Avertissement, si vous n'y connaissez rien en ordi et en réseau, passez votre chemin.

Suite à la coupure de courant qui avait mis fin de façon spectaculaire à mon rapport de gendarmerie, l'université est alimentée sur le réseau électrique de secours. Le problème a du être identifié et réparé puisque l'on nous annonce que la commutation sur le réseau normal est prévue le dimanche 23 décembre dans la matinée, et qu'elle prendra plusieurs heures.

Mon labo possède ses propres serveurs (mail, web, nfs, licences) et c'est moi qui m'en occupe. Je ne serai pas à Bruxelles pendant cette période. Si je peux les éteindre à distance, je ne peux pas les rallumer, et ça, c'est embêtant.

Quelqu'un aurait-il une idée ?

lundi 1 octobre 2007

Excel 2007, un exemple de Ballmer Peak !

[Warning: billet destroy en franglais]

On s'amuse beaucoup, ces jours-ci, dans le blogogeek world du bug d'Excel 2007. Mes amis arithméticiens des ordinateurs ne s'en sont toujours pas remis, on les entends encore rire de ce mélange de ce qu'il ne faut pas faire quelque soit le prix sous peine d'être exécuté par William Kahan (l'homme grâce à qui vos ordinateurs comptent justes) : cosmetic roundings, confusion entre la base 2 et 10, et j'en passe.

Et voilà qu'XKCD propose une explication du pourquoi du comment cela a pu arriver. I love it !

Ballmer Peak

(Pour ceux qui veulent encore rire, car on peut rire de tout, pourquoi Matlab compte faux, quand on vous dit que les cosmetic roundings font parti des mauvaises pratiques de programmation).

samedi 8 septembre 2007

Switch

J'abandonne Maple au profit de Mathematica. Il n'y a pas à réfléchir longtemps entre les dilettantes canadiens et les professionnels étasuniens.

mercredi 5 septembre 2007

Est-il possible de définir l'énergie d'un calcul ?

C'est la question que je me suis posé à midi. Je suppose que des chercheurs se la sont posée avant moi, mais personne à ma table de connaît de tels travaux.

Je me demande s'il n'existerait pas un équivalent à la théorie de la complexité, mais avec l'énergie.

Mes premières pensées furent assez naïves, et je n'arrive pas à approfondir (et puis, c'est ce qui arrive quand on s'intéresse à un domaine qui n'est pas du tout le sien). Elles sont du type : on se donne un modèle de calcul, typiquement le calcul quantique, parce que les SLP, c'est clairement sous-optimal. On associe à chaque opération dans ce système un quantum d'énergie, puis on traduit l'algorithme optimal en terme d'énergie pour le faire tourner. Mais ça ne va pas chercher bien loin :

  1. on reste dépendant d'un modèle de calcul
  2. comment choisir le quantum d'énergie ?

Ensuite, je me suis demandé si on ne pouvait pas s'en tirer avec de sombres histoires d'entropie : quelle est l'entropie de Von Neuman - et pourquoi celle-ci d'ailleurs ? - de l'entrée ? Quelle est celle de la sortie ? et comparer tout ça. D'un certain point de vue, il semble bien plus naturel d'exprimer un calcul en terme d'entropie, mais c'est pas trop ce que je veux faire.

Question subsidiare : avec l'énergie libérée lors du big bang, peut on calculer BB(5) ? BB(10) ? BB(100)?

Voilà, ce billet est lancé, puisse-t-il un jour avoir une réponse.


Ajout le 21/09/2007 : c'est une vieille question en fait, il faut tapper "reversible computation" dans google pour avoir une réponse. Je viens de lire un article de Bennett "Logical Reversibility of Computation" de 1973 - oui, c'est vieux - mais je n'ai pas tout compris.

dimanche 2 septembre 2007

Ce que l'ordinateur quantique n'est pas

Parce qu'il est facile de critiquer et de se moquer, je vous propose, en réponse, un tour d'horizon des principales erreurs liées à l'informatique quantique. Et puis, par soucis d'honnêteté intellectuelle, je fais avant tout remarquer à mes lecteurs, que vue la hauteur où les autres blogueurs ont placé la barre, je ne risque pas grand'chose. Et l'autre argument qui a fini de me décider d'écrire ce billet est la lecture de la page wikipedia Ordinateur quantique, qui ne mériterait que d'être effacée.

1. L'ordinateur quantique n'est pas un ordinateur

Un ordinateur est une machine qui prend deux entrées : un programme et des données puis exécute ce programme avec les données fournies. Bref un ordinateur peut faire tourner n'importe quel programme (décidable).

Actuellement, on parle plutôt de calculateur quantique car ce que les physiciens essayent de faire ne pourra calculer qu'une seule fonction. Ou, si vous préférez, il y a aura un calculateur pour le traitement de texte, un calculateur pour naviguer sur internet,etc... pas très commode.

Mais est-ce qu'un ordinateur quantique peut exister ? La réponse est oui, en terme savant, on dit qu'il existe une machine de Türing quantique universelle.[1] Quelle en sera son architecture ? Je n'en sais rien, et je ne sais même pas si des gens le savent, mais il est prouvé qu'un tel système peut exister.

2. Un calculateur quantique ne fait pas tous les calculs en parallèle

L'erreur principale qu'on entend à propos de l'ordinateur quantique, c'est qu'il fait tous les calculs en parallèle, très pratique donc pour résoudre un sudoku puisqu'il essaye toutes les grilles en même temps. Et bien c'est faux.

Cette erreur est due à la mauvaise compréhension d'un phénomène purement quantique : la superposition, ou plus vulgairement appelé chat de Schrödinger.

Lecteurs, permettez-moi une digression sur le chat de Schrödinger, et laissez-moi vous expliquer que je trouve cette image nulle et incompréhensible, et qu'elle se trouve, par son côté un peu sexy, le chat est vivant et mort à la fois, finalement contre-productive.

Vous connaissez tous les probabilités. Avec des probabilités, on dit que le chat est 50% mort + 50% vivant. Et là en fait, il n'y a pas grand'chose de quantique, juste un ersatz. Ce que l'on manipule en mécanique quantique, ce ne sont plus les probabilités, mais les amplitudes de probabilité. Et ça fait toute la différence. Une amplitude de probabilité, c'est un nombre positif ou négatif[2] dont son carré est une probabilité. Ainsi en mécanique quantique on écrira pour le chat :

  • 1/√(2) mort + 1/√(2) vivant
  • 1/√(2) mort - 1/√(2) vivant
  • - 1/√(2) mort + 1/√(2) vivant
  • - 1/√(2) mort - 1/√(2) vivant

Et lorsqu'on ouvrira la boîte pour savoir s'il est mort ou vivant, nous aurons une probabilité de 50% de le trouver dans un état ou un autre. Mais qu'est-ce que ça change alors ? Tout, parce que cela permet de faire des interférences, et que, précisément, ce sont ces fameuses interférences qui permettent de faire certains calculs plus rapidement.

Un calcul, c'est une série d'étapes qui renvoient des résultats intermédiaires, la dernière renvoyant le résultat final. Dans un calcul classique, on sait exactement quelle étape on va effectuer ensuite, pas dans le calcul quantique, on choisi l'ordre des étapes avec des amplitudes de probabilité en fonction du résultat de l'étape courante.

Comment fait-on alors pour savoir la probabilité de lire le bon résultat ? On fait la somme des amplitudes de probabilité de tous les chemins qui, d'étapes en étapes, arrivent sur la bonne réponse. Puis ensuite on élève cette quantité au carré. Et pareil pour les mauvaises. Si un chemin a une amplitude de probabilité positive et un autre chemin une amplitude de probabilité négative, alors il va y avoir une interférence destructive, et cette réponse n'apparaîtra pas.

Faire un algorithme quantique, c'est se débrouiller pour qu'il y ait des interférences constructives sur les chemins qui mènent à la bonne réponse, afin qu'on puisse lire la réponse attendue avec une grande probabilité, et faire des interférences destructives sur les chemins qui mènent aux mauvaises réponses.

Ainsi, pour faire court, on part de toutes les entrées possibles, et le calcul se faisant, la probabilité de la bonne réponse augmente, ce qui n'a, avouez-le, pas grand'chose à voir avec faire tous les calculs en même temps, et puis, hop, par magie, choisir à la fin le bon résultat.

3. Un calculateur quantique ne sait pas résoudre un problème NP-complet (enfin, on pense)

Commençons par une page culturelle :

De tout temps, les informaticiens se sont entêtés à classer les problèmes.[3] Il existe plusieurs centaines de classes de problèmes, mais les deux plus connues sont P et NP. P est la classe des problèmes qu'il est possible de résoudre en temps Polynomial avec un ordinateur classique, c'est à dire, qu'on sait les résoudre vite. NP est la classe des problèmes qu'il est possible de résoudre en temps Polynomial avec un ordinateur Non-déterministe.[4]. NP c'est la classe des problèmes très longs à résoudre, mais si on possède une solution, c'est facile de vérifier qu'il s'agit de la bonne.

Un problème dans P est donc aussi dans NP.

LA question de l'informatique théorique depuis des années, c'est de savoir si P=NP ou PNP. La quasi-unanimité va à l'hypothèse PNP à notre époque, il n'en allait pas de même il y a 30 ans.

Dans NP, la classe des problèmes difficiles, il y a ceux qui sont vraiment difficiles, c'est à dire qu'en résoudre un permet de résoudre ensuite très vite tous les autres problèmes dans NP, c'est problèmes sont dit NP-complets.

Tous les problèmes dans NP connus, ont été démontrés être soit dans P, soit être NP-complets. Tous, sauf 2. Peut-être sont-ils dans P, peut-être sont-ils NP-complets, peut être entre ces deux classes, on ne sait pas. Il s'agit du problème dit de l'isomorphisme de graphe et de celui de la décomposition d'un entier en facteurs premiers.

Fin de la page culturelle, revenons au quantique.

Aucun problème NP-complet n'a été résolu en temps polynomial avec un ordinateur quantique. Peut-être un jour, mais la communauté scientifique qui s'intéresse à cette question est très perplexe et n'y croit plus.

4. Il y n'y a pas que 2 algorithmes quantiques

Le calcul quantique permet de calculer exactement les mêmes fonctions qu'un ordinateur classique. Donc tous les algorithmes classiques peuvent exister en quantique. Ce qui se passe, c'est qu'il y a certains problèmes que l'on sait résoudre plus rapidement grâce au calcul quantique, et il y en a aussi pour lesquels le calcul quantique n'améliore pas même d'un ι la rapidité.

Alors quels sont ces deux algorithmes tellement connus qu'ils occultent les autres ?

  • L'algorithme de Shor (1994) qui permet de calculer efficacement (P) le logarithme discret. Un truc de mathématiques pures apparemment, sauf que savoir calculer le logarithme discret efficacement permet la décomposition d'un entier en facteurs premier, et ça, c'est casser la plus grande branche de la cryptographie moderne, celle qui est utilisée aussi bien dans le https que dans les cartes bleues.
  • L'algorithme de Grover (1995) qui permet de rechercher un élément dans une base de donnée non triée en O(√n), c'est impressionnant, un élément est trouvé 1000 fois plus rapidement avec un calculateur quantique pour une base de données d'un million d'entrée, ça pourrait presque faire envie à Google.[5]

Il y a aussi des algorithmes qui permettent de calculer des polynômes plus rapidement, mais c'est anecdotique.

En revanche, un algorithme dont on devrait beaucoup entendre parler la suite est celui de Farhi, Goldston et Gutmann, découvert en février 2007 pour résoudre en √n le problème du NAND-Tree. J'ose pas trop en parler de peur de dire n'importe quoi tellement je connais peu. Je préfère vous indiquer l'article sur le blog de Scott Aaronson qui en parle, mais c'est en anglais.

5. La cryptographie quantique n'est pas une conséquence de l'ordinateur quantique

Je sais, il est tentant de répondre à : Alors, comment va-t-on faire pour sécuriser nos échanges si RSA est cassé ? par Heureusement, grâce à la mécanique quantique, encore elle, il existe une parade

La cryptographie quantique est apparue en 1984 dans le célèbre article [BB84], alors que l'algorithme de Shor date seulement de 1994, soit dix ans entre les deux.


Dans un élan de générosité, je répondrai, dans la mesure des mes moyens, évidement, à toutes les questions qui, malgré les trésors d'ingéniosité que je viens de déployer, continuent de se bousculer dans votre tête.

Notes

[1] Un ordinateur étant une machine de Türing universelle

[2] complexe dans le cas général

[3] Oui, de tout temps, déjà dans les années 30, c'est pour dire...

[4] NP ne veut donc pas dire Non Polynomial !

[5] Parce que leur base de données sont totalement structurées, et que donc, cet algorithme n'est pas vraiment exploitable...

samedi 1 septembre 2007

Contrefaçon ?

Hier soir, dans un élan de solidarité avec cette industrie en crise perpétuelle, à laquelle on accole parfois l'oxymore de culturelle, j'ai loué un DVD, un film à la mode, et je n'ai même pas pris de temps de lire le synopsis, c'est vous dire si je m'ennuie, et que même un navet peut pallier mon manque d'autre activité.

Mais voilà, mon lecteur DVD semble en rade, alors je l'avoue, bit-torrent a fait son office, et je m'apprête, dès la fin de la séance préliminaire de publicité, qui me laisse le temps d'écrire ces quelques mots, à le visionner.

Et je ne me sens absolument pas coupable d'usage de contrefaçon, d'autant plus qu'un téléchargement sur une plate-forme payante n'aurait pas fonctionné sous Linux, saloperies de DRM.

mercredi 20 juin 2007

Fin d'un mythe

Il y avait cette rumeur qui circulait :

Lors du premier cours d'informatique donné à l'École Polytechnique, il y a de cela longtemps, le professeur écrivit au tableau une ligne somme toute relativement banale : i = i + 1. La légende raconte que de nombreux élèves quittèrent alors l'amphithéâtre, écoeurés par une telle hérésie.

Rumeur qui vient d'être démentie, en collégialité, par les chargés d'enseignement de cette institution plusieurs fois centenaire.

Je trouvais cette histoire fascinante à plusieurs points de vue, parce qu'elle illustrait une triple évolution : une morale d'abord concernant le doute scientifique et l'ouverture d'esprit conjointe, et deux scientifiques, certainement corrélées, celle du statut de science réelle qu'à pris l'informatique théorique et une meilleure connaissance de la théorie des langages et de l'arithmétique des ordinateurs.

Elle est fausse, et je le regrette. Je continuerai d'y croire cependant.

vendredi 15 juin 2007

Geekerie du jour

Dans mon bar-PMU à poivreaux du coin Chez mon marchand de journaux :

<Lui> Et toi, tu veux quoi ?
<CeLui> On n'a pas programmé les ordis ensemble !
Celui was banned by Celui ("Yapluka changer de buraliste")

jeudi 14 juin 2007

QOTD - Rue des petites perles

Lapsus prononcé sans envolée lyrique :

Cette année au concours de l'X en informatique il fallait programmer l'algorithme de kamasutra.

Tester le Karatsuba n'est pas à la portée de tout le monde.

jeudi 31 mai 2007

Sauvons les chercheurs

Aidez-les. Il semblerait qu'ils soient en manque.

Edit (8/06/07) : ils l'ont enlevée, heureusement que je l'avais conservée (Cliquez dessus pour voir l'animation) Logo équipe DALI

jeudi 10 mai 2007

QOTD

Revenons à des choses plus terre à terre, faisons du quantique.

(Nous parlions d'isomorphismes de graphes)

PS : c'est une honte que Wikipedia en français n'ait pas une telle page.

mercredi 9 mai 2007

XKCD

Grâce au blog de Scott Aaronson, j'ai découvert hier l'excellentissime XKCD, A webcomic of romance, sarcasm, math, and language. Après plusieurs heures de lecture, écrire je vous le recommande vivement est un euphémisme.

On regrettera qu'on ne puisse pas commenter, mais c'est largement compensé par le fait que les dessins sont sous licence Creative Commons BY-NC 2.5.

Il y en a pour tous les goûts. Cependant, le niveau de base requis est d'être un internaute régulier.

The problem with wikipedia

En fait, ce webcomic a son côté rassurant, je ne suis pas le seul à me faire ce genre de remarques.

resonance.png

Je n'ai jamais nié l'existence d'une culture geek, en tout cas d'un certain nombre de références culturelles communes, mais se reconnaître à un tel point dans ces personnages - je subodore que la virginité des visages aide - m'a vraiment touché. Je m'étais déjà identifié à certains personnages de films, et de manière beaucoup plus prononcée à des héros de romans (comme Magnus), mais jamais dans ce quotidien que je partage avec si peu de monde.

Et puisque je ne vais pas tout mettre ici, en vrac

mercredi 2 mai 2007

QOTD

  • En hexadécimal : 09-F9-11-02-9D-74-E3-5B-D8-41-56-C5-63-56-88-C0
  • En décimal : 13256278887989457651018865901401704640
  • En octal : 0011-7621-0402-4727-2343-2675-4101-2554-2543-2550-4300
  • En binaire : 00001001 11111001 00010001 00000010 10011101 01110100 11100011 01011011 11011000 01000001 01010110 11000101 01100011 01010110 10001000 11000000
  • En base 26, pour le fun : BCYQGDQMSOGIVDSWDPIFFOUJP

Décomposition en facteurs premiers : 2^6*5*19*12043*216493*836256503069278983442067

samedi 7 avril 2007

Guinness ultrason

Ce fut la découverte de la semaine. Le geek qui sommeille en moi était émerveillé. Cela s'est passé à Paris Carnet, au bar l'Assassin.

Versac a commandé une Guinness ultrason. Le barman à ouvert une canette de Guinness. Puis l'a versée délicatement dans un verre en prenant le plus grand soin à ne pas faire de mousse. J'étais en effroi devant un tel sacrilège. Puis il a posé le verre sur un petit socle, a appuyé nonchalamment sur un bouton et là, le liquide noirâtre s'est éclairci, des bulles sont apparues faisant ressortir les arômes du breuvage irlandais. Visuellement le résultat est époustouflant, question goût, c'est correct. (dixit Versac)

Malheureusement, l'appareil n'est pas disponible sur le Guinness Web Store.