{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# 1A.algo - Arbre et Trie\n", "\n", "Le mot [trie](http://fr.wikipedia.org/wiki/Trie_%28informatique%29) est anglais et se prononce *tra\u00eflle*. Il sera d\u00e9fini plus bas. Cette structure de donn\u00e9es est tr\u00e8s adapt\u00e9e \u00e0 la recherche d'un mot dans une liste ordonn\u00e9e. C'est aussi une histoire de dictionnaires imbriqu\u00e9s."]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [{"data": {"text/html": ["
run previous cell, wait for 2 seconds
\n", ""], "text/plain": [""]}, "execution_count": 2, "metadata": {}, "output_type": "execute_result"}], "source": ["from jyquickhelper import add_notebook_menu\n", "add_notebook_menu()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Rechercher un mot dans une liste est un probl\u00e8me simple. Et pourtant, cette t\u00e2che peut \u00eatre plus ou moins rapide selon la fa\u00e7on dont on repr\u00e9sente cette liste, voire de la compresser. L'objectif est ici de d\u00e9couvrir trois fa\u00e7ons de construire un ensemble de mots avec des dictionnaires et des listes. La recherche d'un mot dans cet ensemble sera diff\u00e9rente \u00e0 chaque fois.\n", "On veut mesurer le temps qu'il faut pour v\u00e9rifier qu'un mot appartient \u00e0 une liste de mots de trois fa\u00e7ons diff\u00e9rentes et \u00e0 partir de trois repr\u00e9sentations diff\u00e9rentes :\n", "\n", "* liste de mots\n", "* liste tri\u00e9e de mots\n", "* trie\n", "\n", "A quoi \u00e7a sert : voir [Compl\u00e9tion](http://www.xavierdupre.fr/app/mlstatpy/helpsphinx/c_nlp/completion.html)."]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Construction d'une liste al\u00e9atoire\n", "\n", "Plut\u00f4t que de charger un texte en m\u00e9moire, on construit des mots al\u00e9atoirement. "]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 1\n", "\n", "A partir de la fonction suivante, construit une liste al\u00e9atoire de 10000 mots d'une longueur de 20 lettres."]}, {"cell_type": "code", "execution_count": 2, "metadata": {"collapsed": true}, "outputs": [], "source": ["import random\n", "def mot_alea (l) :\n", " l = [ chr(97+random.randint(0,25)) for i in range(l) ]\n", " return \"\".join(l)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 2\n", "\n", "Les listes ont une m\u00e9thode ``index`` qui permet de retrouver la position d'un mot (elle effectue donc une recherche). Le module [time](https://docs.python.org/3/library/time.html) poss\u00e8de une fonction [clock](https://docs.python.org/3/library/time.html#time.perf_counter). Utiliser cette fonction pour mesurer le temps du code suivant (qu'on prendra soin d'ex\u00e9cuter plusieurs fois en boucle afin d'avoir une mesure fiable) :"]}, {"cell_type": "code", "execution_count": 3, "metadata": {"collapsed": true}, "outputs": [], "source": ["for k in list_exercice_1:\n", " i = list_exercice_1.index(k)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["IPython propose une commande magique pour mesure le temps d'ex\u00e9cution d'une instruction : [%timeit](http://ipython.org/ipython-doc/dev/interactive/tutorial.html#magic-functions) qui ex\u00e9cute cette instruction plusieurs fois avant de retourner un r\u00e9sultat."]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Recherche dichotomique\n", "\n", "Lors des premi\u00e8res s\u00e9ances de TD, on a impl\u00e9ment\u00e9 la recherche dichotomique. La liste de mots est tri\u00e9e. Vous pouvez soit retrouver le code cette fonction depuis ce TD soit impl\u00e9menter de nouveau la fonction. "]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 3\n", "\n", "L'objectif est de mesurer le temps pris par la recherche dichotomique appliqu\u00e9e \u00e0 la m\u00eame liste que celle de l'exercice 1 (mais tri\u00e9e)."]}, {"cell_type": "code", "execution_count": 4, "metadata": {"collapsed": true}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 4\n", "\n", "Mesurer le temps de calcul lorsque la recherche d'un mot est effectu\u00e9e 1000 fois pour des tailles de liste de 10, 100, 1000, 10000, 100000 mots. On fait ceci pour la recherche simple et la recherche dichotomique. V\u00e9rifier que cela correspond au co\u00fbt des deux algorithmes (qu'on pr\u00e9cisera)."]}, {"cell_type": "code", "execution_count": 5, "metadata": {"collapsed": true}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["## Trie\n", "\n", "Le co\u00fbt des deux recherches d\u00e9pendent du nombre de mots dans la liste. Il est possible de construire une structure de donn\u00e9es qui fait d\u00e9pendre le co\u00fbt de cette recherche du nombre de lettres diff\u00e9rentes (26) et de la longueur maximale des mots.\n", "\n", "Le trie suivant repr\u00e9sente les mots ``A, to, tea, ted, ten, inn``. Chaque noeud final est un mot."]}, {"cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [{"data": {"image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [""]}, "execution_count": 7, "metadata": {}, "output_type": "execute_result"}], "source": ["from pyquickhelper.helpgen import NbImage\n", "NbImage('wiki_trie.png')"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Dans un vrai trie, on ne conserve que la derni\u00e8re lettre dans chaque noeud, un mot de la liste est obtenu en parcourant un chemin qui va du noeud racine jusqu'\u00e0 une feuille. Plus bas, un exemple pour **ted**."]}, {"cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": [""]}, "execution_count": 8, "metadata": {}, "output_type": "execute_result"}], "source": ["NbImage('wiki_trie2.png')"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 5\n", "\n", "Construire cette structure. Les classes sont une possibilit\u00e9 mais ne sont pas indispensables."]}, {"cell_type": "code", "execution_count": 8, "metadata": {"collapsed": true}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["## Recherche dans un trie"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 6\n", "\n", "Une fois qu'on a la structure, il faut aussi \u00e9crire la fonction qui recherche un mot dans le trie."]}, {"cell_type": "code", "execution_count": 9, "metadata": {"collapsed": true}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercice 7\n", "\n", "Il ne reste plus qu'\u00e0 mesurer le temps."]}, {"cell_type": "code", "execution_count": 10, "metadata": {"collapsed": true}, "outputs": [], "source": []}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1"}}, "nbformat": 4, "nbformat_minor": 2}