Commit 5efb10b4 authored by Taddeüs Kroes's avatar Taddeüs Kroes

Add heuristic column height to fragmentation score

parent a8f3eb0d
......@@ -201,6 +201,7 @@ class State:
"""
Minimize the sum of dist(i,j) between all blocks i,j of the same color.
Magnify vertical distances to avoid column stacking.
Add the vertical components of i and j to prioritize lower columns.
"""
def dist(i, j):
yi, xi = divmod(i, COLUMNS)
......@@ -211,7 +212,8 @@ class State:
if self.groups[i] == self.groups[j]:
return abs(yj - yi)
return abs(xj - xi) + abs(yj - yi) * 2 - 1
return abs(xj - xi) + abs(yj - yi) * 2 - 1 + \
(self.nrows - yi) + (self.nrows - yj)
colors = {}
for i, block in enumerate(self.blocks):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment