<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Optimisation | Dr. Goulu</title><link>https://drgoulu.com/tags/optimisation/</link><atom:link href="https://drgoulu.com/tags/optimisation/index.xml" rel="self" type="application/rss+xml"/><description>Optimisation</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Sat, 19 Nov 2011 00:00:00 +0000</lastBuildDate><image><url>https://drgoulu.com/media/icon_hu_eee4a95885829ab2.png</url><title>Optimisation</title><link>https://drgoulu.com/tags/optimisation/</link></image><item><title>Lean Bicycle Factory</title><link>https://drgoulu.com/2011/11/19/lean-bicycle-factory/</link><pubDate>Sat, 19 Nov 2011 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2011/11/19/lean-bicycle-factory/</guid><description>&lt;p&gt;Une fois n&amp;rsquo;est pas coutume, je vais causer un petit peu boulot. Depuis quelques temps je m&amp;rsquo;occupe d&amp;rsquo;un système dynamique assez complexe : une usine de production de machines. Avec quelques collègues, nous y appliquons la &amp;ldquo;philosophie&amp;rdquo;
, dont je suis pour ma part assez heureux de pouvoir valider les principes par quelques calculs et simulations avant de bouleverser les habitudes de gens employés dans la boite depuis 10x plus longtemps que moi.&lt;/p&gt;
&lt;p&gt;Une de mes tâches est d&amp;rsquo;animer des journées de formation offertes à tout le personnel par groupes de 8 personnes, journées pendant lesquelles nous introduisons des notions &amp;ldquo;lean&amp;rdquo; comme le
par un jeu dans lequel les collaborateurs construisent des modèles réduits de machines en améliorant peu à peu le système de production.&lt;/p&gt;
&lt;p&gt;Il me manquait un moyen d&amp;rsquo;expliquer ce qu&amp;rsquo;est le lean à des gens qui ne travaillent pas du tout dans ce domaine (vous ?) d&amp;rsquo;une manière ludique. C&amp;rsquo;est mon collègue Alex qui l&amp;rsquo;a trouvée sous la forme du &amp;ldquo;
&amp;rdquo; de Ludosity, un &amp;ldquo;
&amp;rdquo; assez fun et rapide pour devenir addictif, et même générer une petite compétition entre collègues&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Ajout du 9.12.2013&lt;/em&gt;: comme le lien de téléchargement original ne fonctionne plus, essayez 
.)&lt;/p&gt;
&lt;p&gt;Si j&amp;rsquo;en parle, c&amp;rsquo;est que j&amp;rsquo;ai le &amp;ldquo;high score&amp;rdquo; actuel : 68768*. Voilà comment j&amp;rsquo;ai fait (spoiler alert ! essayez de faire mieux &lt;em&gt;avant&lt;/em&gt; de copier&amp;hellip;) :&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 622px; width: 100%;"&gt;&lt;a href="https://www.youtube.com/watch?v=fWkBvanJoz4" target="_blank" rel="noopener"&gt;&lt;img src="https://drgoulu.com/posts/2011/images/Capture_hu_5246aec3bb1cb586.webp" srcset="https://drgoulu.com/posts/2011/images/Capture_hu_5246aec3bb1cb586.webp 320w, https://drgoulu.com/posts/2011/images/Capture_hu_3230cea05afc95d.webp 480w, https://drgoulu.com/posts/2011/images/Capture_hu_20837f89ee8039f0.webp 622w" sizes="(max-width: 640px) 100vw, 622px" alt="Essayez de faire mieux... ou cliquez pour le film pour tricher" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;/a&gt;&lt;figcaption&gt;Essayez de faire mieux&amp;hellip; ou cliquez pour le film pour tricher&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Le début du jeu sert à observer et à comprendre le flux, mais j&amp;rsquo;ai remarqué que ce n&amp;rsquo;est pas du tout évident, alors voici quelques infos utiles :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;les clients (en haut à droite) commandent des vélos de 3 tailles et de 3 couleurs différentes. S&amp;rsquo;ils ne sont pas livrés rapidement, ils attendent un moment puis partent dans un nuage de fureur&lt;/li&gt;
&lt;li&gt;la commande arrive au responsable de la production, en bas, qui peut soit lancer la production du vélo commandé, soit (par défaut) produire des vélos selon des prévisions de vente. Il envoie des blocs de métal à la machine de droite&lt;/li&gt;
&lt;li&gt;la machine produit des cadres soit dans l&amp;rsquo;ordre des commandes (FIFO), soit en regroupant les cadres par taille pour minimiser le temps de changement des matrices pour cadres homme/femme/enfant&lt;/li&gt;
&lt;li&gt;le montage se fait à l&amp;rsquo;établi rouge&lt;/li&gt;
&lt;li&gt;la peinture se fait à la machine en haut à gauche, qui peint des lots de 4 (modifiable) vélos&lt;/li&gt;
&lt;li&gt;le contrôle de qualité se fait à la table verte. Je n&amp;rsquo;ai pas bien compris ce qui arrive aux vélos défectueux, je pense qu&amp;rsquo;ils ne ne génèrent qu&amp;rsquo;un surcoût et peut être un temps supplémentaire pour les réparer&lt;/li&gt;
&lt;li&gt;les vélos arrivent au stock, d&amp;rsquo;où ils sont livrés aux clients qui les attendent encore&amp;hellip;&lt;/li&gt;
&lt;li&gt;les transports se font aussi par lots de 4 (modifiable), mais cette valeur est un minimum : s&amp;rsquo;il y a plus de pièces à transporter, le chariot les prend.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Le plus énervant lorsqu&amp;rsquo;on tente d&amp;rsquo;optimiser ce processus tout simple est la limitation à 2 modifications par tour de jeu, et leur coût associé qui est clairement affiché alors que le bénéfice ne l&amp;rsquo;est pas. C&amp;rsquo;est hélas très réaliste&amp;hellip;&lt;/p&gt;
&lt;p&gt;Il y a des choses qui ne me plaisent pas dans ce jeu, notamment que j&amp;rsquo;atteins mon meilleur score en n&amp;rsquo;utilisant pas du tout deux principes fondamentaux du lean : le flux tiré par le client et la production à l&amp;rsquo;unité, donc il doit y avoir moyen de faire mieux.  J&amp;rsquo;ai lancé une 
 à ce sujet si ça vous dit.&lt;/p&gt;
