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

Лабораторный Практикум по Дискрмат2

.pdf
Скачиваний:
359
Добавлен:
10.06.2015
Размер:
3.45 Mб
Скачать

530

621

432

442

233

321

620

434

219

673

651

544

762

324

556

776

443

622

632

511

279

377

446

840

332

582

631

561

332

112

532

762

544

226

331

633

422

173

533

721

652

467

438

232

645

761

354

631

262

530

521

402

542

133

621

420

734

219

673

651

544

762

224

456

776

443

622

632

511

299

877

446

840

300

542

631

461

432

112

532

762

544

226

331

633

422

773

533

721

652

507

238

232

645

761

354

631

162

 

 

 

 

Вариант 11.

 

 

 

 

Вариант 12.

530

301

432

402

533

 

621

120

534

219

673

551

344

 

762

324

356

776

443

622

632

 

511

209

177

446

840

332

542

 

631

761

432

112

532

762

544

 

226

331

633

422

773

533

721

652

560

438

232

345

761

354

 

231

362

200

321

132

442

533

221

520

634

219

673

651

340

562

224

456

776

443

622

632

511

200

877

446

840

122

542

631

761

432

112

532

762

544

226

331

333

422

773

533

721

652

 

467

538

232

645

761

354

631

262

 

 

 

 

Вариант 13.

 

 

 

 

Вариант 14.

131

130

321

432

242

133

621

354

534

219

673

651

344

762

204

456

776

443

622

632

511

299

877

446

840

332

542

631

761

532

112

532

762

544

226

331

532

412

832

162

544

226

931

238

232

645

761

354

831

162

130

321

432

242

133

621

354

534

219

673

651

344

762

204

456

776

443

622

632

511

299

877

446

840

332

542

631

761

132

100

532

162

 

530

226

 

301

532

412

832

162

544

226

931

238

232

645

761

354

831

162

 

 

 

 

Вариант 15.

 

 

 

Вариант 16.

230

321

432

442

533

621

320

334

219

673

651

344

762

224

456

776

443

622

632

511

299

877

446

840

332

542

631

761

432

112

532

762

544

226

331

633

422

773

533

721

652

567

238

232

645

761

354

631

562

630

321

432

542

500

121

720

234

219

673

651

344

762

424

456

776

443

622

632

511

299

877

446

840

332

542

631

761

432

112

532

762

544

226

331

633

422

773

533

721

652

567

438

732

645

761

304

631

560

 

 

 

 

Вариант 17.

 

 

 

Вариант 18.

132

 

330

321

432

542

500

121

420

 

234

219

673

451

344

762

424

 

456

776

443

622

632

511

299

 

107

406

140

132

342

601

261

 

632

112

532

762

544

226

331

 

633

422

773

533

721

652

117

 

438

732

645

761

304

631

760

310

321

832

542

540

121

220

 

434

219

373

451

344

262

924

 

456

776

443

622

632

511

299

 

107

406

140

132

342

601

261

 

632

112

532

762

544

226

331

 

613

422

773

533

721

652

117

 

738

732

645

761

304

931

360

 

 

 

 

 

Вариант 19.

 

 

 

Вариант 20.

319

321

132

542

540

121

520

434

219

373

451

344

262

924

756

776

443

602

632

500

209

107

406

140

132

342

601

261

632

112

532

762

544

200

331

113

422

773

533

721

652

117

238

732

545

361

304

931

660

300

321

102

242

530

121

820

434

219

373

451

344

262

924

156

770

403

112

132

560

289

107

406

140

132

342

601

261

672

112

532

762

544

200

331

103

722

773

533

721

652

117

238

702

545

361

304

431

160

 

 

 

 

Вариант 21.

 

 

 

Вариант 22.

133

388

321

102

242

530

 

101

420

434

219

373

451

344

 

262

924

156

770

403

112

132

 

560

289

107

406

140

132

342

 

601

261

600

112

532

762

544

200

331

103

722

773

533

721

652

117

238

702

545

361

304

131

760

230

321

432

442

533

621

320

334

219

673

651

344

762

224

456

776

443

622

632

511

299

877

446

840

332

542

631

761

432

112

532

762

544

226

 

331

633

422

773

533

721

652

 

567

238

232

645

761

354

631

 

562

 

 

 

 

Вариант 23.

 

 

 

 

Вариант 24.

200

305

532

 

442

533

 

621

110

334

219

673

 

651

344

 

762

224

456

776

443

 

622

632

 

511

299

877

446

840

 

332

542

 

631

761

