Какой алгоритм позволит построить оптимальные «группы» терминов?

У меня есть таблица данных, и я хочу извлечь конкретные записи. Записи указаны в различных, почти случайные способы (как не важно), но я хочу иметь возможность идентифицировать их с помощью 11 конкретных терминов. По сути, мне задают много запросов к неиндексированным полям, и мне приходится переписывать их с использованием определенных индексированных полей - за исключением того, что благодаря системе Enterprisey это не так просто: данные должны быть упакованы определенным образом это позволяет избежать прямого контакта с SQL.

Было бы проще привести пример в двух измерениях, хотя в самой задаче используется 11, которое, вероятно, изменится:

  123
 +---+
A|X O|
B| X |
C|X O|
 +---+

Если бы я хотел сгруппировать все X в приведенной выше сетке, я мог бы сказать: A1, B2 и C1 . Лучше было бы (A, C) 1 и B2 . Еще лучше было бы (A, B, C) (1,2) - пустые пространства могут быть включены или исключены для этой проблемы, они не имеют значения. Какой' Важно уменьшить количество групп, получить все «крестики» и избежать «проблемных».

Чтобы дать подсказку по определению размеров, реальная проблема обычно имеет дело от 100 до 5000 «хороших» записей. Также не обязательно иметь идеальный ответ - достаточно хорошего ответа.

1
задан Trevel 5 October 2010 в 23:16
поделиться