&lt;p&gt;Note* : les scores publiés sur internet ne valent pas tripette car le jeu a été hacké. Si vous me battez, je veux une image ou une vidéo pour le prouver :-)&lt;/p&gt;</description></item><item><title>comment placer N points “régulièrement” sur une sphère ?</title><link>https://drgoulu.com/2007/01/31/comment-placer-n-points-regulierement-sur-une-sphere/</link><pubDate>Wed, 31 Jan 2007 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2007/01/31/comment-placer-n-points-regulierement-sur-une-sphere/</guid><description>&lt;p&gt;Cette question est cruciale pour la conception de balles de golf, mais aussi pour certaines fraises, de boules à facettes de discothèque. Et une fois qu&amp;rsquo;on sait y répondre pour une sphère, on peut s&amp;rsquo;attaquer aux surfaces quelconques, par exemple pour recouvrir de diamants une montre ou un bijou &amp;hellip;&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;abord, il faut définir ce qu&amp;rsquo;on appelle &amp;ldquo;régulièrement&amp;rdquo;. Plusieurs définitions sont possibles, chacune correspondant à un problème et à des méthodes distinctes pour le résoudre :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le &amp;ldquo;&lt;strong&gt;covering&lt;/strong&gt;&amp;rdquo; consiste à recouvrir complètement la sphère par des disques de même rayon, appelé &amp;ldquo;rayon de couverture&amp;rdquo; (&amp;ldquo;covering radius&amp;rdquo; en anglais). Les disques sont donc forcés de se recouvrir partiellement. Mathématiquement on &amp;ldquo;minimise la distance maximale &amp;rsquo;d&amp;rsquo; de tout point de la sphère à son voisin le plus proche&amp;rdquo;. &lt;em&gt;(définition corrigée grâce à
)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;le &amp;ldquo;&lt;strong&gt;packing&lt;/strong&gt;&amp;rdquo; est une petite nuance consistant à &amp;ldquo;maximiser la distance minimale entre les points&amp;rdquo;. Autrement dit, l&amp;rsquo;optimum est atteint lorsqu&amp;rsquo;on ne peut plus écarter les deux points les plus proches car l&amp;rsquo;un se rapprocherait davantage d&amp;rsquo;un troisième point.&lt;/li&gt;
&lt;li&gt;le &amp;ldquo;&lt;strong&gt;convex hull&lt;/strong&gt;&amp;rdquo; consiste à maximiser le volume du solide convexe défini par les N sommets&lt;/li&gt;
&lt;li&gt;la &amp;ldquo;&lt;strong&gt;minimisation de l&amp;rsquo;énergie potentielle&lt;/strong&gt;&amp;rdquo; consiste à minimiser la somme de l&amp;rsquo;énergie qui serait accumulée dans des ressorts liant chaque paire de points. Les ressorts peuvent être soit linéaire (d&amp;rsquo;ordre 1), soit quadratiques (ordre 2) ce qui correspond au cas de la &lt;strong&gt;répulsion électrostatique&lt;/strong&gt; de points supposés chargés électriquement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Intuitivement on &amp;ldquo;sent&amp;rdquo; que certaines de ces méthodes devraient donner les mêmes résultats, mais ce n&amp;rsquo;est pas le cas sauf dans des cas très particuliers.&lt;/p&gt;
&lt;h3 id="solutions-exactes"&gt;Solutions exactes&lt;/h3&gt;
&lt;figure class="alignright" style="max-width: 256px; width: 100%;"&gt;&lt;a href="http://fr.wikipedia.org/wiki/Icosa%C3%A8dre" target="_blank" rel="noopener"&gt;&lt;img src="https://drgoulu.com/posts/2007/images/53b71678904e2226d5f1195d59cebfef.gif" alt="icosaèdre" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" /&gt;&lt;/a&gt;&lt;figcaption&gt;icosaèdre (image Wikipedia)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Le seul problème pour lequel il existe des solutions exactes est le &amp;ldquo;covering&amp;rdquo; car en 1943 (seulement&amp;hellip;.) Fejes Tóth a trouvé la borne du &amp;ldquo;rayon de couverture&amp;rdquo; d en fonction de N (voir
) . Il a ainsi enfin été prouvé que :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pour N=4, la disposition optimale correspond aux sommets d&amp;rsquo;un tétraèdre régulier&lt;/li&gt;
&lt;li&gt;pour N=6, aux sommets d&amp;rsquo;un octaèdre&lt;/li&gt;
&lt;li&gt;pour N=8, ce ne sont &lt;strong&gt;pas les sommets d&amp;rsquo;un cube&lt;/strong&gt;, mais de l&amp;rsquo;
&lt;/li&gt;
&lt;li&gt;pour N=12, ce sont les sommets d&amp;rsquo;un
. L&amp;rsquo;icosaèdre (ci-contre) est formé de 20 triangles équilatéraux égaux&lt;/li&gt;
&lt;li&gt;pour N=20, on peut donc projeter sur la sphère les centres des 20 faces de l&amp;rsquo;icosaèdre, ce qui va avoir de l&amp;rsquo;importance dans la suite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;de plus :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pour N=5, on ne peut pas faire mieux que d&amp;rsquo;enlever un point de l&amp;rsquo;octaèdre (N=6)&lt;/li&gt;
&lt;li&gt;pour N=7, il faut dessiner sur la sphère des
d&amp;rsquo;angle = 80° (étonnant, 2/9èmes de 360° &amp;hellip;)&lt;/li&gt;
&lt;li&gt;pour N=9, les triangles sphériques doivent avoir un angle tel que cos(angle)=1/4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;et c&amp;rsquo;est tout pour les solutions démontrées comme optimales ! Les solutions du &amp;ldquo;packing&amp;rdquo; et du &amp;ldquo;convex hull&amp;rdquo; pour les mêmes valeurs de N semblent être les mêmes, mais on ne l&amp;rsquo;a jamais prouvé formellement !&lt;/p&gt;
&lt;p&gt;Pour toutes les autres valeurs de N, les solutions ne peuvent pas être construites géométriquement, mais seulement par des méthodes approximatives.&lt;/p&gt;
&lt;h3 id="solutions-icosahédriques"&gt;Solutions icosahédriques&lt;/h3&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt=""
src="https://drgoulu.com/posts/2007/images/7df82e7855d92248c985bbd8a4aba60a.gif"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
Pour certaines valeurs de N, on peut construire de &amp;ldquo;jolis&amp;rdquo; arrangements &amp;ldquo;presque&amp;rdquo; optimaux en utilisant l&amp;rsquo;intéressante propriété de l&amp;rsquo;icosaèdre d&amp;rsquo;être optimal et d&amp;rsquo;avoir des faces triangulaires équilatérales. En subdivisant une face (qui est un triangle équilatéral) en plus petits triangles équilatéraux puis en projetant les sommets sur la sphère, et en appliquant la &amp;ldquo;symétrie icosahédrale&amp;rdquo; consistant à recopier ces points pour chacune des 20 faces de l&amp;rsquo;icosahèdre, on obtient les formes en &amp;ldquo;
&amp;rdquo; bien connues dans la construction&lt;/p&gt;
&lt;p&gt;La page
fournit ce type de solutions pour N=60, 72, 80, 90 &amp;hellip; 78032. (l&amp;rsquo;applet n&amp;rsquo;a plus l&amp;rsquo;air de marcher, mais il y a du code C permettant de générer les solutions)&lt;/p&gt;
&lt;h3 id="les-balles-de-golf"&gt;Les balles de golf&lt;/h3&gt;
&lt;p&gt;Pour des raisons aérodynamiques, les
ont entre 300 et 450 petites cavités (&amp;ldquo;dimples&amp;rdquo; en anglais). C&amp;rsquo;est le règlement du golf qui impose qui doivent être réparties les plus régulièrement possible, alors que la stabilisation de la balle en vol pourrait être mieux assurée par une balle du type &amp;ldquo;polara&amp;rdquo;, ayant des cavités différentes le long d&amp;rsquo;un équateur.&lt;/p&gt;
&lt;p&gt;La plupart des balles de golf existantes sont donc construites par symétrie icosahédrale, en veillant à ce qu&amp;rsquo;il n&amp;rsquo;y ait pas de cavité le long d&amp;rsquo;une ligne pour permettre la réalisation de moules &amp;ldquo;simples&amp;rdquo;. Comme on le voit ci-dessous, on peut remplir les faces triangulaires de l&amp;rsquo;icosaèdre de nombreuses façons, et même jouer sur la dimension des &amp;ldquo;dimples&amp;rdquo; pour tenter de compenser des irrégularités :&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 306px; width: 100%;"&gt;&lt;img src="https://drgoulu.com/posts/2007/images/68139ea7a64d62e19fc538b844bb492c_hu_6ab656721db592d8.webp" srcset="https://drgoulu.com/posts/2007/images/68139ea7a64d62e19fc538b844bb492c_hu_6ab656721db592d8.webp 320w, https://drgoulu.com/posts/2007/images/68139ea7a64d62e19fc538b844bb492c_hu_c08491c8f3dcddcf.webp 480w, https://drgoulu.com/posts/2007/images/68139ea7a64d62e19fc538b844bb492c_hu_3562b4a3e0eb0bc0.webp 612w" sizes="(max-width: 640px) 100vw, 306px" alt="(illustration tirée du brevet US 4,560,168)" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;figcaption&gt;(illustration tirée du brevet US 4,560,168)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;
vend un CD contenant plus de 800 brevets relatifs aux balles de golf, la plupart relatifs à la disposition des dimples (images ci-contre) ! Ceci prouve qu&amp;rsquo;il n&amp;rsquo;existe pas un N clairement optimal, ni une façon optimale de répartir les points.&lt;/p&gt;
&lt;h3 id="méthodes-empiriques"&gt;Méthodes &amp;ldquo;empiriques&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;
 présente 3 méthodes qui permettent de placer très rapidement des points à une distance à peu près égale à d les uns des autres, mais il n&amp;rsquo;est pas garanti que l&amp;rsquo;on arrive à en placer le nombre N souhaité. Il faut apparemment faire plusieurs essais avec des N&amp;rsquo;&amp;gt;N pour obtenir éventuellement un nombre N précis. Ces méthodes sont illustrées ci dessous pour N=124, qui ne permet pas une symétrie icosahédrique:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2007/images/5837ae4a6a49cdf79b479cf366436903_hu_826736f3e0cad607.webp 128w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2007/images/5837ae4a6a49cdf79b479cf366436903_hu_826736f3e0cad607.webp"
