Изменения

Перейти к: навигация, поиск

Обсуждение участницы:Анна

413 байт добавлено, 16:16, 4 января 2017
Нет описания правки
{{Теорема|statement= Задача о проверке на пустоту пересечения двух КС-грамматик неразрешима.|proof= Пусть <tex> P A = \{ (G_1, G_2) \mid p_iL(G_1) \cap L(G_2) =1 \mid varnothing \sum w_i U_i}</tex> ={{Задача. Сведем [[Примеры неразрешимых задач: проблема соответствий Поста|definition=Дано проблему соответствий Поста]] к <tex>m\overline{A}</tex> одинаковых станков, на которых нужно выполнить таким образом показав, что дополнение проблемы неразрешимо. Так как рекурсивные языки [[Замкнутость разрешимых и перечислимых языков относительно теоретико-множественных и алгебраических операций|замкнуты относительно дополнения]], то из неразрешимости дополнения проблемы будет следовать неразрешимость самой проблемы. Для любого экземпляра ПСП <tex>n(x_1, x_2, ..., x_n)</tex> работ. Любая работа на любом станке выполняется единицу времени. Для каждой работы есть время окончания и <tex>d_i(y_1, y_2, ..., y_n)</tex> {{---}} ожидается, что до этого времени она будет закончена, и штраф над алфавитом <tex>w_i\Sigma</tex>, который нужно будет выплатить в случае, если работа была закончена после можно подобрать символ <tex>d_i\# \notin \Sigma</tex>. Необходимо минимизировать суммарный штраф, который придется выплатить.}} == Описание алгоритма ==Для каждого экземпляра построим грамматики:Оптимальное расписание для этой задачи будем задавать множеством работ * <tex>G_1 : S\rightarrow aSa \mid a\#a</tex>, которые будут выполнены в начале, как после будет показано, именно за эти работы штраф начислен не будет. Работы, которые не войдут в для всех <tex>Sa \in \Sigma</tex>, то есть завершатся с опозданием, могут быть выполнены в конце в любом порядке.Тогда <brtex>Чтобы построить множество L(G_1) = \{ w\#w^R \mid w \in \Sigma^* \}</tex>, где обозначение <tex>Sw^R</tex>, будем добавлять работы в порядке неуменьшения их времен окончания, и как только некоторая работа {{---}} разворот <tex>jw</tex> опаздывает, удалим из .* <tex>G_2 : S\rightarrow x_iSy^R_i \mid x_i\#y^R_i</tex> работу с минимальным значением для всех <tex>w_ii = 1, 2, \dots n</tex> и поставим . Тогда <tex>jL(G_2) = \{ x_{i_1} x_{i_2} \dots x_{i_m} \# (y_{i_1} y_{i_2} \dots y_{i_m})^R \mid i_1, i_2, \dots i_m \in \{ 1, 2, \dots n \}, m \geqslant 1 \}</tex> на ее местоЕсли данный экземпляр ПСП имеет решение, то <brtex>Пусть есть работы L(G_2)</tex> содержит хотя бы одну строку вида <tex>1 w\cdots n#w^R</tex> с временами окончания , поэтому <tex>d_1 L(G_1) \leq d_2 cap L(G_2) \leq ne \cdots \leq d_nvarnothing</tex>. Будем называть ''простоем '' временной интервал, в который на машине ничего и наоборот, если он не имеет решения, то <tex>L(G_2)</tex> не обрабатывается. Тогда следующий алгоритм вычислит оптимальное множество содержит строк такого вида, соответственно <tex>SL(G_1) \cap L(G_2) = \varnothing</tex>.
Таким образом мы свели проблему соответствий Поста к <tex>S \leftarrow \varnothingoverline{A}</tex>, следовательно, задача о проверке на пустоту пересечения двух КС-грамматик неразрешима.}}Из неразрешимости вышеприведенной задачи следует неразрешимость ряда других задач. Рассмотрим несколько примеров. '''for''' <tex>j = 1</tex> '''to''' <tex>n</tex>: '''if''' По двум КС-грамматикам <tex>jG_1</tex> опаздывает, и все более ранние простои заполнены: найти <tex>i: w[i] = \min\limits_{k \in S}(w[k])G_2</tex> '''if''' <tex>wможно построить КС-грамматику для [[iЗамкнутость КС-языков относительно различных операций#.D0.9A.D0.BE.D0.BD.D0.BA.D0.B0.D1.82.D0.B5.D0.BD.D0.B0.D1.86.D0.B8.D1.8F|конкатенации] < w[j]задаваемых ими языков </tex>: заменить <tex>iL(G_1)L(G_2)</tex> на . По аналогии с этим мы можем рассматривать язык <tex>jL(G_1)\#L(G_2)\#</tex> в , где <tex>S</tex> '''else''': добавить <tex>i\#</tex> {{---}} новый символ, не встречающийся в алфавите. Заметим, что пересечение языков непусто, то есть <tex>SL(G_1) \cap L(G_2) \ne \varnothing </tex> , тогда и поставить только тогда, когда <tex>iL(G_1)\#L(G_2)\#</tex> на место самого раннего простоясодержит [[Алгоритм Ландау-Шмидта#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F|тандемный повтор]].  Таким образомАналогично можно заметить, работы, не попавшие в что пересечение <tex>SL(G_1) \cap L(G_2) \ne \varnothing </tex>тогда и только тогда, будут иметь минимальное значение когда <tex>w_iL(G_1)\#L(G_2)^R</tex>содержит палиндром.== Доказательство корректности ==Таким образом, мы имеем:{{ТеоремаУтверждение|statement=Вышеописанный алгоритм корректен и строит оптимальное множество работ Пусть дана грамматика <tex>SG</tex>.|proof=Пусть , <tex>SL(G) = L</tex> {{---}} множество работ, вычисленное с помощью алгоритма. Тогда все работы, находящиеся в этом множестве, будут выполнены в срок, то есть штраф за них налагаться не будет, так как если работа <tex>j</tex> заменила работу <tex>i</tex>, которая успевала выполниться до истечения <tex>d_i</tex>, то <tex>j</tex> так же успеет выполниться в срок, потому что следующие задачи неразрешимы:# Содержит ли <tex>d_i \leq d_jL</tex>тандемный повтор.<br>Пусть # Содержит ли <tex>S^*L</tex> {{---}} множество работ без штрафов в оптимальном расписаниипалиндром.
}}
577
правок

Навигация