В общем, коллеги геометры, давайте тогда вместе обсудим некоторые моменты.
Мы с Хербертом независимо друг от друга пришли к выводу что регулярное заполнение "ромбиками" по краю поля может дать неплохие результаты.
Предпосылками для этого было решение для размерности N=5 и наличие ромбов в решениях других размерностей.
Решение для N=5, чтобы было понятнее, выглядит так (могу это постить, так как правилами конкурса не запрещено размещать решения для не участвующих в конкурсе размерностей):
Код:
N=26
223220000 O O - O O
223322000 O O - - O O
333233300 - - - O - - -
233333320 O - - - - - - O
223333322 O O - - - - - O O
023233232 O - O - - O - O
003333333 - - - - - - -
000223322 O O - - O O
000022322 O O - O O
{0,1,3,4},{0,1,4,5},{3},{0,7},{0,1,7,8},{0,2,5,7},{},{0,1,4,5},{0,1,3,4}
Самые внимательные заметили цифры 3 в моём решении - это пустые поля, куда уже нельзя поставить точку.
Если проследить как на поле возникают эти места при добавлении новых точек, то можно заметить много интересного.
После ромбика возникает сначала "полоса отчуждения" шириной в 1 единицу, после второго ромбика - в 4 единицы. Более формально это описал Херберт, за что ему ещё раз огромное спасибо!
Скажу только что подобный подход вместе с 6-лучевой симметрией даёт общий рейтинг примерно 19. То есть это не самый оптимальный способ.
Я начал копать дальше, и заметил одну очевидную вещь: те точки, которые отстоят от исходной на нечётное расстояние, не прибавляют "точек отчуждения" между этими точками. Другими словами, если мы используем ромбики целиком, то получаем между двумя этими ромбиками максимальное число "точек отчуждения", так как ромб содержит все 4 комбинации точек (чётное-чётное, нечётное-четное, чётное-нечётное и нечётное-нечётное). Другие способы заполнения должны давать меньшую плотность в тех зонах где были точки ромбов, но они могут дать меньше "точек отчуждения", некоторые из которых дополнительно заполнятся точками.
Я пробовал некоторые варианты заполнения "ленточками" и "косичками", но пока не нашёл как это может помочь в увеличении числа точек в решении.
Ещё одна идея - порезать ромбы со сдвигом так, чтобы минимизировать число "точек отчуждения". Хотя скорее всего это то же самое что и первый подход.
В общем, можно попробовать вернуться к перебору паттернов по краям поля. Вот только вменяемую целевую функцию мне придумать не удалось. Просто максимизация незанятых мест, куда ещё можно поставить точку, эффекта не даёт.