Эта проблема комбинаторной оптимизации NP-сложная? - PullRequest
5 голосов
/ 14 октября 2010

Я работал над проблемой комбинаторной оптимизации, которая, как я подозреваю, является NP-сложной, и генетический алгоритм хорошо работал с нашим набором данных. Мы являемся исследовательской группой и планируем публиковать наши результаты в нашей области (не по математике или CS), и я хотел бы изучить сложный вопрос, прежде чем отправлять рукопись на рецензию.

Есть два основных вопроса:

1) Я хотел бы знать, изучалась ли эта конкретная проблема оптимизации. Я интенсивно обыскивал освещенную, но не видел ничего такого же.

2) Если проблема не была изучена, я мог бы попытаться сделать доказательство приводимости и хотел бы, чтобы некоторые указатели указывали на хороших NP-полных кандидатов для сокращения.

Проблема может быть описана двумя способами, как вариант подпоследовательности и как проблема двудольного графа.

В аромате подпоследовательности я хочу найти «расслабленную» подпоследовательность, которая позволяет перестановки и оптимизировать, чтобы минимизировать количество перестановок. Например: (. = Любой другой символ)

Запрос: abc, Цель: ..b.a.b.c., Результат: abc (нормальная подпоследовательность)

Запрос: abc, Цель: ..b.a.c.a., Результат: bac (подпоследовательность с одной перестановкой)

Двухсторонняя формулировка - это проблема согласования или линейного назначения, когда график разбивается на символьные узлы запроса и целевые символьные узлы. Ребра соединяют символы запроса с целевыми символами, так что существует ровно одно ребро от каждого символа запроса до целевого символа. Задача состоит в том, чтобы свести к минимуму количество пересечений краев (также называемое «число пересечений» в освещенном). Это похоже на алгоритмы компоновки двудольных графов, которые переупорядочивают размещение узлов, чтобы минимизировать пересечения ребер, но моя проблема требует, чтобы оба порядка узлов оставались фиксированными.

Есть какие-нибудь мысли экспертов по вопросам 1 или 2?

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 03 января 2014

Я не думаю, что это NP-сложный. Смотрите работы Певзнера и Ханнехали. Документ, который приходит на ум, называется «От капусты к репе». Идея состоит в том, чтобы найти минимальное количество инверсий для перехода от одной строки к другой. У них есть алгоритм polytime для этого.

1 голос
/ 14 октября 2010

Просто некоторая идея: это как-то эквивалентно нахождению минимального числа подкачки, необходимого для сортировки массива (MIN-SBR)?Если да, то это NP-Hard .

(кстати, вы работаете над чем-то похожим на это ?)

0 голосов
/ 15 октября 2010

Будет ли Query: abc Цель: ..c.b.a.a Результат: cba, тогда будет три перестановки (согласно вашему использованию термина)? Если так, то, возможно, вы имеете в виду транспозиции, а не перестановки. Транспозиция - это замена двух соседних символов.

Хороший вопрос. Нас интересует отображение из Query -> Target, которое имеет как можно меньше пересечений . Это очень мотивирует для упоминания двудольных краевых пересечений в оригинальном посте. В качестве альтернативы, вы можете подумать о максимизации статистики ранга, как у Спирмена, по сравнению с отображением.

Кроме того, из любопытства, сколько уникальных символов в запросе / цели? - Джастин Пил 18

Типичный запрос: 100, типичная цель: 1000. Комбинаторно, это огромное пространство для решения.

0 голосов
/ 14 октября 2010

Проблема с «проблемой слов» должна быть сложнее, верно? - J-16 SDiZ 14

Да, наличие нескольких появлений символа в цели, кажется, делает мою проблему более сложной, чем MIN-SBR, поэтому с этой точки зрения моя задача будет, по крайней мере, такой же сложной, как и NP-полная. С другой стороны, мне пока неясно, как их центральное представление об обращении блоков повлияет на мое утверждение о NP-полноте.

Я уверен, что было бы приятно узнать, может ли моя оптимизация быть решена за полиномиальное время. Иными словами, было бы неловко, если бы рецензент вернулся с пятью строками псевдокода, который находит глобальный максимум в O (n).

...