Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Course_manual

.pdf
Скачиваний:
70
Добавлен:
27.03.2015
Размер:
915.59 Кб
Скачать

вершин, накрывающих все его ребра. Построить минимальное по числу вершин вершинное покрытие заданного графа.

63.В заданном графе найти все его подграфы, которые являются ободами.

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

65.Вершину графа а назовем неподвижной, если она является

неподвижной точкой любого его автоморфизма ϕ , т. е. ϕ (a) = a . Найти

все неподвижные вершины заданного графа.

66. Определить, является ли заданный граф гамильтоновым.

67.Граф назовем асимметричным, если у него имеется единственный автоморфизм тождественный. Определить, является ли асимметричным заданный граф.

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

69.В графе найти максимальное (по количеству ребер) подмножество попарно несмежных ребер.

70.Ребро графа накрывает его вершину, если оно инцидентно этой вершине. Найти минимальное (по количеству ребер) подмножество ребер, накрывающих все вершины заданного графа.

71.Найти минимальное (по количеству ребер) подмножество ребер,

удаление которых превращает

заданный связный граф в несвязный.

72.

В заданном графе найти максимальный по количеству вершин

полный подграф.

орграфа

назовем максимальный

среди его подграфов

73.

v-интервалом

G, обладающих следующими свойствами: 1) G содержит

вершину v; 2) если

все предшественники

вершины и содержатся в G, то и также содержится в G.

Построить v-интервалы для всех вершин v заданного орграфа.

74.

Пусть G орграф, в вершинах которого расположены фишки, а

состояние G задается

количеством фишек в каждой из его вершин. Говорят,

что состояние s' достижимо из состояния s за один шаг, если s' можно получить из s следующим образом: сначала удаляются все фишки, находящиеся в одной из его вершин (скажем, в вершине р), а затем такое же количество

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

Найти все (различные)

состояния G, которые

достижимы

из

некоторого заданного не более, чем

за k шагов.

 

 

 

 

 

 

 

 

 

75.

Решить

предыдущую задачу,

 

изменив

понятие

достижимости

следующим

образом:

s'

достижимо

из

s

за один шаг, если

существует

вершина

р,

каждый

предшественник

которой имеет хотя бы одну фишку,

a s' получается

из

s

удалением одной фишки у каждого предшественника

вершины р и добавлением одной фишки каждому преемнику вершины р.

76. Мостом графа назовем такое ребро, удаление которого увеличивает число компонент связности графа. Найти все мосты заданного графа.

77.Подсчитать количество попарно не изоморфных графов, содержащих не более четырех вершин.

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

v, а ребро <w, v> добавляется

тогда

и только тогда, когда вершина w

была смежна хотя

бы с

одной

вершиной

удаленного

треугольника.

Последовательным

применением

операции

склеивания

треугольника

преобразовать исходный граф в такой, в котором нет треугольников.

79. По орграфу G построить орграф G', который получается из G последовательным применением (пока это возможно) следующей операции: если v вершина из G с единственным предшественником и ( u v ) и единственным преемником w ( w v ), то она удаляется из G вместе с дугами

(u,v)

и (v,w) и добавляется новая дуга

(и,w);

если v вершина без

предшественников и преемников, то она просто удаляется из G.

 

80.

Через G (W ) обозначим подмножество вершин орграфа G = (V, Е),

которые

являются

преемниками

вершин

из

W. Найти

такое

максимальное по числу

вершин подмножество

W (W V , W V )

вершин

заданного

графа,

для

которого G (W ) W .

 

 

 

81.

Найти длину самого длинного простого пути от города А до города В

в заданной системе односторонних дорог.

 

 

 

 

82.

По

заданной системе односторонних дорог определить, есть ли в

ней

город,

куда

можно попасть из любого другого города, проезжая не

более 100 км.

83.По заданному графу G построить граф его транзитивного замыкания, т. е. такой граф G', в качестве вершин которого берется множество вершин из G; две вершины и, v в G' смежны тогда и только тогда, когда в G существует путь из u к v.

84.Проверить, является ли заданный граф транзитивным, т. е. для любых трех вершин и, v, w выполняется условие: если вершины и и w, а также v и w смежны, то вершины и и v также смежны.

85.Для заданного целого п > 0 построить граф, в котором степень каждой вершины равна 4.

Тема: Грамматики, языки, автоматные диаграммы

86.Слово называется слабо симметричным, если его можно преобразовать

