[Top][All Lists]

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

[Help-glpk] Re: how make Solver to select arbitrary subset of nonzero va

From: Andrew Makhorin
Subject: [Help-glpk] Re: how make Solver to select arbitrary subset of nonzero variables with specified cardinality
Date: Tue, 09 Nov 2010 14:14:15 +0300

> My problem is planning resources for recognition of objects .
> I have various kinds of of resources and other side various kinds of objects.
> To increase reliability of recognition more than one resource must be set in 
> result plan for the same 
> object.
> For this purpose I want to have a "overlap" param, which Solver must 
> interpret in next s.t. as 
> "For every Objects[i] must be planned overlap[j] types of Resources"
> s.t. overlapping{j in Objects}: card ( { i in Resources,j: x[i,j]!=0 } ) = 
> overlap[j];
> This incorrect, I see because in this context x[i,j] can not be used.
> I hope someone have idea what I am talking about))), please help me.

First, you need to introduce auxiliary binary variables, say, as

var y{i in Resources, j in Objects}, binary;
s.t. foo{i in Resources, j in Objects}: x[i,j] <= M * y[i,j];

where y[i,j] = 0 means that x[i,j] = 0 and y[i,j] = 1 means that 
0 <= x[i,j] <= M, and "big M" is an appropriate upper bound of x[i,j].
Then your constraint can be written as:

s.t. overlapping{j in Objects}: sum{i in Resources}y[i,j] = overlap[j];

reply via email to

[Prev in Thread] Current Thread [Next in Thread]