width="128"
height="128"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
Une
consiste à placer les points le long de l&amp;rsquo;équateur (ou de chaque côté de l&amp;rsquo;équateur) à une distance d les uns des autres, puis le long de &amp;ldquo;latitudes&amp;rdquo; séparées d&amp;rsquo;une distance d.&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2007/images/3efe8901ac81588e8d11621c2537126a_hu_8e667935825f102b.webp 128w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2007/images/3efe8901ac81588e8d11621c2537126a_hu_8e667935825f102b.webp"
width="128"
height="128"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
la méthode de
: elle consiste à placer les points à distance d les uns des autres le long d&amp;rsquo;une spirale qui va d&amp;rsquo;un pôle de la sphère à l&amp;rsquo;autre.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2007/images/1e4ecd811a93192c2c5ea4add5640041_hu_fed006340624f1a2.webp 128w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2007/images/1e4ecd811a93192c2c5ea4add5640041_hu_fed006340624f1a2.webp"
width="128"
height="128"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
une variante de la précédente basée sur une spirale utilisant le nombre d&amp;rsquo;or pour éviter toute régularité apparente. Je n&amp;rsquo;ai pas tout compris, mais cette méthode donne le meilleur résultat &amp;ldquo;visuel&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La couleur rouge permet de comparer les méthodes : les disques sont réduits jusqu&amp;rsquo;à être tangents entre eux, et on colore en rouge la différence entre chaque diamètre et le diamètre le plus faible. On constate que la première méthode est systématiquement meilleure que les 2 autres, mais on &amp;ldquo;voit&amp;rdquo; qu&amp;rsquo;elle est encore loin de l&amp;rsquo;optimum&lt;/p&gt;
&lt;p&gt;Référence :
&lt;/p&gt;</description></item></channel></rss>