всимметричное некоторой последовательностью операций обращения, применяемых к произвольным подсловам получающихся слов. Определить, является ли слабо симметричным заданное слово.

87. Задана грамматика G, каждое правило которой имеет вид A BC или A a , где А, В, С нетерминалы, а а терминал. Определить, выводимо ли заданное слово, составленное из терминалов, в грамматике G.

88. Определить, пусто ли L(G) для заданной грамматики G.

89.Определить, является ли бесконечным L(G) для заданной грамматики G.

90.Нетерминал грамматики называется бесплодным, если из него нельзя вывести ни одного слова в алфавите терминалов. Найти все бесплодные нетерминалы заданной грамматики.

91.Правило грамматики G называется бесполезным, если его нельзя применить ни в одном выводе слов грамматики G. Найти и удалить все бесполезные правила заданной грамматики.

92.В заданной грамматике найти все нетерминалы А, удовлетворяющие следующему условию: из А выводимо слово длиной больше 1, содержащее нетерминал А.

93.Говорят, что нетерминал А грамматики G зависит от (терминального или нетерминального) символа s, если из А в G выводимо слово, содержащее вхождение символа s. Для заданной грамматики указать все символы каждого нетерминала, от которых он зависит.

94. Построить

слово длиной

п из букв А, В, С такое, чтобы всякие

два его стоящих

друг за другом

подслова были различны. Известно, что для

любого п существует хотя бы одно такое слово.

95.Пусть R множество всех восьмибуквенных слов в алфавите А, В, С, D,

вкаждое из которых каждая буква входит по два раза. Определим две операции над такими словами: обращение и циклическую замену букв, не выводящую за

пределы R (например, a b, b a или a c, c b, b a ). Найти мак-

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

96. Слова v и w заданного множества слов L назовем взаимозаменяемыми, если для любых двух слов х и у (не обязательно из L) xvy L xwy L . Найти все пары взаимозаменяемых слов из L.

97.По заданному слову определить какое-нибудь из его подслов, которое входит в него наибольшее число раз (например, подслово «око» входит в слово «рококо» два раза).

98.Упорядочить слова заданного множества слов, располагая их в лексикографическом порядке.

99. Задано

множество правил

подстановки вида

ui wi , где все

ui , wi (1 ≤ i n)

слова одной и

той же длины. Определить, можно ли

перевести слово v в слово w последовательным применением заданных правил подстановки. Например, если имеются правила подстановки ba ab, cb bc, ca ac , то слово cbba переводится в слово abbc следующим

образом: cbba cbab cabb acbb abcb abbc.

100. Указать одно из кратчайших слов, составленных из терминалов и выводимых в заданной удлиняющей грамматике.

101. Пусть w1, ..., wn m-буквенные слова в некотором алфавите, a si (i = 1, ..., m)— буква, которая наиболее часто встречается в i-й позиции слов w1, ..., wn. Выбрать такое слово из заданного списка слов w1, ..., wn, которое отличается от слова s1s2 ... sm в наименьшем числе позиций.

102. Грамматика называется праволинейной, если все ее правила имеют вид АаВ или Сb, где А, В, С нетерминалы, а, b — терминалы. По двум заданным праволинейным грамматикам определить их эквивалентность.

103.Задана грамматика, в которой все правила имеют вид АВ или Са, где A, В, С нетерминалы, а терминалы. По заданному подмножеству М терминальных символов определить минимальное множество нетерминалов, из которых можно вывести все терминалы из М.

104.Активной емкостью некоторого вывода в грамматике назовем

максимум числа нетерминалов,

встречающихся

в

каждом из

промежуточных слов этого вывода.

По заданным удлиняющей грамматике и

слову найти вывод этого слова с минимальной активной емкостью.

 

105.По заданной грамматике построить такую, которая эквивалентна исходной, а каждое правило имеет вид A ВС или A a, где A, В, С нетерминалы, а терминал.

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

107.По заданной грамматике построить эквивалентную ей и не содержащую правил вида АВ, где А, В нетерминалы.

108.Грамматика называется последовательностной, если ее

нетерминалы можно упорядочить так (скажем, A1, A2, …, An )что правила с

левой частью Ai в правой части не содержат нетерминалов Ai+1, Ai+2, …, An (i = 1, ..., n). Определить, является ли последовательностной заданная грамматика.

109. Правило вывода в грамматике назовем

заключительным,

если в

его правую часть входят только терминалы.

