[Date Index]
[Thread Index]
[Author Index]
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>
Prev by Date:
**Re: ListCurvePathPlot**
Next by Date:
**Re: Series expansion of x_n=Tan[x_n]**
Previous by thread:
**Re: Re: Looping**
Next by thread:
**Re: Re: Looping**
| |