Question: INDR 2 2 0 : Introduction to Computing for Operations Research Homework 5 : The Non - attacking Knights Problem Deadline: May 2 7 ,

INDR 220: Introduction to Computing for Operations Research
Homework 5: The Non-attacking Knights Problem
Deadline: May 27,2024,11:59 PM
In this homework, you will implement a Python script that solves the non-attacking knights
problem using CPLEX. The task is to find the maximum number of knights that can be placed
on an MN chessboard such that no knight attack some other knight. The decision variables
can be formulated as
xij={1ifaknightisplacedatlocation(i,j),0otherwise.
The integer linear programming formulation of this problem becomes
maximize z=i=1Nj=1Mxij
subject to: xij+xkl1,AA(i,j,k,l) where (i,j) and (k,l) are attacking locations
xijin{0,1},i=1,2,dots,M;j=1,2,dots,N.
An example of the non-attacking knights problem with a 26 chessboard can be given as
maximize z=x11+x12+x13+x14+x15+x16+x21+x22+x23+x24+x25+x26
subject to: x11+x231
x12+x241
x13+x251
x13+x211
x14+x261
x14+x221
x15+x231
x16+x241
x11in{0,1},x12in{0,1},x13in{0,1},x14in{0,1},x15in{0,1},x16in{0,1}
x21in{0,1},x22in{0,1},x23in{0,1},x24in{0,1},x25in{0,1},x26in{0,1}.
An optimum solution of the example problem with a 26 chessboard is as follows:
x11***=1,x12***=1,x13***=0,x14***=0,x15***=1,x16***=1
x21***=1,x22***=1,x23***=0,x24***=0,x25***=1,x26***=1
An example of the non-attacking knights problem with a 33 chessboard can be given as
mamizez=x11+x12+x13+x21+x22+x23+x31+x32+x33
subject to: x11+x321x11+x231
x12+x331
x12+x311
x13+x321
x13+x211
x21+x331
x23+x311
x11in{0,1},x12in{0,1},x13in{0,1}
x21in{0,1},x22in{0,1},x23in{0,1}
x31in{0,1},x32in{0,1},x33in{0,1}.
An optimum solution of the example problem with a 33 chessboard is as follows:
x11***=0,x12***=1,x13***=0
x21***=1,x22***=1,x23***=1
x31***=0,x32***=1,x33***=0
Implement your algorithm to solve the non-attacking knights problem in a single interactive
Python notebook using Azure Lab Services. Your notebook should include at least the following
function definition that takes the number of rows and columns as parameters and returns the
solution found.
What to submit: You are provided with a template file named as 0099999 hw05.ipynb,
where 99999 should be replaced with your 5-digit student number. You are allowed to change
the template file between the following lines.
# your implementation starts below
# your implementation ends above
You need to submit your source code in a single file (0099999hw05.py file that you will
download from Azure Lab Services by following "File" / "Save and Export Notebook As..."/
"Executable Script" menu items).
How to submit: Submit the file you edited to Blackboard by following the exact style
mentioned. Submissions that do not follow these guidelines will not be graded.
Late submission policy: Late submissions will not be graded.
Cheating policy: Very similar submissions will not be graded.
 INDR 220: Introduction to Computing for Operations Research Homework 5: The

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!