Построить такой вывод

заданного терминального слова в удлиняющей

грамматике, в

котором

заключительные правила применяются только после всех незаключительных.

110.По заданной автоматной диаграмме D построить эквивалентную ей D' так, чтобы в D' было не более одной вершины такой, что все выходящие из нее дуги ведут к этой же вершине.

111.Две вершины в автоматной диаграмме называются близнецами, если выходящие из них дуги с одинаковыми пометками ведут к одной и той же вершине. По диаграмме D построить эквивалентную ей диаграмму D' так, чтобы в D' не было ни одной пары вершин-близнецов.

112.По двум заданным автоматным диаграммам над алфавитом X определить, эквивалентны ли они.

Указание. Удалить вершины, недостижимые от начальной, и склеить все склеиваемые вершины в каждой из диаграмм. Если полученные диаграммы совпадают, то исходные были эквивалентны, иначе нет.

113.По заданной автоматной диаграмме D определить, пуст ли ее язык L(D).

114.По заданной автоматной диаграмме D определить, является ли ее язык L(D) бесконечным.

115.Задана автоматная диаграмма D с непустым языком L(D). Найти кратчайшее слово из L(D).

116. По двум заданным автоматным диаграммам D1, D2 определить, имеется ли в пересечении их языков L(D1 ) ∩ L(D2 ) хотя бы одно слово

заданной длины.

117. По двум заданным автоматным диаграммам D1, D2 с непустым пересечением их языков найти кратчайшее слово из L(D1 ) ∩ L(D2 ) .

118.По заданной автоматной диаграмме определить, есть ли в ней хотя бы одна пара склеиваемых вершин.

119.По заданной автоматной диаграмме построить такую эквивалентную автоматную диаграмму, в которой нет ни одной пары различных склеиваемых вершин.

Тема: Логические формулы и фрагменты

 

 

120.

Построить

синтаксический

анализатор

для

определяемого в

словаре понятия логическая-формула.

 

 

 

121.

Построить

синтаксический

анализатор

для

определяемого в

словаре

понятия

дизъюнктивная-нормальная-формула (ДНФ).

122.Проверить, является ли заданная логическая формула правильной

ДНФ.

123.Проверить, является ли заданная ДНФ совершенной.

124.Вычислить значение заданной логической формулы, не содержащей вхождений переменных.

125.Вычислить значение заданной ДНФ для заданных значений встречающихся в ней переменных.

126.Заданную ДНФ преобразовать в эквивалентную пра-

вильную ДНФ.

127.Заданную ДНФ преобразовать в эквивалентную СДНФ.

128.Заданную логическую формулу преобразовать в эквивалентную

ДНФ.

129.По заданной логической формуле построить эквивалентную логическую формулу, в которой знак отрицания встречается только перед переменными.

Указание. Воспользоваться эквивалентными преобразованиями

NOT NOT переменная => переменная

NOT(фopмyлa-1) OR (формула-2) =>

NOT (формула-1) AND NOT (формула-2) NOT(кoнъюнкцuя-1 AND конъюнкция-2) =>

NOT (конъюнкция-1) OR NOT (конъюнкция-2)

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

TRUE OR формула => TRUE

TRUE AND конъюнкция => конъюнкция формула OR TRUE => TRUE

конъюнкция AND TRUE => конъюнкция

NOT FALSE => TRUE

NOT TRUE => FALSE

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

формула OR формула => формула конъюнкция AND конъюнкция => конъюнкция FALSE OR формула => формула

формула OR FALSE => формула

FALSE AND конъюнкция => FALSE

конъюнкция AND FALSE => FALSE

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

NOT NOT множитель => множитель

конъюнкция-1 AND конъюнкция-2 OR конъюнкция-1 => конъюнкция-1 (конъюнкция OR фopмyлa)AND конъюнкция => конъюнкция

133.Определить, эквивалентны ли две заданные логические формулы.

134.Определить, эквивалентны ли две заданные правильные ДНФ.

135.По заданной правильной ДНФ определить, представляет ли она тождественно истинную логическую формулу, т. е. верно ли, что она эквивалентна формуле TRUE.

136.Определить, эквивалентна ли заданная логическая формула формуле

FALSE.

137.По заданной правильной ДНФ α построить правильную ДНФ логической формулы NOT (α ).

138.Определить, содержит ли логическая формула α хотя бы одно вхождение логической формулы β .

139.Две логические формулы a, b назовем похожими, если

