MASON-INTEREST-L Archives

April 2018

MASON-INTEREST-L@LISTSERV.GMU.EDU

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

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

Print Reply
Subject:
From:
Stewart Aitken <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Date:
Wed, 4 Apr 2018 11:30:39 -0400
Content-Type:
multipart/mixed
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