Permalink
Browse files

sac-à-dos

  • Loading branch information...
sdpython committed Mar 23, 2015
1 parent 3cd6774 commit 12680a702b0000bf8d3380da862bd08849b8ed46
@@ -12,6 +12,13 @@ Glossaire
précisément mais on veur toujours avoir un ordre de grandeur :
si mon problème est dix fois plus grand, l'algorithme
sera combien sera combien de fois plus lent ?
Heuristique
Je cite `wikipedia <http://fr.wikipedia.org/wiki/Heuristique_%28math%C3%A9matiques%29>`_ :
En optimisation combinatoire, en théorie des graphes, en théorie de la complexité des algorithmes
et en intelligence artificielle, une heuristique est une méthode de calcul
qui fournit rapidement (en temps polynomial) une solution réalisable,
pas nécessairement optimale, pour un problème d'optimisation NP-difficile.
Python
Voir `Python <http://www.python.org/>`_.
@@ -28,6 +28,12 @@ il existe plein de solutions et déterminer la meilleure n'est pas toujours évi
Sujets
------
.. toctree::
:maxdepth: 1
demineur
sacados
@@ -36,7 +42,9 @@ Indices et solutions
.. toctree::
:maxdepth: 1
demineur_solution
sacados_solution
notions
@@ -23,10 +23,14 @@ trier les éléments, procéder par
(ajouter de nouveaux éléments un par un en adaptant la meilleure solution).
On a utilise parfois un langage guerrier quand on parle d'un problème.
Comment l'attaquer ? Il faut stratégie pour le résoudre,
Comment l'attaquer ? Il faut une stratégie pour le résoudre,
un plan de bataille. Il faut le couper en petits bouts
et chercher une solution pour chacun de ses bouts.
Les informaticiens aiment aussi beaucoup le terme
`heuristique <http://fr.wikipedia.org/wiki/Heuristique_%28math%C3%A9matiques%29>`_.
C'est une sorte de règle dont on sait qu'elle marche bien pour un problème donné.
**Propriété locale - globale**
@@ -0,0 +1,56 @@
.. issue.
.. _l-algo_sacados:
Sac-à-dos
=========
A partir de 7-8 ans (mais ce n'est qu'une indication).
Le problème du `sac-à-dos <http://fr.wikipedia.org/wiki/Probl%C3%A8me_du_sac_%C3%A0_dos>`_
est un problème très connu. On a un sac qui peut porter 50 kilos et des objets
qui font moins de 50 kilos. Comment remplir le sac-à-dos pour que son
poids soit le plus proche possible des 50 kilos sans jamais dépasser.
Mise en scène
-------------
On construit des briques rectangulaires de même largeur et de hauteur différentes.
.. image:: sacados_piece.jpg
:width: 500 px
On les empile sur un plan incliné jusqu'à trouver une combinaison
qui se rapproche du haut sans jamais le dépasser.
+-------------------------------+-----------------------------------+
| .. image:: sacados_pile.jpg | .. image:: sacados_pile2.jpg |
| :width: 250 px | :width: 250 px |
+-------------------------------+-----------------------------------+
| début de la pile | pile trop grande |
+-------------------------------+-----------------------------------+
**Q1 :** Quelle est la première brique que vous placeriez sur le plan incliné ?
**Q2 :** Et le suivant ?
**Q3 :** Pourriez-vous décrire précisément ce que vous faites de telle sorte que votre voisin
obtiennent exactement la même solution en reproduisant vos instructions ?
Solution
--------
Voir :ref:`l-algo_sacados_sol`.
A quoi ça sert ?
----------------
Comment rentrez-vous les valises quand vous partez en vacances ou quand vous
déménagez ? Par quelle valise commencez-vous ?
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,51 @@
.. issue.
.. _l-algo_sacados_sol:
Sac-à-dos (solution)
====================
Il n'existe pas d'algorithme rapide qui permette de trouver la solution optimale
- la meilleure solution. Mais on peut essayer de trouver une façon rapide
de constuire une solution approchée avec un peu d'astuce.
**Q1 :**
La pièce la plus difficile à placer dans le sac-à-dos où le coffre d'une voiture
est toujours la plus grosse. C'est pourquoi on commence toujours par elle.
Et puis cela permet de remplir le sac-à-dos rapidement.
**Q2 :**
La seconde pièce la plus difficle à placer est la seconde pièce la plus lourde.
Une fois qu'on a placé le premier objet, c'est comme ci on repartait de zéro avec un
sac-à-dos plus petit et une pièce en moins.
**Q3 :**
Voici la liste d'instructions proposées :
#. Trier les objets par ordre décroissant de poids.
#. Prendre le premier objet de la liste.
#. On essaye de le placer dans le sac-à-dos.
#. S'il tient, on le garde.
#. Qu'il tienne ou pas, on passe à l'objet suivant et on retourne à l'étape 3.
C'est l'algorithme `glouton <http://fr.wikipedia.org/wiki/Probl%C3%A8me_du_sac_%C3%A0_dos#Algorithme_glouton>`_.
Solution
--------
Voir :ref:`l-algo_sacados_sol`.
A quoi ça sert ?
----------------
Comment rentrez-vous les valises quand vous partez en vacances ou quand vous
déménagez ? Par quelle valise commencez-vous ?
@@ -35,7 +35,7 @@ Quelques algorithmes :
* le problème du voyageur de commerce
* les oranges
* :ref:`l-algo_demineur`
* le sac-à-dos
* :ref:`l-algo_sacados`
Découverte des données :
@@ -52,6 +52,7 @@ Solutions
---------
* :ref:`l-algo_demineur_sol`
* :ref:`l-algo_sacados_sol`
* :ref:`l-donnes_cantine_sol`
* :ref:`l-donnes_orthographe_sol`
* :ref:`l-prog_parcours_echiquier_sol`

0 comments on commit 12680a7

Please sign in to comment.