а)

либо a = b;

 

б)

либо а = NОТ а', b = NOT b', где а', b' похожие;

в)

либо а = (а'), b = (b'), где а', b' похожие;

г)

либо а = a1 op а2, b = b1 op b2, где op {OR,AND}, причем либо a1, b1

похожие и а2, b2 похожие, либо а2, b1

похожие и a1, b2 похожие.

Все

остальные пары a, b

непохожие. Определить, являются ли

похожими две заданные логические формулы.

140.

Переменная x называется фиктивной в логической формуле a, если

существует логическая формула b, эквивалентная ее и не содержащая вхождений переменной x. По заданной логической формуле найти все встречающиеся в ней фиктивные переменные.

141. По заданной логической формуле определить, сохраняет ли она свое значение при любой перестановке значений аргументов.

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

x1,..., xn f (x1,..., xn ) = NOT f (NOT x1,..., NOT xn )

(этим свойством обладает, например, логическая формула X AND Y OR NOT Y AND X ).

143.Пару скобок в логической формуле назовем избыточной, если после ее удаления формула остается эквивалентной исходной. Удалить все избыточные пары скобок в заданной логической формуле.

144.Построить синтаксический анализатор для понятия расширенная-

формула.

145.По заданным расширенной формуле и набору значений встречающихся

вней переменных вычислить значение расширенной формулы.

146.По заданной расширенной формуле построить эквивалентную логическую формулу.

Указание. Воспользуйтесь следующими схемами правил преобразования

формула-1 формула-2 => NOT формула-1 OR формула-2

формула-1 формула-2 => формула-1 AND формула-2 OR NOT формула-1

AND NOT формула-2

147. По заданной расширенной формуле построить такую эквивалентную расширенную формулу, в которой знак отрицания NOT может стоять только перед переменными.

Указание. Воспользуйтесь правилами преобразования: NOT (а → b) => а AND NOT b

NOT (а ≡ b) => а AND NOT b OR NOT a AND b

для произвольных расширенных логических формул a, b.

148.Определить, эквивалентны ли две заданные расширенные формулы.

149.Определить, эквивалентны ли заданные ДНФ и расширенная формула.

150.Определить, является ли пустым заданный логический фрагмент.

151.Определить, является ли тотальным заданный логический фрагмент.

152.Определить, является ли свободным заданный логический фрагмент.

153.Заданный логический фрагмент преобразовать в эквивалентный свободный логический фрагмент.

154.Тотальный логический фрагмент преобразовать в свободный логический фрагмент, к каждой вершине которого ведет не более одной дуги.

155. Определить, эквивалентны ли два заданных логических фрагмента.

156.Определить, эквивалентны ли заданные ДНФ и тотальный логический фрагмент.

157.Определить, эквивалентны ли заданная логическая формула и тотальный логический фрагмент.

158.По заданной логической формуле построить эквивалентный логический фрагмент.

159.По заданной ДНФ построить эквивалентный логический

фрагмент.

160. По заданному тотальному логическому фрагменту построить эквивалентную логическую формулу.

161.По заданному тотальному логическому фрагменту построить эквивалентную ДНФ.

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

163.Пусть задан логический фрагмент Ф, в котором нет циклов. Пару вершин a, b в Ф назовем близнецами, если их пометки совпадают и (в случае, когда а и b невисячие вершины, а а+, а- и b+, b- вершины, к которым ведут плюс- и минус-стрелки от а и b соответственно) вершины а+, а-, а также b+, b-

близнецы. Определить, есть ли в Ф хотя бы одна пара близнецов.

164.В условиях предыдущей задачи по Ф построить эквивалентный логический фрагмент, в котором нет ни одной пары близнецов.

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

Удалить все несущественные вершины заданного логического фрагмента.

166.Логическая переменная х называется несущественной для логического фрагмента L, если существует логический фрагмент L', эквивалентный L и такой, что он не содержит вершин с условием х. По заданному логическому фрагменту определить, является ли переменная х существенной для него.

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

168.Логический фрагмент назовем упорядоченным (по отношению к фиксированному порядку, заданному на множестве логических переменных Х={ x1,..., xn }), если на любом пути от начала к висячей вершине условие с

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

169. По заданному упорядоченному (см. условие предыдущей задачи) логическому фрагменту построить эквивалентный упорядоченный фрагмент с минимальным количеством вершин.

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

171.По заданной расширенной логической формуле построить эквивалентный тотальный логический фрагмент.

