Проблема представляет собой вариант Correlation Clustering (CC) Bansal, N., Blum, A. and Chawla, S. (2004). «Корреляционная кластеризация». Журнал машинного обучения (Специальный выпуск по теоретическим достижениям в кластеризации данных, стр. 86–113, doi: 10.1023 / B: MACH.0000033116.57574.95.
Исходная формулировка CC находится на полном графе и для каждого ребра у нас есть два веса: и . Для данного разбиения пусть будет равно если и находятся в одном и том же кластере а противном случае. Тогда значение разбиения в равно .G(v,w)a(v,w)b(v,w)PcP(v,w)a(v,w)vwPb(v,w)PV∑v,wc(v,w)
Ваша задача эквивалентна для всех v, w и допускает отрицательное (оригинальная статья допускала только + 1, -1 весов). Статья Эрика Д. Демейна, Дотана Эмануэля, Амоса Фиат, Николь Имморлика: корреляционная кластеризация в общих взвешенных графах. Теор. Вычи. Sci. 361 (2-3): 172-187 (2006) http://dx.doi.org/10.1016/j.tcs.2006.05.008 дает алгоритм -приложения для общего (т. Е. Не полного) графики. Я полагаю, что это может быть распространено и на вашу проблему, и я бы не исключил приближения с постоянным множителем.b ( v , w ) O ( log n )a(v,w)=0b(v,w)O(logn)
Описанные PTAS основаны на методе плавного полиномиального программирования: в самом общем случае я не думаю, что ваша задача могла бы удовлетворить требования метода.