Group: sci.op-research
From: Wit Jakuczun
Date: Monday, March 24, 2008 5:05 AM
Subject: Re: Counting zero continuous variables

Dnia Sun, 23 Mar 2008 18:45:45 -0700 (PDT)
"xgeneral57@gmail.com" napisa=C5=82(a):

> On Mar 22, 4:20=C2=A0am, Wit Jakuczun wrote:
> > Dnia Sat, 22 Mar 2008 09:18:27 +0100
> > Wit Jakuczun napisa=C5=82(a):
> >
> >
> >
> >
> >
> > > Dnia Fri, 21 Mar 2008 15:35:08 -0700 (PDT)
> > > "xgenera...@gmail.com" napisa=C5=82(a):
> >
> > > > if x(i)=3Dxp(i)-xn(i) where xp(i) and xn(i) are two nonnegative sla=
ck
> > > > variables, then to enforce exactly one of them to be zero =C2=A0I w=
ould
> > > > need to maximize
> > > > |x(i)|=3Dz=3Dxp(i)+xn(i).
> > > > But this is not the case for me.
> > > You can also bind with them two binary variables: xpb(i) and xnb(i)
> > > such that:
> > > =C2=A0 =C2=A0xp(i) <=3D xpb(i)*UB
> > > =C2=A0 =C2=A0xn(i) <=3D xnb(i)*UB
> >
> > > By adding constraint: xpb(i) + xnb(i) =3D 1 you will get exactly one
> > > of them 0 without maximizing |x(i)|.
> >
> > Having: xpb(i) + xnb(i) <=3D 1 you could use the variables to
> > estimate whether x(i) is zero.
> >
> > Best regards
> > --
> > [ Wit Jakuczun =C2=A0 =C2=A0 ]
> > [ WLOG Solutions =C2=A0http://www.wlogsolutions.com]- Hide quoted text -
> >
> > - Show quoted text -
>=20
> Actually, xpb(i) + xnb(i) <=3D 1 cannot be used to determine if x(i) is
> zero or not. b/c x(i)=3D0 implies xp(i)=3D0 and xn(i) =3D 0, and we will
> have:
>=20
> xp(i) <=3D xpb(i)*UB =3D> 0 <=3D xpb(i)*UB
> xn(i) <=3D xnb(i)*UB =3D> 0 <=3D xnb(i)*UB
>=20
> and this implies that at least one of xnb(i) or xpb(i) can be still 1.
>=20
Yes, as Paul suggested you need a to use a small number to separate
xnb(i) and xpb(i) from zero.

Best regards
--=20
[ Wit Jakuczun ]
[ WLOG Solutions http://www.wlogsolutions.com ]