Тема: Выражения, программы и полиномы

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

описание-переменных ::= VAR пробел список-описаний пробелы пробелы ::= {пробел | пробел пробелы}

описание;

 

 

 

 

 

 

 

список описаний ::=

описание;

 

 

список - описаний

 

 

 

описание ::= список-идентификаторов : идентификатор

 

идентификатор

 

 

 

 

 

 

список-идентификаторов ::=

 

 

 

идентификатор, список - идентификаторов

 

 

 

 

 

 

идентификатор ::= буква {буква | цифра}* пробелы

 

173. Построить синтаксический

анализатор для

понятия переменная,

которое определяется следующим образом:

 

 

 

*

 

 

 

 

 

 

 

 

идентификатор

 

переменная ::= идентификатор .

 

 

 

 

 

 

 

[список - выражений ]

 

 

 

список-выражений ::= выражение {,выражение}*

выражение ::= простое-выражение

Определение понятия простое-выражение см. в гл. 8.

174. Построить синтаксический анализатор для определяемого в словаре

понятия линейная-программа.

175. Построить синтаксический анализатор для определяемого в словаре понятия простая-программа.

176. Построить синтаксический анализатор для определяемого в словаре

понятия простое-выражение.

177. По заданному простому выражению, не содержащему вхождений идентификаторов, вычислить его значение.

178. Внешнее представление вещественных чисел определим следующим образом:

 

знак

 

вещественное ::=

 

мантисса порядок

 

пусто

 

 

 

 

мантисса ::= {цифра}* цифра.{цифра}* цифра

E знак цифра цифра

 

 

 

 

 

 

 

 

порядок ::= E цифра цифра

 

 

 

 

 

пусто

 

 

 

знак ::= {+ | –}

Построить произведение двух заданных в таком представлении вещественных чисел, предполагая, что сумма длин их записи не превосходит

20.

179. Вычислить с округлением, оставляя в мантиссе результата не более 10 знаков после десятичной точки, частное от деления двух

вещественных

чисел, заданных в

описанном в предыдущей

задаче

представлении

(предполагая снова,

что сумма длин записи исходных чисел

не превосходит 20).

180. Задана последовательность вещественных чисел в описанном в задаче

178

представлении. Числа

последовательности перечисляются через

запятую, общая

длина

последовательности ограничена 100 символами.

Вычислить сумму этой

последовательности чисел.

 

181. Задана

обратная польская

запись некоторого

простого выражения,

не

содержащего

вхождений

идентификаторов.

Вычислить значение этого

выражения.

 

 

 

 

 

 

 

182. Задана

прямая

польская

запись некоторого

простого выражения,

не

содержащего

вхождений

идентификаторов.

Вычислить значение этого

выражения.

183. Выполнить заданную линейную программу для заданных начальных значений всех встречающихся в ней переменных. Определить значения этих переменных после выполнения линейной программы (если не возникнет

ошибки переполнения).

 

 

 

 

 

184. В заданной линейной программе удалить первый оператор

каждой

пары следующих друг за другом

операторов в случае, если их левые части

совпадают, а правая часть второго оператора

не

содержит вхождений

переменной, совпадающей с его левой частью.

 

 

 

185. Вхождение оператора А

линейной программы назовем избыточным,

если

среди предшествующих

ему

имеется

еще одно вхождение

этого

оператора, причем левые части

всех операторов,

находящихся

между

двумя

этими вхождениями,

а

также левая часть самого оператора А не

встречаются в правой части оператора А. Например, второе вхождение оператора x := y + z в линейной программе «х := у + z; и:= и — z; х := у + z» из- быточно. В заданной линейной программе удалить все избыточные вхождения операторов.

186. Вхождение

оператора

А в

линейную

программу

называется

несущественным, если среди следующих

после него операторов имеется

еще одно вхождение оператора,

скажем B, с той же переменной-левой частью,

что и у A, причем эта переменная не встречается в правой части ни одного из

операторов, находящихся

между

А

и

В.

Например,

вхождение

оператора x := u + v

в линейную

программу

«х := и + v; и := u *y; x :=

y – v » несущественное.

Удалить

 

вхождения

всех несуще-ственных

операторов из заданной линейкой программы, содержали А не более 200 вхождений операторов.

187.Преобразовать в обратную польскую запись заданное простое выражение.

188.Преобразовать в прямую польскую запись заданное простое выражение.

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