Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_Исследование операций. Курс лекций.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
293.75 Кб
Скачать

8Основытеориисложностивычислений

Втеориисложностивычисленийвводитсяпонятиетрудноразрешимой(NP-трудной)зада-чи.Существованиеэффективного(быстрого)алгоритмарешенияхотябыоднойизтруд-норазрешимыхзадачвлечетсуществованиетакогородаалгоритмадлялюбойизтакихзадач.Изэтогоследует,чтодлятрудноразрешимыхзадачсуществованиеэффективныхалгоритмоврешениямаловероятно.

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

Примерзадачиполучаетсяпризаменевсехимеющихсявобщейформулировкезадачипа-раметровихконкретнымизначениями.Примерназываетсяда-примером,еслиприсоот-ветствующихзначенияхпараметровобъектобладаетуказаннымивформулировкезадачисвойствами.

Экстремальнаякомбинаторнаязадачасостоитвследующем.НаконечноммножествеX1

определенфункционалF(x),xX1.НеобходимовзаданномподмножествеXмножестваX1отыскатьтакойэлементx,чтоF(x)=min{F(x)|xX}(задачаминимизации),либотакойx0,чтоF(x0)=max{F(x)|xX}(задачамаксимизации).

СопоставимэкстремальнойзадачеBследующуюзадачураспознаванияB1:определить,

существуетлитакойэлементx1взаданноммножествеX,чтоF(x1)y(либоF(x1)y

вслучаезадачимаксимизации)дляданногодействительногочислаy.Очевидно,еслиx

решениезадачиминимизацииB,тоэлементx1Xтакой,чтоF(x1)y,существует

тогдаитолькотогда,когдаF(x)y.Такимобразом,экстремальнаязадачанепроще

соответствующейзадачираспознавания.

Разумныесхемыкодирования.Посколькузадачиинтересуютнассточкизренияраз-работкиалгоритмовихрешенияиреализацииэтихалгоритмовнаЭВМ,входныеданныезадачидолжныбытькаким-тообразомзакодированы.Схемакодированиясопоставляетцепочкусимволовкаждомупримерузадачи.

Оценкавычислительнойсложностиалгоритмарешениязадачи–этофункцияотдлинызаписивходнойинформациизадачи,т.е.оназависитотвыбраннойсхемыкодирования.

Можноподобратьсхемукодирования,котораядаеточеньдлинныекодыпримеровзадачи,такчтопочтилюбойалгоритмбудетэффективнымотносительнодлинтакихкодовимынесможемопределить,какойалгоритмлучше.Крометого,схемакодированияможетвыдаватькодысущественноразнойдлиныдляразныхпримероводнойитойжезадачи.Вэтомслучаенепонятнокакопределятьвычислительнуюсложностьалгоритма–наоднихпримерахонбудетэффективным,надругихнет.

Этиидругиепротиворечиябудутустранены,еслипользоватьсятакназываемымиразум-нымисхемамикодирования.Будемговорить,чтосхемакодированияявляетсяразумной,еслионаудовлетворяетследующимнеформальнымусловиям.

(а)Кодпримеразадачидолженбытькомпактныминедолженсодержатьнеобязатель-нуюинформациюилисимволы.

(б)Числаизпримеразадачидолжныбытьпредставленывдвоичной,либокакой-нибудьинойсистемесчислениясоснованием,отличнымотединицы.

Системасчислениясоснованием,равным1,называетсяунарной.Вэтойсистемечисло3представляетсяввиде111,число4ввиде1111ит.д.(какзарубкиудревнихлюдей).Вунарнойсистемесчислениядляпредставленияцелогочислаxтребуетсяxединицпамяти.Вдвоичнойсистемесчислениявсечислапредставляютсяввидепоследовательностейдвухчисел:0и1.Число3представляетсяввиде11,число4ввиде100,число5ввиде101ит.д.ДляпредставленияцелогочислаxтребуетсяO(log2x)нулейиединиц(единицпамяти).

ФункцияO(x)определяетсяследующимобразом:

lim

x→∞

O(x)

x

=const.

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

(г)Схемакодированиядолжнаобеспечиватьоднородностьприкодированииразличныхпримероводнойитойжезадачи.Однородностьозначает,чтосхемакодированиядолжнаобеспечиватьдлялюбыхдвухразличныхпримеровзадачиполучениекодов,”близких”подлине,еслиэтипримерысодержатблизкиеповеличинечислаиколичествопараметроввобоихпримерахприблизительноодноитоже.

Выполнениеусловияоднородностиможетбытьобеспеченособлюдениемследующегопро-стогоправила.Схемакодированиянедолжназаниматьсяраспознаваниемспецифическихсвойствкодируемогопримеразадачи.Припостроениикодаконкретногопримеразадачи

схемаможетиспользоватьлишьтесвойства,которыенепосредственноуказанывфор-мулировкезадачииявляютсяобщимидлявсехпримеровданнойзадачи.Такимобразом,кодпримеразадачидолженсодержатьлишьтуинформацию,которуюсодержитобщаяформулировказадачи,дополненнаяконкретнымизначениямипараметровзадачи.Условие(г)предотвращаетпоявлениеслишкомкороткихкодовдляотдельныхпримеровзадачи.Сдругойстороны,условие(а)недаетвозможностипоявлятьсяслишкомдлиннымкодам.

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

