[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: tcipro!ramu@unix.sri.com (Ramu Iyer), slug@Warbucks.AI.SRI.COM*Subject*: Constraint Programming in Lisp (a query)*From*: bud%cleves@gte.com (Bud Frawley)*Date*: Tue, 11 Sep 1990 09:14:00 -0400*Cc*: bud%cleves@gte.com*In-reply-to*: <9009101217.AA08117@unix.sri.com>

Date: Sun, 9 Sep 90 21:35:20 PDT From: tcipro!ramu@unix.sri.com (Ramu Iyer) I'd like to know if there is any code out there that will help me solve constraints -- actually a set of linear inequalities -- in Lisp. I am told there is such a scheme in Scheme (no pun intended :-). ... --Ramu Email: ramu%tcipro.uucp@unix.sri.com I guess I don't understand the problem. Are you willing to write a straightforward Simplex funtion yourself? I've done things such as the singular value decomposition of matrices using Lisp as a programming language augmented by a few of the built-in matrix functions. For example, (MAKE-ARRAY (LIST NROWS NCOLUMNS) ... ) creates what you and I think of as a matrix having NROWS rows and NCOLUMNS columns which can be treated using AREF and (SETF (AREF ... )) to implement typical row-column operations. Also, there are a small number of functions documented in the "Operations on Matrices Section" which handle some operations quickly; I suggest you rely on them when possible. For example, given a MATRIX, (MATH:MULTIPLY-MATRICES (MATH:TRANSPOSE-MATRIX MATRIX) MATRIX) is a quick and simple way to compute a typical form. One aspect of style that is appropriate when you're analyzing a few large matrices is based on the observation that matrix programming often requires the re-use of certain matrix forms, e.g., the "transpose times itself" above. One way to deal with this is to create Flavors or Classes representing matrices; have one Matrix Instance slot point to the matrix itself and others point to saved computed matrices that you expect will be needed over and over. -- Bud Frawley

**References**:**Constraint Programming in Lisp (a query)***From:*tcipro!ramu@unix.sri.com (Ramu Iyer)

- Prev by Date:
**DEBUG-INFO-AREA grows to enormous size** - Next by Date:
**DEBUG-INFO-AREA grows to enormous size** - Previous by thread:
**Constraint Programming in Lisp (a query)** - Next by thread:
**tail recursion (boundary conditions)** - Index(es):