What do you do with tough customer questions like this?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hello SEs,
I recently received this challenge from a customer. It goes into a area I'm not particularly strong in. Does anyone have suggestions on what to do with this?
Hey Byron,
A big joke among my coworkers is that they shouldn’t mention doing something in Excel in my presence. The reason is because every time someone mentions doing a calculation outside of JMP, I say “JMP can do that.” Particularly I have tried to get people to let go of Excel, but I also say it when people are talking about doing something in Matlab, etc. So, now I think I am forced to ask JMP to help me not “eat crow.”
I have continued to research my optimization problem. I was disappointed to get shut down going through tech support, but I understand. I finished listening to all the lectures for the Convex Optimization course at Stanford via ITunesU that I mentioned to you earlier. I learned quite a bit. One thing that I learned is that Excel has an Add-in solver to solve optimization problems. It appears that Excel’s Solver is better than JMP’s profiler! Mostly I say this because Solver allows non-linear constraints. It is also possible that I understand how to use the Excel solver better than the Profiler or the non-linear platform - if that is the right platform for my problem. In either case, I argue, that makes Solver “better.” It may very well be that Excel’s Solver is less efficient than JMP’s Profiler, but that is not a point for my particular comparison.
So, I challenge JMP to provide a platform capable of solving non-convex optimization problems with non-linear objective functions and non-linear constraints that is easy to understand and use. Of course I make this challenge from the most positive perspective of feedback from an otherwise very satisfied customer
Don’t worry, I’ll keep this apparent Excel superiority between us until JMP has had ample opportunity to “make it right.”
-J
Re: What do you do with tough customer questions like this?Martin,
Thank you for your helpful comments. Its nice to have confirmation that I'm in over my head.
At some point I'd like to work through this class to get a better understanding of how the problem could be solved.
Convex Optimization | Stanford Lagunita
Cheers,
Byron
Re: What do you do with tough customer questions like this?Last note: I'm not sure we want JMP to have a competetive optimization platform. This would be a huge amount of developers implementation work. And there are already very specialized tools out there where you would have a hard time if you do not provide the full set of optimization routines.
If the customer could provide you a use case with a good value message there might be room for discussion. But I know the discussions I had with some developers of the optimization routines, e.g. when it came to MILP implementation and others, it was lots of work to make it performant enough to be useful.
Re: What do you do with tough customer questions like this?Hi Byron,
I agree with Peter, posting here is a good thing. As well delivering messages honestly to customers I agree.
Regarding this specific issue I will answer later today as soon I'm back in the hotel. I have dealt with that topic in the past and can provide you some insights to that.
Best
Martin
---
Send Mobile
Later ...
Hi Byron,
so now talking about non-convex optimization problems. That are problems where linear solvers and most of quadratic solvers will have it harder to find a solution, especially with a certain amount of certainty that there is no better solution. Other said, if the objective and all constraints are convex, you can be confident of determining wether there is a feasible solution, finding the globally optimal solution, and solving the problem up to a very large size. If you have a non-convex solution the problem is much harder and you cannot be certain of any of these things.
Often non-convex solutions came up when you have integer and constraint programming problems. Those kind of problems you would try to use with global optimization solvers, as genetic or evolutionary algorithms, or with special Mixed-Integer/Binary-Integer or other Branch and Bound methods (repeatably building subproblems to be solved with simpler algorithms).
All have in common, that there is a numeric algorithm used in the back which could become quite complicated and numerically expensive. But it prevents you with a higher chance from running into a local solution which may not have much to do with the real solution.
Those numerical methods we do not have in JMP as far I know. Usually you would find those algorithms in optimization packages or software like MATLAB. I truly believe the Excel add-in is not written in Excel, but a C/C++/MATLAB/Fortan/R or other routine compiled to an Excel Add-in *.xla. This I did in the past with MATLAB and MATLAB Compiler for demo purpose as well for some customer projects.
The profiler - as far I understand the optimization under the hood - solves for a convex problem. You will then be able to find a global optimum. If you have discrete values you would solve for one after each other and pick the best. But you may get stuck in a local optimum. I'm happy to get corrected if my assumption is wrong.
Another idea could be to use Neural Networks to handle those kind of problems, but usually that is not that scalable and takes long time to run. I'm also not sure what training and transfer functions we would have in JMP as these can make a big difference in the convergence for those problems. I used it once at a customer tho wanted to find the best and worst parts in his portfolio, so he could get rid of the 30 worst parts and keep all the other parts, especially the best ones. The accuracy of the model was about 60% correct classification for those in the middle and a high rate for the worst group. Using that information to clean up his portfolio saved hug losses and increased the profit by a huge scale.
One additional note: Often those algorithms are implemented to be able to run in parallel mode and are highly scalable. MILP problems are quite common in the finance industry, e.g. for certain portfolio optimization problems e.g. in utilities, oil&gas and energy area. If the add-in your customer is talking calls a run-time environment which is capable of e.g. global optimization algorithms I do not wonder it will provide a better solution. If it really is an Excel/VBA written code, I'd be highly interested to see the algorithm as this would surprise me.
Hope that gives you some insight which allows you to answer the question in a nice way.
Re: What do you do with tough customer questions like this?Byron:
Generally when I'm personally flummuxed, I start posting the issue here on this forum just as you've done as step 1.
Wait for responses...anything from a 'solution' to 'JMP can't do that' or the usual, 'JMP can do that with scripting as a key part of the solution path.'
Quite honestly when it's something that JMP just plain can't do (without scripting)...I just tell the customer in a forthright manner that, JMP as currently deployed out of the box, doesn't have this functionality but if one is an artful enough scripter a solution may be developed. Heck, I did just that myself, many many years ago before JMP deployed Wheeler's EMP method. I developed a crude, very basic script to do some of what Wheeler espouses. Needless to say I was delighted when JMP deployed Wheeler's EMP method...my script was put to pasture.
Then I know people like Dan Valente, Jeff Perkinson and others watch our chatter here and if the 'something' is an element that is being considered for a future release great.
We can't be all things to all people, 100% of the time, real time.