Can't add custom search functionality (see here), therefore can't give more detailed information on how the array should be traversed other than "min_first". Therefore need to hack the priority of "edges before middle" into a "first --> last" framework.
This can be done by creating a mapping:
{1 --> 1, n --> 2, 2 --> 3, 3 --> n-1, ...}
As with the int-to-letters map, this can be encoded in MiniZinc via a dense array.
This is prohibitively difficult to do. Also when a similar idea was attempted manually (alternate between smallest, indomain_min and largest, indomain_max) it made things worse. Therefore scrap it.
Can't add custom search functionality (see here), therefore can't give more detailed information on how the array should be traversed other than "min_first". Therefore need to hack the priority of "edges before middle" into a "first --> last" framework.
This can be done by creating a mapping: {1 --> 1, n --> 2, 2 --> 3, 3 --> n-1, ...}
As with the int-to-letters map, this can be encoded in MiniZinc via a dense array.