|
|||||||||||
|
DESIRE and Vector Compilation 1. COMPATIBILITY WITH OLDER VERSIONS OF DESIRE This new upgrade introduces substantial improvements and new features. But all user programs developed under DESIRE/W and DESIRE/N96T, and thus all examples in our MIT Press and Taylor and Francis textbooks,[1,2] still run without any modifications. Improved versions of many of our textbook examples are included in the new release. 2. LARGER SIMULATION MODELS AND PROGRAMS DESIRE now includes all the neural-network-modeling features of DESIRE/ NEUNET; under Linux or Cygwin, DESIRE can solve up to 40,000 first-order differential equations with fixed- and variable-step Runge-Kutta rules, or up to 600 differential equations with variable-order/ variable-step Gear and Adams rules. (20,000 and 400 under Windows). Models can additionally comprise tens of thousands of difference equations; you can combine scalar and vector equations. DESIRE can simulate complicated plants controlled with multiple neural networks and/or fuzzy logic,[1,7] or take Monte Carlo statistics on hundreds of replicated models in a single computer run.[5,6] Runtime compilation is so fast that the results of interactive model changes appear immediately. 3. MORE GENERAL AND FASTER MATRIX/VECTOR OPERATIONS [3]DESIRE’s VECTOR, MAT d/dt, and delta operations, while still available, were replaced with new, far more powerful operations in DYNAMIC program segments. Specifically, Vector y = f(x,z,alpha,... ) compiles into y[i] = f(x[i], z[i], alpha, ...)(i = 1,2,…, n)Vectr d/dt x = f(x,y,alpha,…) compiles into d/dt x[i] = f(x[i], y[i], alpha, …)(i = 1,2, …, n)Vectr delta x = f(x, y, alpha, …) compiles into x[i] = x[I] + f(x[i], y[i], alpha, …)(i = 1,2, …, n)where x, y, z, … are n-dimensional arrays (vectors), and alpha is a scalar. DESIRE vector expressions can now contain unlimited nested parentheses, and scalars can be expressions containing literal numbers as well as symbolic variables. As an example,Vector y = (1 – v) * (cos(alpha * z * t) + u) compiles into y[i] = (1 - v[i]) * (cos(alpha * z[i] * t) + u[i]) (i = 1, 2, . . . ., n) Significantly, any vector in such an expression can also be a suitably conformable matrix/vector product like A * v, or an index-shifted vector like u{m} with components u[1 + m], u[2 + m], …. [2]; or a vector defined by a selected row of a "pattern matrix". Here are some examples: Vector layer2 = tanh(W * layer1 + bias) (neural-network layer, n neurons)Vectr d/dt x = xdot | Vectr d/dt xdot = - w * x (n replicated models for "vectorized" Monte Carlo simulation) Vectr d/dt u = udot Vectr d/dt udot = a*(u{-1} – 2 * u + u{1}) (method of lines for wave equation)The last example illustrates how index shifting can be used for efficient method-of lines solution of partial differential equations. To account for boundary conditions in such problems, DESIRE accepts subscripted differential-equation state variables, as in d/dt u[14] = a * sin(w * t) where u[14] must be a component of a previously declared one-dimensional STATE array u. Such subscripted equations conveniently correct boundary elements of vector equations. The new vector compiler generates the n vector-element assignments in-line, without causing any runtime loop overhead.[4] Similarly, submodel invocations do not cause runtime overhead.[1,2] DOT products of vectors, too, had their loops "unrolled" for higher speed. The syntax of DOT operations remains unchanged.[1,2] 6. A NEW ADAPTIVE-RESONANCE EMULATION ALGORITHM [8] DESIRE’s new CLEARN algorithm for adaptive-resonance emulation is simpler, much faster. This is the first pseudo-adaptive-resonance algorithm which requires no pattern normalization whatsoever (DESIRE Manual Chap. 8).
REFERENCES |
|||||||||||