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.
>
>
>