{"id":654,"date":"2009-04-26T14:44:55","date_gmt":"2009-04-26T18:44:55","guid":{"rendered":"http:\/\/mat.tepper.cmu.edu\/blog\/?p=654"},"modified":"2009-04-26T14:44:55","modified_gmt":"2009-04-26T18:44:55","slug":"microsoft-solver-foundation-yaml","status":"publish","type":"post","link":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/2009\/04\/26\/microsoft-solver-foundation-yaml\/","title":{"rendered":"Microsoft Solver Foundation:  YAML?"},"content":{"rendered":"<p>Is the Microsoft Solver Foundation Yet Another Modeling Language?  I have <a href=\"http:\/\/meetings.informs.org\/Practice09\/blog\/?p=133\">some views at the INFORMS Practice Conference Blog<\/a>.  Best part of the workshop:  the tagline &#8220;The Right Decision&#8221;.  Perhaps INFORMS should have used that instead of &#8220;The Science of Better&#8221;.<\/p>\n<blockquote><p><a href=\"http:\/\/www.solverfoundation.com\/\">Microsoft Solver Foundation<\/a> became public late in 2008, and I have been curious what it is all about, so I sat in on this morning\u2019s technical workshop. Two hours and six pages of notes later, I think I have a better idea.\u00a0 At its heart, Solver Foundation is a pure <a href=\"http:\/\/en.wikipedia.org\/wiki\/.NET_Framework\">\u201c.NET\u201d<\/a> based library for mathematical programming.\u00a0\u00a0 At some level, that is all the justification it needs to exist.\u00a0 There are a lot of .NET shops out there, so being able to work purely within .NET is a real plus to them.\u00a0 For those of us who are not working in such an environment, there are still a number of nice aspects to Solver Foundation (SF), including<\/p>\n<ol>\n<li>Modeling Breadth.\u00a0 SF is based on a very general algebraic modeling structure (think Mathematica), so it is, in theory, not limited to \u201cjust\u201d mixed-integer programming.\u00a0 Current solver support includes constraint programming, MIP, quadratic programming, and nonlinear programming, but the underlying structure is extremely general.<\/li>\n<li>Built-in parallelism to take advantage of either networks of machines or multicore systems.\u00a0 Since much of the improved speeds in computers these days comes from the addition of cores (even notebook computers can have four or more cores), it is critical that systems take advantage of this.\u00a0 The example given in the talk was a \u201chorse race\u201d between alternative optimization codes: SF will easily let you run CPLEX, XPRESS, and other solvers in parallel on the same problem, terminating when the fastest solver on that instance terminates.<\/li>\n<li>Integration with Visual Studio and, particularly, Excel.\u00a0 My (MBA) students really like to work within Excel, which has limited our use of modeling languages.\u00a0 SF gives hope that we can embed real, scalable, models within Excel easily.<\/li>\n<li>Symbolic and rational arithmetic possibilities.\u00a0 For some models, roundoff errors create huge problems.\u00a0 SF solvers have the ability to work in rational arithmetic (keeping track of numerators and denominators) to provide exact calculations.<\/li>\n<\/ol>\n<p>For me, the best parts are the ability to combine constraint programming with mixed-integer programming, and the hope that maybe I can teach some real operations research to my MBA students through SF\u2019s links with Excel.\u00a0\u00a0 Of course, it is inspiring to hear a Microsoft person talk about the multi-billion dollar market they hope to reach through optimization.<\/p>\n<p>My favorite part:\u00a0 the tagline \u201cThe Right Decision\u201d.\u00a0 That pretty well sums up operations research.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Is the Microsoft Solver Foundation Yet Another Modeling Language? I have some views at the INFORMS Practice Conference Blog. Best part of the workshop: the tagline &#8220;The Right Decision&#8221;. Perhaps INFORMS should have used that instead of &#8220;The Science of Better&#8221;. Microsoft Solver Foundation became public late in 2008, and I have been curious what &hellip; <a href=\"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/2009\/04\/26\/microsoft-solver-foundation-yaml\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Microsoft Solver Foundation:  YAML?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,13,28],"tags":[],"class_list":["post-654","post","type-post","status-publish","format-standard","hentry","category-computing","category-conferences","category-informs"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=654"}],"version-history":[{"count":0,"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/654\/revisions"}],"wp:attachment":[{"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mat.tepper.cmu.edu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}