Каков наилучший способ описать алгоритмическую сложность обнаружения сговора для сайта онлайн-покера с десятью миллионами игроков?
Предположим (я не думаю, что эти предположения имеют большое значение, поэтому не стесняйтесь их игнорировать, а просто уточнять):
- Что на сайте зарегистрировано 10 000 000 зарегистрированных пользователей.
- Что эти игроки сыграли в общей сложности 5 миллиардов рук.
- Единственной информацией, которую вы предоставили, является "база данных истории рук" для сайта, содержащая все игровые карты и действия для каждой руки.
- Другими словами, вы не можете использовать ярлыки, такие как просмотр IP-адресов, поиск необычных диаграмм rake/profit и т.д.
- Предположим, вам предоставлена функция, которая, когда передана группа точно N (где N находится между 2 и 10) игроков, возвращает TRUE, если ВСЕ игроки в группе сговорились ВМЕСТЕ. Если некоторые, но не все игроки, являются комлуляторами, функция возвращает FALSE. Возвращаемое значение TRUE выполняется с (например) уверенностью 75%.
Ваша задача - составить исчерпывающий список каждого игрока, который вступил в сговор, вместе с полным списком игроков, с которыми он вступил в сговор. Недавно я услышал эту проблему, описанную как NP-hard, но это точно? Иногда мы называем вещи "NP" или "NP-hard", которые просто "трудны".
Спасибо!