Re: Generating systems of constraints
- To: mathgroup at smc.vnet.net
- Subject: [mg72371] Re: Generating systems of constraints
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 26 Dec 2006 08:59:27 -0500 (EST)
- Organization: Uni Leipzig
- References: <emdp92$k3f$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi, assuming your variables named a[1],a[2], a[3] .. than define SetAttributes[b, Orderless] MakeConstrains[n_Integer] := With[{vNo = n}, Block[{var, constrain}, var = Table[a[i], {i, 1, vNo}]; constrain = Union[Flatten[Outer[b[#1, #2] &, var, var]] /. b[v1_, v1_] :> Sequence[]] /. b -> NotEqual; constrain = Join[constrain, 0 <= # <= vNo & /@ var]; And @@ constrain ] ] and MakeConstrains[120000] will construct the conditions for 120000 variables. Regards Jens Alec Resnick wrote: > Good day! I was hoping someone might be able to point me in the > right direction with a problem I ran into. I'm trying to solve an > arbitrarily large system of linear, Diophantine equations whose > solutions are subject to two constraints > 1) All the variables are distinct; i.e., none of the variables are > equal to one another. > 2) All of the variables are bounded by 1 <= x <= # of variables. > > So in essence, I have a system of equations with N variables that I > would like to generate solutions for by assigning {1,2...,N} to each > variable. > > Now, I know that I can use Reduce to solve this system; however, I > don't know how to generate constraints like this for a given N, and > I'd rather not type them all out. Does anyone have any suggestions? > I don't need to do this for very many systems, but more than four, so > I don't want to have to do too much of it manually. > > Thanks! > > Gratefully, > a. > > >