432

112

532

 

762

544

 

226

331

603

122

711

503

441

652

217

208

932

645

 

761

354

 

231

462

300

665

532

442

453

621

190

304

219

673

651

344

762

250

456

776

443

622

632

511

209

337

446

840

332

542

631

161

400

112

532

762

504

226

181

603

122

711

503

 

441

652

 

217

258

932

145

761

354

631

 

162

 

Вариант 25.

134

370

611

532

402

453

621

190

304

219

673

651

344

762

250

556

716

443

102

632

511

269

330

446

840

332

542

631

161

400

112

532

700

504

226

180

303

122

211

503

441

652

207

203

932

145

761

754

631

102

Практическое занятие 7

ПОНЯТИЕ АЛГОРИТМА. УТОЧНЕНИЯ ПОНЯТИЯ АЛГОРИТМА. ПРИМЕНЕНИЕ МАШИН ТЬЮРИНГА И АНАЛИЗ МАШИН

Цель работы

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

Краткая теория

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

Машина Тьюринга представляет собой мыслимое устройство, состоящее из конечного числа символов A ={a0, a1,…, an} - внешнего алфавита машины, множества Q = {q0, q1,…, qm} состояний читающего устройства воображаемой машины и программы работы машины. Кроме двух алфавитов и программы, машина Тьюринга имеет бесконечную, воображаемую ленту, разделенную на ячейки. Работа машины Тьюринга состоит в записи и чтении на воображаемую ленту последовательности символов внешнего алфавита. В результате работы машины Тьюринга, исходное слово, записанное на ленте, преобразуется в некоторое новое слово или пустое слово. Среди символов внешнего и внутреннего алфавитов есть специальные символы: a0 - символ пустой ячейки, q0, q1, - символы окончания работы машины и начала работы соответственно.

135

Символы внешнего алфавита записываются в ячейки и читаются при помощи команд трех видов

1) qi aj

qk al R

2) qi aj

qk al L

3) qi aj

qk al S,

где R, L, S – символы сдвига читающего устройства вправо, влево и записи без сдвига соответственно. Первая команда читается следующим образом: если в состоянии qi в просматриваемой ячейке ленты машина читает символ aj, то, согласно этой команде, состояние машины меняется на qk, в просматриваемую ячейку записывается символ al и читающее устройство перемещается по ленте вправо на одну ячейку. Аналогично работают две другие команды. Программа работы машины представляет собой последовательность команд вида 1) – 3).

Пример 1. Построим машину Тьюринга, уменьшающую данное слово из n единиц, на единицу. В качестве внешнего алфавита возьмем множество {0,1}. Алфавит внутренних состояний Q = {q0, q1, q2, q3}. Пусть

в начальном состоянии q1

машина читает третий слева символ 1 данного

слова. Далее,

находит

самую

правую единицу, стирает ее и

останавливается. Запишем эти действия в виде команд:

 

 

q1 1

q2 1R

 

 

q2 1

q2 1R.

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

q2 0

q3 0L

q3 1

q0 1S.

Работу машины Тьюринга можно представить в виде последовательного преобразования слова, записанного на ленте. Каждый символ данного слова записывается в отдельную ячейку ленты в следующем виде:

q1

 

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

q2

 

1

1

1

1

1

1

 

 

136

q2

 

1

1

1

1

1

1

0

 

q3

 

 

 

 

 

 

 

 

 

1

1

1

1

1

1

0

 

q0

 

 

 

 

 

 

 

 

 

1

1

1

1

1

0

0

 

Последовательность этих преобразований исходного слова можно представить в более упрощенной форме, без изображения ленты:

11q11… 111 111… 11q210 111… 111q20 111… 11q310 111… 11q00.

Программу работы машины Тьюринга удобнее представить в виде таблицы. Например, программу уменьшения n на одну единицу можно представить в виде следующей таблицы:

Таблица 10

Машина Тьюринга, уменьшающая n на одну единицу.

 

q1

q2

q3

0

-

q30L

-

1

q21R

q21R

q01S

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

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

Пример 2. В исходном состоянии читается правая крайняя единица слова, составленного из единиц. Число единиц равно х+1. Необходимо построить машину, проверяющую условие х=0.

Решение. Если слева от правой крайней единицы 0, то состояние конца работы q01, в противном случае q02. Программа завершения работы машины будет следующей:

q1 1

q2 1L

q2 0

q01 1R

q2 1

q02 1R.

137

 

