Que faites-vous avec les questions difficiles des clients comme celle-ci?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour SE,
J'ai récemment reçu ce défi d'un client. Cela va dans un domaine où je ne suis pas particulièrement fort. Quelqu'un a-t-il des suggestions sur quoi faire avec cela?
Salut Byron,
Une grosse blague parmi mes collègues est qu'ils ne devraient pas mentionner de faire quelque chose dans Excel en ma présence. La raison en est que chaque fois que quelqu'un mentionne faire un calcul en dehors de JMP, je dis «JMP peut le faire». En particulier, j'ai essayé d'amener les gens à abandonner Excel, mais je le dis aussi lorsque les gens parlent de faire quelque chose dans Matlab, etc. Donc, maintenant je pense que je suis obligé de demander à JMP de m'aider à ne pas «manger du corbeau».
J'ai continué à rechercher mon problème d'optimisation. J'ai été déçu de ne plus avoir recours au support technique, mais je comprends. J'ai fini d'écouter toutes les conférences du cours d'optimisation convexe à Stanford via ITunesU que je vous ai mentionnées plus tôt. J'ai beaucoup appris. Une chose que j'ai apprise est qu'Excel a un solveur de complément pour résoudre les problèmes d'optimisation. Il semble que le solveur d'Excel soit meilleur que le profileur de JMP! La plupart du temps, je dis cela parce que le solveur autorise des contraintes non linéaires. Il est également possible que je comprenne comment utiliser le solveur Excel mieux que le profileur ou la plate-forme non linéaire - si c'est la bonne plate-forme pour mon problème. Dans les deux cas, selon moi, cela rend le solveur «meilleur». Il se peut très bien que le solveur d'Excel soit moins efficace que le profileur de JMP, mais ce n'est pas un point pour ma comparaison particulière.
Donc, Je mets au défi JMP de fournir une plate-forme capable de résoudre des problèmes d'optimisation non convexes avec des fonctions objectives non linéaires et des contraintes non linéaires faciles à comprendre et à utiliser. Bien sûr, je relève ce défi du point de vue le plus positif des commentaires d'un client par ailleurs très satisfait
Ne vous inquiétez pas, je garderai cette apparente supériorité d'Excel entre nous jusqu'à ce que JMP ait eu amplement l'occasion de «faire les choses correctement».
-J
Re: Que faites-vous avec les questions difficiles des clients comme celle-ci?Martin,
Merci pour vos commentaires utiles. C'est agréable d'avoir la confirmation que je suis au-dessus de ma tête.
À un moment donné, j'aimerais parcourir cette classe pour mieux comprendre comment résoudre le problème.
Optimisation convexe | Stanford Lagunita
À votre santé,
Byron
Re: Que faites-vous avec les questions difficiles des clients comme celle-ci?Dernière remarque: je ne suis pas sûr que nous voulons que JMP ait une plateforme d'optimisation compétitive. Ce serait un énorme travail d'implémentation pour les développeurs. Et il existe déjà des outils très spécialisés où vous auriez du mal à ne pas fournir l'ensemble complet des routines d'optimisation.
Si le client pouvait vous fournir un cas d'utilisation avec un message de bonne valeur, il pourrait y avoir de la place pour la discussion. Mais je sais que les discussions que j'ai eues avec certains développeurs des routines d'optimisation, par exemple en ce qui concerne l'implémentation de MILP et d'autres, il a fallu beaucoup de travail pour le rendre suffisamment performant pour être utile.
Re: Que faites-vous avec les questions difficiles des clients comme celle-ci?Salut Byron,
Je suis d'accord avec Peter, poster ici est une bonne chose. Je suis également d'accord pour livrer honnêtement des messages aux clients.
Concernant ce problème spécifique, je répondrai plus tard dans la journée dès que je serai de retour à l'hôtel. J'ai traité de ce sujet dans le passé et je peux vous en donner quelques indications.
Meilleur
Martin
---
Envoyer mobile
Plus tard ...
Salut Byron,
parlons maintenant de problèmes d'optimisation non convexes. Ce sont des problèmes où les solveurs linéaires et la plupart des solveurs quadratiques auront plus de mal à trouver une solution, en particulier avec une certaine certitude qu'il n'y a pas de meilleure solution. Selon d'autres, si l'objectif et toutes les contraintes sont convexes, vous pouvez être sûr de déterminer s'il existe une solution réalisable, de trouver la solution optimale à l'échelle mondiale et de résoudre le problème jusqu'à une très grande taille. Si vous avez une solution non convexe, le problème est beaucoup plus difficile et vous ne pouvez être certain d'aucune de ces choses.
Souvent, des solutions non convexes sont apparues lorsque vous rencontrez des problèmes de programmation d'entiers et de contraintes. Ce type de problèmes que vous essayez d'utiliser avec des solveurs d'optimisation globale, comme des algorithmes génétiques ou évolutifs, ou avec des méthodes mixtes à nombres entiers / binaires ou d'autres méthodes de branche et liées (création répétée de sous-problèmes à résoudre avec des algorithmes plus simples).
Tous ont en commun le fait qu'il existe un algorithme numérique utilisé à l'arrière qui pourrait devenir assez compliqué et numériquement coûteux. Mais cela vous empêche avec une chance plus élevée de tomber sur une solution locale qui peut ne pas avoir grand-chose à voir avec la vraie solution.
Ces méthodes numériques que nous n'avons pas dans JMP pour autant que je sache. Habituellement, vous trouverez ces algorithmes dans des packages d'optimisation ou des logiciels comme MATLAB. Je crois vraiment que le complément Excel n'est pas écrit dans Excel, mais un C / C ++ / MATLAB / Fortan / R ou une autre routine compilé dans un complément Excel * .xla. C'est ce que j'ai fait dans le passé avec MATLAB et MATLAB Compiler à des fins de démonstration ainsi que pour certains projets clients.
Le profileur - pour autant que je sache l'optimisation sous le capot - résout un problème convexe. Vous pourrez alors trouver un optimum global. Si vous avez des valeurs discrètes, vous les résoudre les unes après les autres et choisir la meilleure. Mais vous pouvez vous retrouver coincé dans un optimum local. Je suis heureux de me faire corriger si mon hypothèse est fausse.
Une autre idée pourrait être d'utiliser les réseaux de neurones pour gérer ce genre de problèmes, mais ce n'est généralement pas si évolutif et prend beaucoup de temps à fonctionner. Je ne sais pas non plus quelles fonctions de formation et de transfert nous aurions dans JMP, car elles peuvent faire une grande différence dans la convergence de ces problèmes. Je l'ai utilisé une fois chez un client qui voulait trouver les meilleures et les pires pièces de son portefeuille, afin qu'il puisse se débarrasser des 30 pires pièces et conserver toutes les autres pièces, en particulier les meilleures. La précision du modèle était d'environ 60% de classification correcte pour ceux du milieu et un taux élevé pour le pire groupe. L'utilisation de ces informations pour nettoyer son portefeuille a permis d'économiser des pertes de câlins et d'augmenter considérablement les bénéfices.
Une remarque supplémentaire: Souvent, ces algorithmes sont implémentés pour pouvoir fonctionner en mode parallèle et sont hautement évolutifs. Les problèmes de MILP sont assez courants dans le secteur financier, par exemple pour certains problèmes d'optimisation de portefeuille, par exemple dans les services publics, le pétrole et le gaz et l'énergie. Si le complément dont parle votre client appelle un environnement d'exécution capable par exemple d'algorithmes d'optimisation globale, je ne me demande pas s'il fournira une meilleure solution. S'il s'agit vraiment d'un code écrit Excel / VBA, je serais très intéressé de voir l'algorithme car cela me surprendrait.
J'espère que cela vous donne un aperçu qui vous permet de répondre à la question d'une manière agréable.
Re: Que faites-vous avec les questions difficiles des clients comme celle-ci?Byron:
Généralement, lorsque je suis personnellement déconcerté, je commence à publier le problème ici sur ce forum comme vous l'avez fait à l'étape 1.
Attendez les réponses ... quoi que ce soit d'une «solution» à «JMP ne peut pas faire ça» ou l'habituel, «JMP peut le faire avec le script comme élément clé du chemin de la solution».
Honnêtement, quand c'est quelque chose que JMP ne peut tout simplement pas faire (sans script) ... Je dis simplement au client de manière directe que JMP, tel qu'il est actuellement déployé, n'a pas cette fonctionnalité, mais si c'est le cas, un scripteur suffisamment astucieux pour développer une solution. Heck, je l'ai fait moi-même il y a de nombreuses années avant que JMP ne déploie la méthode EMP de Wheeler. J'ai développé un script grossier et très basique pour faire ce que Wheeler épouse. Inutile de dire que j'étais ravi lorsque JMP a déployé la méthode EMP de Wheeler ... mon script a été mis au pâturage.
Ensuite, je sais que des gens comme Dan Valente, Jeff Perkinson et d'autres regardent notre conversation ici et si le «quelque chose» est un élément qui est envisagé pour une future version géniale.
Nous ne pouvons pas être tout pour tout le monde, 100% du temps, en temps réel.