home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   sci.physics.research      Current physics research. (Moderated)      17,516 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 16,452 of 17,516   
   rockbrentwood@gmail.com to Jonathan Thornburg   
   Re: how to find smallest-area ellipsoid    
   03 Apr 19 21:58:51   
   
   On Sunday, March 31, 2019 at 11:51:47 PM UTC-5, Jonathan Thornburg wrote:   
   > I have a data-analysis problem, and I wonder if someone can suggest   
   > software to solve it.   
   >   
   > Summary:   
   > I have a number of points (typically 300 to 1000) in $R^2$.  I'm looking   
   > for code (in any reasonable programming language) to find the smallest-area   
   > ellipsoid which encloses 95% of the points.  The code doesn't need to be   
   > particularly efficient.   
      
   ALGLIB has a large number of algorithms in it for solving differential   
   equations, integration, linear and non-linear optimization, statistical   
   analysis, neural net algorithms, interpolation (featuring the extremely   
   efficient and precise interpolation by rational functions as well as   
   radial basis and inverse distance weighted interpolation and spline).   
      
   You can put together your own algorithm and implementation using the   
   resources at your disposal with the methods provided. To make the   
   problem on hand accessible to non-linear optimization, what you might do   
   is smear out the "inside of" function for a point so that it goes from 1   
   (when well inside an ellipse) to 0 (when well outside an ellipse)   
   smoothly. Then you can encode the problem as a constrained optimization   
   problem, ensuring that the total value of the membership function remain   
   at or above 0.95 x the number of points, while setting the optimization   
   to minimize the size of the ellipse.   
      
   Essentially, what this does is make the boundary of the ellipse   
   fuzzy. So, you have an adjustable "sharpness" parameter that is used to   
   define the "membership" function; and the sharper you set up the   
   problem, the more accurately it will reflect the 100% 0-1-only sharp   
   limit of the membership function (but the longer the convergence time   
   will take).   
      
   Warning, a proviso: ALGLIB is heavily front-loaded with infrastructure;   
   because it is actually C that "simulates" C++ (almost as if C++ had been   
   run through "cfront" or something) and that's in one namespace   
   (alglib_impl) and then wraps C++ on top of that (in another namespace:   
   alglib).   
      
   But it is fast, if you set it up right. Even the GPL version can run in   
   multiple cores in parallel, if you have the right compiler and right   
   compiler settings (GCC can compile to multi-core).   
      
   I'll be distributing a branch off the GPL version soon that tears down   
   much of this infrastructure. It, itself, is just an intermediate form of   
   a newer, yet to be completed/released, library I named after its   
   flagship project (the future robot named and modelled on a close   
   friend); on which several of the issues and/or bugs and/or design   
   inefficiencies in the library are addressed and resolved. I might post a   
   followup to on this later. It has a Makefile for "make test" that   
   contains the configuration I'm using.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca