MASON-INTEREST-L Archives

April 2018

MASON-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Mime-Version:
1.0
Content-Type:
multipart/mixed; boundary="part-vgEBOPdszCWZAABkzUuHAHlP2D3icNYlA2bbIjAYlACOA"
Date:
Wed, 4 Apr 2018 11:30:39 -0400
Reply-To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Subject:
From:
Stewart Aitken <[log in to unmask]>
Message-ID:
Sender:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Comments:
To: Sean Luke <[log in to unmask]>
Parts/Attachments:
Hello,

If possible can you point out what changes are required.

Included in this message are a small movie of the horizontal rectangle and the vertical rectangle of the same overall grid size.
It can be seen that the issue is not the ObjectGrid2D but rather the neighbourhood method.

I have been through the code thoroughly and cannot find the error.

The default neighbour priority order looks like [ x-1, y, ], [ x, y-1 ]. [x+1, y ], [ x, y+1 ] from the central cell.

 It appears to be related to the von Neumann neighbours method used in the replicate part of Agents2. I have changed the distance to 1 
 rather than the 8 shown previously so the next cell location should be simple to identify.
 The horizontal rectangle appears correct whilst the vertical rectangle has two issues.
 
If the start cell is on the bottom row other than in the L/H/Corner the next cell is located at x = x-1, y = 0 rather than the correct location.

 Secondly the bottom row is not recognised by the returning child and thus there are empty cells that could be occupied.



 This works completely as expected.    Horizontal  Start X = 5 : Start Y = 4  nextX = 4 : NextY = : 4 : counter = : 1 Cells remaining :28  nextX = 3 : NextY = : 4 : counter = : 2 Cells remaining :27  nextX = 2 : NextY = : 4 : counter = : 3 Cells remaining :26  nextX = 1 : NextY = : 4 : counter = : 4 Cells remaining :25  nextX = 0 : NextY = : 4 : counter = : 5 Cells remaining :24  nextX = 0 : NextY = : 3 : counter = : 6 Cells remaining :23  nextX = 0 : NextY = : 2 : counter = : 7 Cells remaining :22  nextX = 0 : NextY = : 1 : counter = : 8 Cells remaining :21  nextX = 0 : NextY = : 0 : counter = : 9 Cells remaining :20  nextX = 1 : NextY = : 0 : counter = : 10 Cells remaining :19  nextX = 2 : NextY = : 0 : counter = : 11 Cells remaining :18  nextX = 3 : NextY = : 0 : counter = : 12 Cells remaining :17  nextX = 4 : NextY = : 0 : counter = : 13 Cells remaining :16  nextX = 5 : NextY = : 0 : counter = : 14 Cells remaining :15  nextX = 5 : NextY = : 1 : counter = : 15 Cells remaining :14  nextX = 4 : NextY = : 1 : counter = : 16 Cells remaining :13  nextX = 3 : NextY = : 1 : counter = : 17 Cells remaining :12  nextX = 2 : NextY = : 1 : counter = : 18 Cells remaining :11  nextX = 1 : NextY = : 1 : counter = : 19 Cells remaining :10  nextX = 1 : NextY = : 2 : counter = : 20 Cells remaining :9  nextX = 2 : NextY = : 2 : counter = : 21 Cells remaining :8  nextX = 3 : NextY = : 2 : counter = : 22 Cells remaining :7  nextX = 4 : NextY = : 2 : counter = : 23 Cells remaining :6  nextX = 5 : NextY = : 2 : counter = : 24 Cells remaining :5  nextX = 5 : NextY = : 3 : counter = : 25 Cells remaining :4  nextX = 4 : NextY = : 3 : counter = : 26 Cells remaining :3  nextX = 3 : NextY = : 3 : counter = : 27 Cells remaining :2  nextX = 2 : NextY = : 3 : counter = : 28 Cells remaining :1  nextX = 1 : NextY = : 3 : counter = : 29 Cells remaining :0  The only change to the code is to swap the gridWidth and gridHeight.  The first child is incorrect for the von Neumann neighbourhood with a distance of 1.  in the film you can see the finish is correct as the last child is surrounded with occupied cells.  Vertical  Start X = 4 : Start Y = 5  nextX = 3 : NextY = : 0 : counter = : 1 Cells remaining :28  nextX = 2 : NextY = : 0 : counter = : 2 Cells remaining :27  nextX = 1 : NextY = : 0 : counter = : 3 Cells remaining :26  nextX = 0 : NextY = : 0 : counter = : 4 Cells remaining :25  nextX = 0 : NextY = : 1 : counter = : 5 Cells remaining :24  nextX = 1 : NextY = : 1 : counter = : 6 Cells remaining :23  nextX = 2 : NextY = : 1 : counter = : 7 Cells remaining :22  nextX = 3 : NextY = : 1 : counter = : 8 Cells remaining :21  nextX = 4 : NextY = : 1 : counter = : 9 Cells remaining :20  nextX = 4 : NextY = : 0 : counter = : 10 Cells remaining :19    This is the same as the above with a new start location of the bottom  left hand corner and the first child is correct.  However the run completes when there is an empty space in the bottom row.  It is as if the bottom row is not recognised.    Vertical2   Start X = 0 : Start Y = 5  nextX = 0 : NextY = : 4 : counter = : 1 Cells remaining :28  nextX = 0 : NextY = : 3 : counter = : 2 Cells remaining :27  nextX = 0 : NextY = : 2 : counter = : 3 Cells remaining :26  nextX = 0 : NextY = : 1 : counter = : 4 Cells remaining :25  nextX = 0 : NextY = : 0 : counter = : 5 Cells remaining :24  nextX = 1 : NextY = : 0 : counter = : 6 Cells remaining :23  nextX = 2 : NextY = : 0 : counter = : 7 Cells remaining :22  nextX = 3 : NextY = : 0 : counter = : 8 Cells remaining :21  nextX = 4 : NextY = : 0 : counter = : 9 Cells remaining :20  nextX = 4 : NextY = : 1 : counter = : 10 Cells remaining :19  nextX = 3 : NextY = : 1 : counter = : 11 Cells remaining :18  nextX = 2 : NextY = : 1 : counter = : 12 Cells remaining :17  nextX = 1 : NextY = : 1 : counter = : 13 Cells remaining :16  nextX = 1 : NextY = : 2 : counter = : 14 Cells remaining :15  nextX = 2 : NextY = : 2 : counter = : 15 Cells remaining :14  nextX = 3 : NextY = : 2 : counter = : 16 Cells remaining :13  nextX = 4 : NextY = : 2 : counter = : 17 Cells remaining :12  nextX = 4 : NextY = : 3 : counter = : 18 Cells remaining :11  nextX = 3 : NextY = : 3 : counter = : 19 Cells remaining :10  nextX = 2 : NextY = : 3 : counter = : 20 Cells remaining :9  nextX = 1 : NextY = : 3 : counter = : 21 Cells remaining :8  nextX = 1 : NextY = : 4 : counter = : 22 Cells remaining :7  nextX = 2 : NextY = : 4 : counter = : 23 Cells remaining :6  nextX = 3 : NextY = : 4 : counter = : 24 Cells remaining :5  nextX = 4 : NextY = : 4 : counter = : 25 Cells remaining :4

ATOM RSS1 RSS2