758 collectifs
NomAds
A propos
On vous aide à faire croitre votre business grâce à la publicité en ligne
Mesh
A propos
Créateur d'expériences digitales
Call to Action - CTA
A propos
Vos projets nous regardent !
Customerz
A propos
Votre partenaire Customer Success
The Phoners
A propos
La tribu d'experts B2B au service de votre prospection commerciale !
O(n) code
A propos
Make it work, make it right, make it fast
Isto
A propos
Votre histoire, du product au motion..
We Are HANABI
A propos
On accélère la transformation des grandes entreprises.
Nakami Strategy
A propos
Il n’y a jamais eu autant de bruit dehors. Faites vous entendre clairement!
Panda Perché 🐼
A propos
Créativité sauvage, stratégie féroce : Bienvenue chez Panda Perché !
Dona & Che
A propos
A deux .. c'est toujours mieux.
GrowthPerf
A propos
La puissance de la tech au service de votre business
Ads for Growth
A propos
Google Ads, Social Ads, Native Ads & LinkedIn Ads🚀
WiredFlow
A propos
Notre maître mot ? La complémentarité ! Du Front-End au Back-End en passant par tous les processus d'intégration continue pour des déploiements instantanés sur vos serveurs, rien ne nous échappe !
Open Product
A propos
Les compétences Produit au service du business
Matilde & Cie
A propos
Rendons la communication digitale accessible à tous
NEIA development
A propos
From strategy to development to communications, in a one-stop-shop
Shinrai
A propos
Plume créative
Optimisation algorithmique en Python
Conception et optimisation d'un algorithme de shape nesting (2D bin packing) pour l'industrie.
Decisive in delivering a high performance and production-ready algorithm in a short time frame.
![Sam Karpov portrait](https://cdn.collective.work/cl89767ss2azj6eezc2ke5ygt.png)
Sam Karpov
•
CEO chez Any-cut.pro
Le shape nesting est un problème d'optimisation combinatoire complexe que l'on retrouve couramment dans l'industrie manufacturière. Cela consiste à trouver l'agencement optimal de formes 2D quelconques lors d'usinage, pour rentabiliser chaque centimètre carré de matière brute.
L'espace des solutions possibles est souvent trop grand pour être explorer en un temps raisonnable. La rapidité de l'algorithme et du code ainsi que la stratégie d'exploration sont donc deux critères essentiels de réussite.
Réalisations :
développement d'un algorithme comparable aux solutions commerciales disponibles
Optimisation du code d'un facteur 100 entre la première itération et la dernière. Aujourd'hui des étapes aussi simple qu'une condition "if x > n" ont un impact significatif sur la vitesse d'exécution
Optimisations mises en place avec succès :
caching de résultats intermédiaires
utilisation d'integer plutôt que de float (+ rapide, + stable numériquement)
utilisation de librairies externes uniquement codées en C et réputées stables et rapides
profiling du code ligne à ligne
refactoring permanent pour garder le code minimal et éviter les opérations superflues et/ou redondantes.
emploi des types et fonctions built-in pour éviter des conversions vers et depuis des types de données externes
comparaison de plusieurs approches, notamment pour la stratégie d'exploration (Algo génétique, heuristiques, Monte carlo tree search, ...)