Re: Re: Looping
- To: mathgroup at smc.vnet.net
- Subject: [mg95958] Re: [mg95896] Re: Looping
- From: Adam Strzebonski <adams at wolfram.com>
- Date: Fri, 30 Jan 2009 05:48:12 -0500 (EST)
- References: <glmt16$mqu$1@smc.vnet.net> <200901291056.FAA18117@smc.vnet.net> <96061AD3-433E-4217-AC48-C21E57BB602F@mimuw.edu.pl>
- Reply-to: adams at wolfram.com
Andrzej Kozlowski wrote: > > On 29 Jan 2009, at 11:56, David Bailey wrote: > >> Jeff Albert wrote: >>> I have a program written in Mathematica that has been running now for >>> about three days. How can I tell if it's in a loop? >>> >> The best approach is to start small, and work your way up to a big >> problem like that if necessary. Start by aborting the calculation and >> then start testing much smaller examples. >> >> Some Mathematica functions - such as Simplify or FullSymplify - seem to >> get stuck in this sort of way - if they do that, they will hang for ever. >> >> David Bailey >> http://www.dbaileyconsultancy.co.uk >> > > > I doubt very much that they they ever get "stuck" in the way you > describe. Both Simplify and FullSimplify make use of algebraic > algorithms some of which have very high complexity (e.g. exponential or > even double exponential in the number of variables). Even when it seems > that the expression you are simplifying involves only a few variables, > its algorithmic complexity may be high because transcendental parts of > expressions are often treated as independent variables. Of course, the > human time scale: minutes, hours, lifetimes, has not particular place in > computer algebra so there is no reason at all why your program should > not run for 10 years and then suddenly come up with an answer. > In fact, I believe Simplify and FullSimplify have some built in > protection against infinite loops so they are probably somewhat less > likely to fall into them than some other functions. Also, note that both > Simplify and FullSimplify have the option TimeConstraint, which can be > sometimes useful in dealing with complex expressions. If you run > FullSimplify on an expression with TimeConstraint set to, say, an hour, > and if it returns to you the same expression that you originally gave to > it as input, it won't necessarily mean that it had entered an infinite > loop but more likely that it had attempted a transformation or a > sequence of transformations which it could not complete before the time > limit expired. > > > Andrzej Kozlowski > Yes, Simplify and FullSimplify have built in protection against infinite loops, but no global time limit. The TimeConstraint option specifies a time limit allowed for a single transformation. If the time limit expires the current transformation is aborted, but then (Full)Simplify will attempt other transformations with a fresh time allowance for each new transformation. The default value of TimeConstraint is 5 minutes for Simplify and Infinity for FullSimplify. Best Regards, Adam Strzebonski Wolfram Research
- References:
- Re: Looping
- From: David Bailey <dave@removedbailey.co.uk>
- Re: Looping