Sorry wrong question, that tells me if the number set is odd or even.

-- 
  Nigel Galloway
  nigel_gallo...@operamail.com

On Thu, Oct 10, 2013, at 04:06 AM, Nigel Galloway wrote:
> Michael,
> 
> Does this not imply that we could just say sum = 2a + z where a is an
> integer >=0 and z is binary?
> 
> -- 
>   Nigel Galloway
>   nigel_gallo...@operamail.com
> 
> On Wed, Oct 9, 2013, at 06:00 AM, Meketon, Marc wrote:
> > Michael.  This is also very clever.
> > 
> > Another explanation of your code is the following:
> > 
> > Variable  a  is a non-negative integer (and always <= N2hi),  b  is
> > binary, z  is binary.  There are 4 constraints:
> > (1) sum=2a+b
> > (2) z>=b-a
> > (3) z<=b
> > (4) z<=(1-N2hi/N2lo)b - a/N2lo + N2hi/N2lo
> > 
> > When sum=1 we must have a=0, b=1.  Constraints (2) becomes z >= 1, (3)
> > becomes z <= 1, and (4) becomes z <=1.  Hence z = 1.
> > 
> > For any sum that is even,  a = sum/2 and  b=0.  Constraint (2) is then
> > non-binding since b-a <=0 and we know z >=0.  Constraint (3) is z <=0. 
> > Constraint (4) (since b=0) is z <= (N2hi - a)/N2lo.  Since  0 <= a <=
> > N2hi, this is a non-binding since constraint (3) is tighter.  Hence z=0.
> > 
> > For any sum that is odd, with sum >= 3, we know that 1 <= a <= N2lo and b
> > = 1.  Constraint (2) is non-binding because b-a <= 0.  Constraint (3)
> > with z <= 1 is non-binding.  Constraint (4) becomes z <= 1-a/N2lo.  Since
> > 1 <= a <= N2lo, we know 0 <= 1-a/N2lo < 1, implying z < 1 (strict
> > inequality), and then the binary constraint forces z=0.
> > 
> > 
> > -----Original Message-----
> > From: Michael Hennebry [mailto:henne...@web.cs.ndsu.nodak.edu]
> > Sent: Tuesday, October 08, 2013 1:43 PM
> > To: Meketon, Marc
> > Cc: Nigel Galloway; Andrew Makhorin; help-glpk@gnu.org;
> > pietro.scio...@archinet.it
> > Subject: Re: [Help-glpk] [Fwd: I: Modelling binary variable]
> > 
> > On Tue, 8 Oct 2013, Meketon, Marc wrote:
> > 
> > > Are you sure that Z = Q[2]-Q[1]?  For the case where x[1]=1, x[2]=0, 
> > > x[3]=0, we have Q[1]=0, Q[2]=0, Q[3]=1, and then Q[3]-Q[2] = 1 which is 
> > > the correct answer.
> > 
> > Z = Q[1]-Q[2]
> > he has Q sorted in non-ascending order.
> > 00 no ones  0-0=0
> > 10 one one  1-0=1
> > 11 two or more ones 1-1=0
> > exactly what you want
> > The size of N does not matter.
> > 
> > Meketon's code has the advantage of ease of coding and understanding, but
> > it doubles the dimensionality.
> > 
> > Assume one has an integer expression sum:
> > 0<=sum<=N
> > One wants z==1 iff sum==1 else 0
> > Define N2lo=floor(N/2), N2hi=ceil(N/2)
> > Note N=N2lo+N2hi, H2hi-N2lo in {0, 1}
> > Add two (not N) more integer variables:
> > 0<=a<=N2hi
> > b binary
> > 
> > require
> > sum=2a+b
> > z>=b-a
> > z<=b
> > z<=(1-N2hi/N2lo)b - a/N2lo + N2hi/N2lo
> > 
> > The last constraint on z should be multiplied by N2lo to ensure
> > integrality of the coefficients.
> > 
> > Done.
> > 
> > The first two constraints on z are fairly obvious.
> > The last needs more explanation.
> > 
> > The diagram below is for N==7.
> > 
> >     3  0 -
> >     2  0 0
> >   a 1  0 0
> >     0  0 1
> > 
> >        0 1
> >        b
> > 
> > The rectangle gives the values of z for all valid combinations of a and
> > b.
> > The given constraints on z are all facets of the polyhedron.
> > The first is for facet (0, 0, 0)(0, 1, 1)(1, 0, 0).
> > The second for facet (0, 0, 0)(0, 1, 1)(N2hi, 0, 0).
> > The third for facet (N2lo, 1, 0)(0, 1, 1)(N2hi, 0, 0).
> > Substitution will verify.
> > 
> > 
> > Note that exhaustive testing is possible:
> > The number of combinations that need testing is at most 2*(N+1)**2 .
> > 
> > --
> > Michael   henne...@web.cs.ndsu.nodak.edu
> > "On Monday, I'm gonna have to tell my kindergarten class, whom I teach
> > not to run with scissors, that my fiance ran me through with a
> > broadsword."  --  Lily
> > 
> > This e-mail and any attachments may be confidential or legally
> > privileged. If you received this message in error or are not the intended
> > recipient, you should destroy the e-mail message and any attachments or
> > copies, and you are prohibited from retaining, distributing, disclosing
> > or using any information contained herein.  Please inform us of the
> > erroneous delivery by return e-mail. Thank you for your cooperation.
> 
> -- 
> http://www.fastmail.fm - Send your email first class
> 
> 
> _______________________________________________
> Help-glpk mailing list
> Help-glpk@gnu.org
> https://lists.gnu.org/mailman/listinfo/help-glpk

-- 
http://www.fastmail.fm - IMAP accessible web-mail


_______________________________________________
Help-glpk mailing list
Help-glpk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to