Tải bản đầy đủ (.pdf) (15 trang)

MI4100 LN01 turing machine NDHan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (278.49 KB, 15 trang )

Bảo mật dữ liệu và độ phức tạp thuật toán
Chủ đề: Một số vấn đề về cơ sở toán học
PGS.TS. Nguyễn Đình Hân
(Mobile: 0915.046.320; Email: )

Viện Toán ứng dụng và Tin học
Trường Đại học Bách khoa Hà Nội

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

1 / 15


1

Thuật toán và Máy Turing
Thuật toán
Máy Turing
Bài toán giải được và không giải được
Độ phức tạp tính toán
Độ phức tạp thời gian đa thức

2

Một số kiến thức cơ sở về số học và đại số
Quan hệ, nửa nhóm, dàn, nhóm, vành, trường và trường hữu hạn
Các phép tính số học, lý thuyết chia hết, phương trình và hệ phương
trình nguyên
Số nguyên tố và các thuật toán kiểm định



SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

2 / 15


Ngôn ngữ hình thức
Cho Σ là bảng hữu hạn các chữ cái.
Một từ w trên bảng chữ Σ là một dãy hữu hạn các phần tử của Σ
w = (a1 , a2 , . . . , an ), ai ∈ Σ.
Tập tất cả các từ trên bảng chữ Σ được ký hiệu là Σ ∗ và được trang
bị phép nhân (tích) ghép có tính chất kết hợp
(a1 , a2 , . . . , an )(b1 , b2 , . . . , bm ) = (a1 , a2 , . . . , an , b1 , b2 , . . . , bm ).
Vì vậy, để thuận tiện ta viết
w = a1 a2 · · · an
thay cho w = (a1 , a2 , . . . , an ).
Một phần tử a ∈ Σ được gọi là một chữ cái/kí tự. Từ rỗng được ký
hiệu là ε đóng vai trò là phần tử đơn vị trong phép nhân ghép. Do đó,
tập Σ ∗ có cấu trúc vị nhóm và Σ ∗ được gọi là vị nhóm tự do trên Σ.
SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

3 / 15


Ngôn ngữ hình thức (t)


Tập tất cả các từ khác rỗng trên Σ được ký hiệu là Σ + . Ta có
Σ ∗ = Σ + ∪ {ε}
.
Độ dài |w | của từ w = a1 a2 · · · an với ai ∈ Σ là n. Quy ước |ε| = 0.
Mỗi tập con của Σ ∗ được gọi là một ngôn ngữ trên Σ.
Một X -phân tích của một từ w ∈ Σ ∗ theo X , với X ⊆ Σ ∗ , là một
dãy w = u1 u2 · · · un với u1 , u2 , . . . , un ∈ X , n ≥ 1.

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

4 / 15


Máy Turing

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

5 / 15


Máy Turing

Định nghĩa 1.1

Một máy Turing là một bộ năm (K, Σ, δ, s, H), với:


− K là một tập hữu hạn các trạng thái;
− Σ là một bảng chữ cái, chứa đựng kí tự khoảng trống/dấu cách
và kí tự trái nhất , nhưng không chứa các ký tự ← và →;
− s ∈ K là trạng thái khởi đầu;
− H ⊆ K là tập trạng thái kết thúc;
− δ, hàm chuyển,
là một hàm từ (K − H) × Σ sang K × (Σ ∪ {←, →}) sao cho:
(a) với mọi q ∈ K − H, nếu δ(q, ) = (p, b) thì b =→
(b) với mọi q ∈ K − H và a ∈ Σ, nếu δ(q, a) = (p, b) thì b = .

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

6 / 15


Máy Turing (t)
Ví dụ 1.1 Cho máy Turing M = (K, Σ, δ, s, {h}), với:
K = {q0 , q1 , h},
Σ = {a, , },
s = q0 ,
và δ được cho trong bảng sau:
q,
q0
q0
q0
q1
q1
q1


SAMI-HUST 2019

σ
a

a

δ(q, σ)
(q1 , )
(h, )
(q0 , →)
(q0 , a)
(q0 , →)
(q1 , →)

Bảo mật dữ liệu và độ phức tạp thuật toán

7 / 15


