Общая философия говорит, что если в задаче есть натуральный параметр, значит надо ее решать (как правило) сначала для небольших значений этого параметра.
Если
, то ответ тривиален (любое линейное отображение подходит). Если
, то, очевидно,
должно (и может) иметь вид
, где
--- любое отображение множества
в себя,
а
обозначает базисный вектор-столбец.
Теперь уместно рассмотреть
. Заметим, что
--- это не что иное, как множество неупорядоченных пар
. На этом множестве можно рассмотреть граф:
, если
и
, как пары, имеют один общий
элемент. Это отношение может быть охарактеризовано в терминах сложения по модулю 2:
, если
. Если
--- отображение с нужными свойствами, и
, то
, для некоторого
, откуда
, откуда
. Значит,
индуцирует отображение множества вершин графа в себя, которое переводит каждое ребро в ребро. Поэтому оно переводит клику в клику. Это можно использовать.
Если
, то, как легко видеть, клики максимального размера в
имеют вид
, где
. Поэтому
индуцирует некоторое отображение множества
в себя. Ну и можно подумать о том, не получается ли
как раз из этого отображения.
А при
будут, явно, и другие отображения. Например, пусть
--- любая линейная функция, и пусть
. Тогда отображение по правилу
сохраняет
, как легко видеть. Некоторые из таких отображений индуцированы элементами из
, а другие нет. Кажется, полная группа обратимых
имеет порядок
. Подробности предлагается разобрать самостоятельно.
Что до
, то тут, наверное, надо действовать примерно так же. Для пар элементов из
есть
возможных типов взаимного расположения, с точностью до действия группы
. Надо пары каждого (или хотя бы одного, скажем когда пересечение максимально) типа как-то охарактеризовать в "линейных" терминах, и потом это использовать.
В общем, как-то так.