Изменения

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

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

1774 байта убрано, 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>, то есть завершатся с опозданием, могут быть выполнены в конце в любом порядке.Тогда <tex>L(G_1) = \{ w\#w^R \mid w \in \Sigma^* \}<br/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> на ее местоЕсли данный экземпляр ПСП имеет решение, то <tex>L(G_2)<br/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>L(G_1) \cap L(G_2) = \varnothing</tex>. Тогда следующий алгоритм вычислит оптимальное множество  Таким образом мы свели проблему соответствий Поста к <tex>S\overline{A}</tex>, следовательно, задача о проверке на пустоту пересечения двух КС-грамматик неразрешима.}}Из неразрешимости вышеприведенной задачи следует неразрешимость ряда других задач. Рассмотрим несколько примеров.
По двум КС-грамматикам <tex>S \leftarrow \varnothingG_1</tex> '''for''' <tex>j = 1</tex> '''to''' <tex>n</tex>: '''if''' <tex>j</tex> опаздывает, и все более ранние простои заполнены: найти <tex>i: w[i] = \min\limits_{k \in S}(w[k])G_2</tex> '''if''' <tex>wможно построить КС-грамматику для [i] < w[j]</tex>: заменить <tex>i</tex> на <tex>j</tex> в <tex>S</tex> '''else''': добавить <tex>i</tex> в <tex>S</tex> и поставить <tex>i</tex> на место самого раннего простояТаким образом, работы, не попавшие в <tex>S</tex>, будут иметь минимальное значение <tex>w_i</tex>Замкнутость КС-языков относительно различных операций#.D0.9A.D0.BE.D0.BD.D0.BA.D0.B0.D1.82.D0.B5.D0.BD.D0.B0.D1.86.D0.B8.D1.== Доказательство корректности =={{Теорема8F|statement=Вышеописанный алгоритм корректен и строит оптимальное множество работ конкатенации]] задаваемых ими языков <tex>SL(G_1)L(G_2)</tex>.|proof=Пусть <tex>S</tex> {{---}} множество работ, вычисленное По аналогии с помощью алгоритма. Тогда все работы, находящиеся в этом множестве, будут выполнены в срок, то есть штраф за них налагаться не будет, так как если работа этим мы можем рассматривать язык <tex>j</tex> заменила работу <tex>i</tex>, которая успевала выполниться до истечения <tex>d_i</tex>, то <tex>jL(G_1)\#L(G_2)\#</tex> так же успеет выполниться в срок, потому что где <tex>d_i \leq d_j</tex>.<br>Пусть <tex>S^*</tex> {{---}} множество работ без штрафов в оптимальном расписании.<br>Определим работы <tex>l</tex> и <tex>k</tex> следующим образом:* <tex>l#</tex> {{---}} первая работа в <tex>S</tex>: <tex>l \notin S^*</tex>* <tex>k</tex> {{---}} первая работа в <tex>S^*</tex>: <tex>k \notin S</tex>Покажемновый символ, что не встречающийся в <tex>S^*</tex> работа <tex>k</tex> может быть заменена работой <tex>l</tex> без увеличения значения целевой функции. Рассмотрим два случая:<br>1. Пусть <tex>l < k</tex>алфавите.<br>ТоЗаметим, что <tex>k</tex> не принадлежит множеству <tex>S</tex>пересечение языков непусто, значит, что либо на некотором шаге появилась опаздывающая работа <tex>j</tex>, которая заменила <tex>k</tex>, либо работа <tex>k</tex> опаздывала и <tex>w_k</tex> было меньше то есть <tex>L(G_1) \mincap L(G_2) \limits_{i ne \in S}w_ivarnothing </tex>, тогда и поэтому она не была добавлена. В любом случае в это время работа <tex>l</tex> уже принадлежала <tex>S</tex>. Из этого следуеттолько тогда, что когда <tex>w_k L(G_1)\#L(G_2)\leq w_l#</tex>, во втором случае очевидно, почему, а в первом {{содержит [[Алгоритм Ландау---}} потому что на этапе замены мы выбрали <tex>k</tex>, а не <tex>l</tex>Шмидта#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0. Следовательно, мы не ухудшим целевую функцию заменой <tex>k</tex> на <tex>l</tex>B8.<br>2D1. Пусть <tex>l > k</tex>8F|тандемный повтор]].<br>Замена работы <tex>k</tex> в <tex>S^*</tex> на работу <tex>l</tex> не противоречит условиюАналогично можно заметить, что за все работы в этом множестве штраф налагаться не будет, так как пересечение <tex>k</tex> выполнялась в срок, а <tex>d_k L(G_1) \cap L(G_2) \ne \leq d_lvarnothing </tex> тогда и все работы выполняются одинаковое количество времени. Следовательнотолько тогда, когда <tex>l</tex> так же будет выполнена в срок. Осталось доказать, что <tex>w_k L(G_1)\leq w_l#L(G_2)^R</tex>содержит палиндром. <br>
Таким образом, мы имеем:
{{Утверждение
|statement= Пусть дана грамматика <tex>G</tex>, <tex>L(G) = L</tex>. Тогда следующие задачи неразрешимы:
# Содержит ли <tex>L</tex> тандемный повтор.
# Содержит ли <tex>L</tex> палиндром.
}}
577
правок

Навигация