ДлялюбогопримераIнекоторойзадачивведемврассмотрениедвефункции:

–функцияLength[I],определяющаядлинукодапримераIприиспользованииразумнойсхемыкодированияи

–функцияMax[I],определяющаявеличинунаибольшегочисловогопараметравI.Еслизадачанесодержитчисел,тополагаемMax[I]=1длялюбогопримераI.

Какужеотмечалось,оценкавычислительнойсложностиалгоритмарешениязадачи–этофункцияотдлинызаписивходнойинформациизадачи.

Алгоритмрешениязадачиназываетсяполиномиальным,еслиеговременнаясложностьнепревосходитнекоторогополиномаотфункцииLength[I]длялюбогопримераIэтойзадачи.Соответствующаязадачаназываетсяполиномиальноразрешимой.

ПолиномиальноразрешимыезадачиобразуютклассP.

Алгоритмрешениязадачиназываетсяпсевдополиномиальным,еслиеговременнаяслож-

ностьнепревосходитнекоторогополиномаотдвухфункций:Length[I]иMax[I],-длялюбогопримераIэтойзадачи.Соответствующаязадачаназываетсяпсевдополиномиальноразрешимой.

КлассNPзадач.NP-полныеиNP-трудныезадачи.Задачапринадлежитклассу

NP,еслионаможетбытьрешеназаполиномиальноевремянатакназываемойнедетер-

минированноймашинеТьюринга,котораяреальнонесуществует.Натакоймашинеза

полиномиальноевремяможнореализоватькакполиномиальныетакинекоторыенеполи-номиальныеалгоритмы.

ЗадачаΠназываетсяNP-трудной,еслилюбаязадачаизклассаNPполиномиальносво-

дитсякней,т.е.имеяполиномиальныйалгоритмрешенияNP-труднойзадачи,можнополучитьполиномиальныйалгоритмрешениялюбойзадачиизклассаNP.Задачарас-познаванияΠназываетсяNP-полной,еслионаNP-труднаипринадлежитNP.

Понятиеполиномиальнойсводимоститранзитивно.ПоэтомудлядоказательстваNP-трудностинекоторойзадачидостаточнополиномиальносвестикнейнекоторуюNP-труднуюзадачу:

длялюбогопримераизвестнойNP-труднойзадачизаполиномиальноеотегоразмерно-стивремяпостроитьпримернашейзадачиипоказать,чторешениеNP-труднойзадачи

существуеттогдаитолькотогда,когдасуществуетрешениепостроенногопримеранашейзадачи.

ЭкстремальнаязадачаназываетсяNP-трудной,еслисоответствующаяейзадачараспо-знаванияявляетсяNP-трудной.

Изсуществованияполиномиальногоалгоритмарешениякакой-нибудьNP-труднойзадачиследуетсуществованиеполиномиальныхалгоритмоврешениядлявсехзадачизкласса

NP,включаявсеNP-полныезадачи.

Какужеотмечалось,всеполиномиальноразрешимыезадачиполиномиальноразрешимы

нанедетерминированноймашинеТьюринга.Поэтому

ОднаконеясноP=NPилиP/=NP.

P⊆NP.

ПосколькунидляоднойNP-труднойзадачинеразработанполиномиальныйалгоритм

решения,внастоящеевремяобщепринятойявляетсягипотезаотом,что

P/=NP.

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

ЗаразработкуполиномиальногоалгоритмарешениялюбойNP-труднойзадачиустановленпризв1.000.000долларов.

NP-трудныевсильномсмыслезадачи.НарядусразделениемзадачнаNP-трудныеиполиномиальноразрешимые,NP-трудныезадачи,всвоюочередь,подразделяютсянаNP-трудныевсильномсмыслезадачиизадачи,имеющиепсевдополиномиальныеалго-ритмырешения.NP-трудныевсильномсмыслезадачинеимеютпсевдополиномиальногоалгоритмарешения.

ПримерыNP-трудныхзадач.

NP-труднаязадача,имеюшаяпсевдополиномиальныйалгоритмрешения:РАЗБИЕНИЕ:

j=1

Заданыцелыеположительныечислаa1,a2,...,arиAтакие,что r

aj=2A.Требуется

определить,существуетлимножествоXN={1,2,...,r}такое,что jXaj=A.

NP-труднаявсильномсмыслезадача:

3-РАЗБИЕНИЕ:

Заданыцелыеположительныечислаa1,a2,...,a3rиAтакие,чтоA/4<aj<A/2,

j=1

j=1,...,3r,и 3r

aj=rA.Требуетсяопределить,существуетлиразбиениемножества

{1,2,...,3r}наrнепересекающихсяподмножествX1,X2,...,Xrтакое,что jXlaj=A,

l=1,...,r.

Нетруднозаметить,еслирешениезадачи3-РАЗБИЕНИЕсуществует,токаждоеизмно-жествX1,...,Xrсодержитвточноститриэлемента.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]