<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Hi,</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">I'm trying to learn how to create models in CyLP.</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">My first attempt was to solve the n-queens puzzle.</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">I need a way to create a matrix of binary variables indicating if there is a queen at each cell.</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Basic constraints are those restricting one queen per row and per column.</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Since the example in CyLP adds a list of variables, my first idea was to create a list of variables and iterate some parts of this list to create constraints. It failed because it seems and CyLP variables can't be iterated in the same way of python lists. How can I retrieve a range of some variables to add in constraints ? Is there a more elegant way of implementing these simple constrains ? Thanks !</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Follows my bugged example: </div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace">import numpy as np</font></div><div class="gmail_default"><font face="monospace, monospace">from <a href="http://cylp.cy">cylp.cy</a> import CyClpSimplex</font></div><div class="gmail_default"><font face="monospace, monospace">from cylp.py.modeling.CyLPModel import CyLPArray</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">n = 8</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">s = CyClpSimplex()</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">x = s.addVariable( 'x', n*n, True )</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">xrow = []*n</font></div><div class="gmail_default"><font face="monospace, monospace">for i in range(n):</font></div><div class="gmail_default"><font face="monospace, monospace">    xrow[i] = x[i*n:i*n+n]</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">for i in range(n):</font></div><div class="gmail_default"><font face="monospace, monospace">    s += (CyLPArray([1]*n)) * xrow[i] == 1</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">s.writeLp('a.lp')</font></div></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-family:monospace,monospace">=============================================================<br>Haroldo Gambini Santos<br>Computing Department<br>Universidade Federal de Ouro Preto - UFOP<br>email: haroldo [at ] <a href="http://iceb.ufop.br" target="_blank">iceb.ufop.br</a><br>home/research page: <a href="http://www.decom.ufop.br/haroldo/" target="_blank">www.decom.ufop.br/haroldo</a><br><br><br>It has long been an axiom of mine that the little things are infinitely<br>the most important.<br>             -- Sir Arthur Conan Doyle, "A Case of Identity"<br></span></div></div></div>
</div>