Машину, проверяющую условие х=0 можно использовать как условный оператор, то есть символы окончания работы q01 и q02 можно продолжить двумя независимыми машинами и, таким образом, присоединить две новые машины Тьюринга.

Порядок выполнения работы

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

2.При помощи заданной машины Тьюринга преобразовать данное слово и выявить закономерность работы машины.

Образец выполнения заданий

а) Машина Тьюринга с внешним алфавитом {0, 1} и алфавитом внутренних состояний {q0, q1, q2, q3, q4, q5, q6, q7} задана в виде следующей программы:

Таблица 11.

Машина Тьюринга с алфавитом внутренних состояний {q0, q1, q2, q3, q4, q5, q6, q7}

 

q1

q2

q3

q4

q5

q6

q7

0

q40R

q60R

q60R

q01S

q40R

q00S

q60R

1

q21L

q31L

q11L

q50S

q50S

q70S

q70S

Выяснить применимость машины к слову 11111. В случае применимости преобразовать слово 11111 при помощи данной машины. В начальном состоянии машина читает правую крайнюю единицу данного слова.

б) Машина Тьюринга с внешним алфавитом {0, 1, *} и алфавитом внутренних состояний {q0, q1, q2, q3} задана в виде следующей программы:

Таблица 12.

Машина Тьюринга с алфавитом внутренних состояний {q0, q1, q2, q3}.

 

Q1

q2

q3

0

-

q31R

q10L

1

q20L

q21L

q31R

*

q00S

q2*L

q3*R

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

138

Решение. а) Согласно условию задания, в начальном состоянии машина читает правую крайнюю единицу данного слова 11111. Поэтому исходное слово на ленте будет иметь вид 1111q11. Если в состоянии q1 машина читает символ 1, то из таблицы команд машины Тьюринга на пересечении соответствующих этим символам столбца и строки находим элемент команды q21L. Согласно этому элементу команды необходимо: в просматриваемой машиной ячейке ленты сохранить символ 1, сменить состояние читающего устройства на q2 и переместить читающее устройство влево на одну ячейку. Так как в левой ячейке данного слова символ 1, то условием новой команды машины будет следующее условие: в состоянии q2 машина читает на ленте символ 1. Следовательно, опять при помощи данной таблицы можем определить последующее действие машины. Продолжая последовательно выполнять эти действия и записывая результаты этих действий в форме последовательности слов, получим:

1111q11 111q211 11q3111 1q11111 q211111 q3011111

0q611111

0q701111

00q61111 00q70111

000q6111

000q7011

0000q611

0q701 00q61 00q70

0q60 0q00.

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

б) Согласно условию задания, в начальном состоянии машина читает правую крайнюю единицу данного слова 111*1111. Поэтому исходное слово на ленте будет иметь вид 111*111q11. Если в состоянии q1 машина читает символ 1, то из таблицы команд машины Тьюринга на пересечении соответствующих этим символам столбца и строки находим элемент команды q20L. Аналогично предыдущему заданию построим последовательность слов в порядке выполнения команд программы. В отличие от предыдущего задания, в данном случае внешний алфавит

139

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

111*111q11 111*11q210 111*1q211 111*q2111 111q2*111

11q21*111 1q211*111 q2111*111 q20111*111 1q3111*111

11q311*111

111q31*111

1111q3*111 1111*q3111

1111*1q311

1111*11q31

1111*111q30 1111*11q110

1111*1q2100 …

q201111*11

1q31111*11 …

11111*11q30

11111*1q110

11111*q2100

q2011111*1

1q311111*1 …

111111*1q30

111111*q110

111111q2*0 …

q20111111*0

1q3111111*0

… 1111111*q30

1111111q1*0

1111111q00.

В результате работы машины Тьюринга исходное слово 111*1111 преобразовалось в слово 1111111. Многоточие использованы для обозначения циклических операций, к которым приводят команды.

Вопросы для самопроверки

1.Что собой представляет машина Тьюринга?

2.Какую роль в машине Тьюринга играют внешний и внутренний алфавит?

3.Перечислите виды команд машины и поясните их действие?

4.Что собой представляет программа машины Тьюринга?

Литература: [3], гл. 5, с. 82 – 106; [2], Часть 8, с. 136 – 162; [7], гл. 10, стр. 144 –201. [6], гл. 2, стр. 179 –185. [12], §8, стр. 119 –134.

Задания для самостоятельной работы

а) Машина Тьюринга с внешним алфавитом {0, 1} и алфавитом внутренних состояний {q0, q1, q2, q3, q4, q5, q6, q7} задана в виде следующей программы:

140