Máy Turing (t)
Định nghĩa 1.2 Một cấu hình (configuration) của máy Turing
M = (K, Σ, δ, s, H) là một phần tử của K × Σ ∗ × (Σ ∗ (Σ − { }) ∪ {ε}).
Chú ý:
− Mọi cấu hình đều được giả thiết là bắt đầu bởi ký hiệu trái nhất và
không bao giờ kết thúc với một dấu cách trừ khi dấu cách đang là ký
tự hiện tại được đọc. Vì vậy, (q, a, aba), (h,
, a) và
(q,

a
, ε) là các cấu hình, nhưng (q, baa, a, bc ) và
(q, aa, ba) thì không phải.
− Một cấu hình mà thành phần của nó có chứa trạng thái trong H
được gọi là một cấu hình dừng (halted configuration)
− Ta cũng qui ước dùng một kí hiệu đơn giản để mô tả nội dung băng
vào của cấu hình. Cụ thể, ta sẽ viết w au để diễn tả nội dung băng
vào của cấu hình (q, wa, u). Kí hiệu được gạch dưới chỉ ra vị trí của
đầu đọc. Từ đây, ta có thể viết gọn, chẳng hạn (q, w au) thay cho
(q, wa, u)
SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

8 / 15


Máy Turing (t)

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

9 / 15


Máy Turing (t)
Định nghĩa 1.3 Cho máy Turing M = (K, Σ, δ, s, H) và hai cấu hình
của M, (q1 , w1 a1 , u1 ) và (q2 , w2 a2 , u2 ), với a1 , a2 ∈ Σ. Khi đó, ta có
(q1 , w1 a1 , u1 )


M

(q2 , w2 a2 , u2 )

khi và chỉ khi, với mỗi b ∈ Σ ∪ {←, →}, δ(q1 , a1 ) = (q2 , b) và hoặc
1. b ∈ Σ, w1 = w2 , u1 = u2 và a2 = b hoặc
2. b =←, w1 = w2 a2 và, hoặc
(a) u2 = a1 u1 nếu a1 = hoặc u1 = ε hoặc
(b) u2 = ε nếu a1 = và u1 = ε hoặc
3. b =→, w2 = w1 a1 và, hoặc
(a) u1 = a2 u2 hoặc
(b) u1 = u2 = ε và a2 = .

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

10 / 15


Máy Turing (t)

Định nghĩa 1.4 Với máy Turing M bất kỳ, gọi ∗M là bao đóng (phản
xạ, bắc cầu) của M . Khi đó ta nói cấu hình C1 dẫn xuất (gián tiếp) cấu
hình C2 nếu C1 ∗M C2 . Một phép tính toán (computation) thực hiện bởi
M là một dãy các cấu hình C0 , C1 , . . . , Cn , với n ≥ 0 sao cho
C0

M


C1

M

C2

M

···

M

Cn

.
Ta cũng nói rằng phép tính toán có độ dài n hoặc nó có n bước và ta ký
hiệu là C1 nM C2

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

11 / 15


Máy Turing (t)
Ví dụ 1.2 Cho máy Turing M = (K, Σ, δ, s, {h}), với: K = {q0 , q1 , h},
Σ = {a, b, , }, s = q0 , và δ được cho trong bảng sau:
q,

q0
q0
q0
q0
q1
q1
q1
q1

σ
a
b

a
b

δ(q, σ)
(q1 , b)
(q1 , a)
(h, )
(q0 , →)
(q0 , →)
(q0 , →)
(q0 , →)
(q1 , →)

(a) Liệt kê các bước tính toán của M bắt đầu từ cấu hình q0 , aabbba?
(b) Mô tả M làm gì khi nó bắt đầu tại q0 và đọc ô bất kỳ của băng vào?
SAMI-HUST 2019


Bảo mật dữ liệu và độ phức tạp thuật toán

12 / 15


Máy Turing (t)
Ví dụ 1.3 Cho máy Turing M = (K, Σ, δ, s, {h}), với:
K = {q0 , q1 , q2 , h}, Σ = {a, b, , }, s = q0 , và δ được cho trong bảng
sau:
q,
q0
q0
q0
q1
q1
q1
q2
q2
q2

σ
a
b
a
b
a
b

δ(q, σ)
(q1 , ←)

(q0 , →)
(q0 , →)
(q1 , ←)
(q2 , →)
(q1 , ←)
(q2 , →)
(q2 , →)
(h, )

Lặp lại hai yêu cầu của Ví dụ 1.2 với cấu hình ban đầu là
q0 , abb bb
aba?
SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

13 / 15


Máy Turing (t)

Bài tập 1.1 Thiết kế một máy Turing tìm dấu cách trong một xâu cho
trước.

Bài tập 1.2 Thiết kế một máy Turing kiểm tra tính cân xứng của các từ
trên bảng chữ Σ cho trước.

Bài tập 1.3 Xây dựng một máy Turing kiểm tra xem hai số nhị phân
cho trước có bằng nhau không.


SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

14 / 15


TRÂN TRỌNG CẢM ƠN!

SAMI-HUST 2019

Bảo mật dữ liệu và độ phức tạp thuật toán

15 / 15



×