Я вважаю, що я знайшов зменшення від гамільтонового шляху , тим самим доводячи проблему NP-тяжкої.
Назвіть слово свідком для , якщо воно відповідає умові з питання (для кожного є такий, що ).w∈Σ∗AL∈Am≥1{wm+i∣0≤i<|L|}=L
Розглянемо версію рішення оригінальної задачі, тобто вирішимо, чи для деяких і є свідком довжини максимум . Цю проблему можна вирішити, використовуючи оригінальну задачу як оракул у поліноміальний час (знайдіть найкоротшого свідка, а потім порівняйте його довжину до ).Ak≥0Akk
Тепер про основу скорочення. Нехай - простий, непрямий, сполучений графік. Для кожного нехай є множиною, що містить вершину та всі її суміжні краї. Встановіть і . Тоді має гамільтонову стежку тоді і тільки тоді, коли є свідок довжиною не більше .G=(V,E)v∈VLv={v}∪{e∈E∣v∈e}vΣ=EA={Lv∣v∈V}GA2|E|+1
Доказ. Нехай - гамільтонів шлях у та безліч усіх ребер на шляху. Для кожної вершини , визначимо безліч . Виберіть довільне впорядкування для кожного . Слово є свідком , оскільки представлений підрядком , від , і для кожного , ,v1e1v2…en−1vnGH={e1,e2,…,en−1}vUv=Lv∖HαvUvw=αv1e1αv2e2…en−1αvnALv1α1e1Lvnen−1αnvii∉{1,n}Lvi представлений . Крім того, кожне ребро в зустрічається двічі в за винятком ребер у , які трапляються один раз, і кожна вершина в виникає один раз, даючи .ei−1uvieiEw|V|−1HV|w|=2|E|+1
Для іншого напрямку, нехай довільний свідок довжини не більше . Зрозуміло, що кожен і зустрічається в принаймні один раз. Не втрачаючи загальності, припустимо, що кожне зустрічається в максимум удвічі, а кожне виникає рівно один раз; інакше коротший свідок може бути знайдений шляхом вилучення елементів з . Нехай - це сукупність усіх ребер, що виникають у рівно один раз. Зважаючи на припущення вище, випливає, що.wA2|E|+1e∈Ev∈Vwe∈Ewv∈VwH⊆Ew|w|=2|E|−|H|+|V|
Розглянемо безперервну подстроку виду , де , . Ми говоримо, що суміжні. Зверніть увагу , що якщо , то , тому що відбувається тільки один раз, але він знаходиться поруч з двома вершинами в . Тому, в кращому випадку один з може бути в . Так само жодне ребро в може виникати в перед першою вершиною або після останньої вершини.wue1e2…ekvu,v∈Vei∈Eu,vei∈Hei={u,v}eiGeiHHw
Тепер євершин, тому . Звідти випливає, що . Оскільки ми припускаємо, що , ми отримуємо рівність. Звідти отримуємо . За принципом Діріхле, існує ребро з між кожною парою суміжних вершин в . Позначимо всі елементи з у порядку, у якому вони відображаються у . Звідси випливає , що є гамільтонів шлях в . |V||H|≤|V|−1|w|≥2|E|+1|w|≤2|E|+1|H|=|V|−1Hwh1h2…hn−1Hwv1h1v2h2…hn−1vnG□
Оскільки проблема вирішення існування гамільтонівського шляху є важкою для NP, а вищезазначене відновлення є поліномом, то оригінальна проблема є і NP-жорсткою.