PHẦN I: LÝ THUYẾT 10.4. Ngôn ngữ đó không phải là đệ quy liệt kê. 11.1. Văn phạm không hạn chế. PHẦN II: BÀI TẬP I. Khái niệm số phức 1.1. Định nghĩa số phức 1.2. Các dạng biểu thức của số phức II. Các phép tính cơ bản trên số phức. III. Phân tích bài toán. 1.1. Mục đích. 1.2. Giải thuật. 1.3. Thực hiên trên máy RAM thô sơ. 1.4. Chương trình RAM thô sơ. PHẦN I: LÝ THUYẾT 10.4. NGÔN NGỮ KHÔNG PHẢI LÀ ĐỆ QUY LIỆT KÊ Biết rằng có nhiều ngôn ngữ không phải là đệ quy liệt kê đó là điều hiển nhiên. Theo luận văn ChurchTuring, một ngôn ngữ không thể được chấp nhận bởi TM, không thể nhận ra bởi bất cứ thủ tục thuật toán có thể nghĩ ra, và do đó phương pháp được gọi là “tinh tế” là một phương pháp tốt để mô tả đối số. Tuy nhiên chúng tôi có thể sử dụng đối số như ở đây. Trong trường hợp đó, Chúng sử dụng ma trận trong đó hàng phù hợp với số nguyên i và cột được thiết lập Aj, và chúng sử dụng thiết lập các thao tác bao gồm định nghĩa (i, j). Ở đây đối số tinh tế hơn nhiêu, về tập hợp của máy TMs khi bắt đầu đếm T0, T1, … và mỗi i là chuỗi mã hóa
Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 BỘ GIÁO GIỤC ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG TIỂU LUẬN Đề tài : MÔN HỌC LTTT GVHD : PGS.TS PHAN HUY KHÁNH HVTH : ĐÀO NGỌC TUẤN ANH : NGUYỄN VĂN KIỂM : PHAN MINH TIẾN Nghành : Khoa học máy tính Đà Nẵng – ngày 09 tháng 05 năm 2010 Trang Bài tập môn học Lý thuyết tính tốn KHMT Khóa 12 PHẦN I: LÝ THUYẾT 10.4 Ngơn ngữ khơng phải đệ quy liệt kê 11.1 Văn phạm không hạn chế PHẦN II: BÀI TẬP I II III Khái niệm số phức I.1 Định nghĩa số phức I.2 Các dạng biểu thức số phức Các phép tính số phức Phân tích tốn 1.1 Mục đích 1.2 Giải thuật 1.3 Thực hiên máy RAM thơ sơ 1.4 Chương trình RAM thơ sơ Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 PHẦN I: LÝ THUYẾT 10.4 NGƠN NGỮ KHÔNG PHẢI LÀ ĐỆ QUY LIỆT KÊ Biết có nhiều ngơn ngữ khơng phải đệ quy liệt kê điều hiển nhiên Theo luận văn Church-Turing, ngôn ngữ chấp nhận TM, nhận thủ tục thuật tốn nghĩ ra, phương pháp gọi “tinh tế” phương pháp tốt để mơ tả đối số Tuy nhiên chúng tơi sử dụng đối số Trong trường hợp đó, Chúng sử dụng ma trận hàng phù hợp với số nguyên i cột thiết lập Aj, chúng sử dụng thiết lập thao tác bao gồm định nghĩa (i, j) Ở đối số tinh tế nhiêu, tập hợp máy TMs bắt đầu đếm T0, T1, … i chuỗi mã hóa e(Ti) ϵ {0, 1}*, nơi e chức mã hóa sec 9.7 Rồi lặp lại đối số chéo trước, với thay đổi thay i sử dụng e(T i); thay Aj, sử dụng Tj, vị trí mà “i ∉ Aj” e(Ti) khơng chấp nhận Tj Bạn tạm ngừng đọc vào lúc này, bạn có khả mô tả xong ngôn ngữ cho thấy chấp nhận TM Định nghĩa thức chúng tơi khác, phần khơng giải trình rõ việc thiết lập TMs, chủ yếu thuận tiện vài ứng dụng sau để xem xét ngôn ngữ bậc cao Định nghĩa 10.4 Với NSA (Không tự-Chấp Nhận) tập hợp {0, 1}* :NSA = NSA1 ∪ NSA2 Nơi NSA1 = {ω ϵ {0, 1}* | ω = e(T) cho vài TM T, T không chấp nhận ω} NSA2 = {ω ϵ {0, 1}* | ω e(T) cho TM T} Với SA (tự-chấp nhận) phần bổ sung NSA {0, 1}*, cho SA = {ω ϵ {0, 1}* | ω = e(T) cho vài TM T, T chấp nhận ω} Định lý 10.9 Ngôn ngữ NSA khơng phải đệ quy liệt kê Chứng minh Khi đối số chéo trước, chứng minh mâu thuẫn, giả dụ có TM với L(To) = NSA Trong từ khác, chấp nhận chuỗi nhập vào ω nếu ω ϵ NSA Với ω0 chuỗi e(T0) Chúng ta có Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 thể hỏi TM T0 có chấp nhận chuỗi ω0 Nếu chấp nhận từ giả định chấp nhận NSA, ω0 ϵ NSA Từ ω0 mã hóa TM ω0 trở thành NSA với trở thành NSA1 Tuy nhiên, định nghĩa NSA1, ω0 ϵ NSA1 ω0 = e(To), T0 chấp nhận ω0 Ngược lại, Nếu T0 không chấp nhận ω0 ω0 thỏa mãn điều kiện từ tập hợp NSA1, T0 chấp nhận ω0 NSA1 ⊑ NSA = L(To) Bây có mâu thuẫn, Bất T chấp nhận ω0 khơng Tuy nhiên, nói hai khơng thể xảy Do đó, giả định L(To) = NSA phải sai Mặt khác bạn tự để hỏi - “vậy sao?” (ít bạn tự để hỏi điều bạn có đọc chứng minh hiểu nó) Ngơn ngữ NSA khơng thực tế, thực mà nói, biết có nhiều máy khơng đệ quy – đếm ngơn ngữ Tuy nhiên, định lý 10.9 có vài hệ quan trọng Chúng ta dùng để hiển thị số vấn đề, bao gồm số không âm giả định, “khơng có lời giải”, Bây dùng để tạo ví dụ khác, lọc mối quan hệ đệ quy liệt kê đệ quy Định lý 10.10 SA đệ quy liệt kê khơng đệ quy, nói cách khác, SA chấp nhận máy Turing, TM chấp nhận lặp mãi chuỗi vào ngôn ngữ Chứng minh, dễ dàng từ phần thứ định lý 10.9 Nếu SA đệ quy bổ sung NSA đệ quy Định lý 10.9 biểu diễn SA đệ quy khơng phải đệ quy liệt kê Do để hồn thành chứng minh, đủ để xây dựng TM Tsa chấp nhận ngôn ngữ SA Nhớ lại SA = {ω | ω = e(T) T chấp nhận ω} Các T sa cách xác định liệu chuỗi đầu vào ω có dạng e(T) T, khơng Tsa bị treo Nếu ω = e (T), T sa tái tạo sử lý ω T tạm ngừng T dừng liệu vào ω Chúng tơi có máy TM mang gồm bước : TM Tu sec9.7 có tác dụng ωe(ω) = e(T)e(ω) Điều có nghĩa Tsa xây dựng công thức T1Tu Để cho chuỗi ω e(T) số T phải bao gồm chuỗi 0k1 sau mã hóa chuỗi di chuyển TM Đặc biệt, phải tương ứng với biểu thức quy 0+1((0+1)5)+ Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 Tiếp theo, có nhiều di chuyển quy định cho trạng thái-biểu tượng kết hợp, có nghĩa khơng thể có hai khác "5-tuples" mà hai phận trùng với hai phần Thứ ba, phần thứ năm 5-tuple phải 0, 00, hay 000, mà đại diện cho hướng hợp lệ Cuối cùng, khơng có 5-tuple cho phép để có phần TM khơng phép di chuyển từ trạng thái dừng Bất kỳ chuỗi ký tự thỏa mãn điều kiện e (T) số T, máy T treo hỏng lý khác để thực hành động có ý nghĩa Tất phần hai điều kiện dễ dàng kiểm tra Để kiểm tra cho phần hai, T1 thực vòng lặp, lần lặp thứ i T1 tìm kiếm cho 5-tuples sau lần thứ i có hai phần lần thứ i Các chi tiết giống việc “tìm kiếm” phần TM thể fig 9-19, chúng tơi khơng mơ tả thêm Nếu bốn điều kiện cho ω có dạng e(T) khơng đáp ứng, sau T1 bị treo Nếu tất bốn điều kiện thỏa mãn phục hồi T1 đầu vào ω để hình thành ban đầu thêm vào kết thúc chuỗi e (ω) Bởi ω chuỗi 1, tạo chuỗi e (ω) đơn giản Nó bắt đầu với 11 Nếu hai ký hiệu a i aj, tương ứng, bảng chữ S, ω mã hoá i+1 0j+1, chuỗi theo sau Ví dụ, 00101 trở thành 110i+1110i+110j+110i+110j+11 Sau T1 chuỗi ωe(ω) băng, ngừng đầu băng vng 11.1 Văn phạm khơng hạn chế Đối với hai ngôn ngữ tự nhiên ngôn ngữ phi ngữ cảnh (CFLs), thảo luận mô tả cách để tạo chuỗi ngơn ngữ Một biểu thức tắc định ký hiệu chuỗi hoạt động (kết hợp, ghép nối, kleene’s) theo ngơn ngữ tự nhiên lấy từ ngơn ngữ bản; Văn phạm phi ngữ cảnh (CFG) chứa luật sinh sử dụng để lấy chuỗi từ số ký tự bắt đầu Ta vào xây dựng mơ hình tương ứng q trình tính tốn, máy trừu tượng, có thể thuật tốn để nhận biết chuỗi ngơn ngữ Trong trường hợp ngôn ngữ đệ quy liệt kê, chúng bắt đầu với máy (máy Turing) có phân biệt mơ hình chung q Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 trình tính tốn Bây chuẩn bị xem xét vấn đề tạo "văn phạm" tổng qt CFG cần làm Tiếp chương này, thấy ý tưởng văn phạm đủ linh hoạt để xử lý lớp khác ngôn ngữ, bao gồm ngôn ngữ xác nhận ngôn ngữ tự nhiên ngữ cảnh tự đệ quy liệt kê Kết hệ thống loại ngôn ngữ, khác từ đặc biệt (thường) đến tổng quát (đệ quy liệt kê), loại riêng văn phạm mơ hình cụ thể tính tốn Các " ngữ cảnh-tự do" CFG thực tế biến A chuỗi hành phát sinh thay vế bên phải việc tạo A, độc lập ngữ cảnh Vế bên trái tạo biến đơn, việc tạo áp dụng biến xuất chuỗi Đó ngữ cảnh-tự mà cho phép chứng minh bổ đề bơm cho CFLs, kết dài lâu phải có "tự nhúng" biến, biến A mà S ⟹ * υAz ⟹ * υωAyz Chúng làm cho văn phạm tổng quát cách cho phép vế bên trái tạo nhiều biến đơn Ví dụ, chúng sử dụng để tạo αAβ→αγβ Nếu muốn phép biến A thay chuỗi γ, A trực tiếp trước chuỗi α trực sau β Văn phạm tạo kiểu Những yêu cầu bổ sung mà γ ≠ A, vừa nghiên cứu bàn luận sau chương Nếu khơng có hạn chế γ, việc tạo kiểu tổng hợp đủ để mô tả ngôn ngữ quan tâm, nhiên, thường thuận tiện để viết chúng mẫu αAβ→γ hoặc, đơn giản α→β Điều có nghĩa chuổi tạo xem thay cách đơn giản chuỗi cho nhau, với ý tưởng thay chuỗi biến giữ lại theo ý nghĩa vế bên trái chuổi sinh phải có biến Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 Định nghĩa 11.1 Khơng hạn chế, hay cấu trúc giai đoạn văn phạm tuples G = (V, Σ, S, P), mà V Σ phân chia biến phần vào ra, tương ứng; S phần V gọi ký tự bắt đầu; P chuổi tạo theo mẫu α→β Nơi α, β ϵ (V U Σ) * α có chứa biến Phần lớn ký hiệu phát triển cho CFGs thực nguyên vẹn Đặc biệt α ⟹G* β Có nghĩa β bắt nguồn từ α khơng có qua nhiều bước, L(G)={x ϵ ∑*| s⟹*G x} Để minh họa cho tính tổng quát văn phạm, xem xét hai ví dụ, hai ví dụ ngơn ngữ phi ngữ cảnh- chương Ví dụ 11.1 L={aibici|i≥1} Văn phạm liên quan đến biến A, B, C, hai khác, mà giải thích Có kiểu tạo : tạo chuỗi với số bình đẳng A, B, C Mặc dù ký tự không theo thứ tự ưu tiên; mà cho phép chuỗi A, B, C biến đổi tất A tất C cuối ;và thay đổi tất biến cho phần vào tương ứng, theo thứ tự mong muốn Chuỗi sinh hai kiểu dễ dàng tìm thấy Các chuỗi tạo ngữ cảnh tự SABCS|ABC Tất chuỗi hình thức (ABC)n cho chuỗi A, B, C theo thứ tự cho chuỗi chứa khơng có chuỗi BA, CA, CB Vì vậy, chúng bao gồm chuỗi tạo mà thay đổi chuỗi không hợp lý vi phạm quy tắc BA→AB CA→AC Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 CB→BC Với kiểu thứ ba, thêm chuỗi tạo ra, A → α, sử dụng sớm, có nghĩa là, trước dãy biến Thay vào đó, nói C thay c trước c hay b cC→cc bC→bc B thay b trước b α bB→bb aB→ab Và, không dứt điểm, thay α trước α: α A→ α α Qua vấn đề cụ thể thời điểm, thấy việc tạo làm cho ba kết hợp không hợp lý bα, cα, cb Lúc này, vấn đề là: α đến từ đâu? khơng xác để có A → a, với hạn chế chúng vào b c Điều cho phép dãy abcabc, ví dụ, chuỗi ABCABC hai nửa bắt đầu với A có kết hợp quy tắc Bằng cách cuối vế trái A trở thành α để bắt đầu thứ Chúng giải vấn đề cách sử dụng thêm biến F để đứng cuối vế trái chuỗi Sau cho A thay α đứng trước α F: α A→ α α FA→ α Chúng dẫn biến F vào cuối vế trái Cho phép tạo S → FS S chuỗi tạo khơng điều cho phép thu S⟹FS⟹FABCS⟹FABCFS⟹FABCFABC⟹*abcabc Thay vào đó,chúng dùng tạo S→FS1 Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 Và sửa đổi chuỗi tạo trước liên quan đến S thay S Văn phạm cuối với chuỗi tạo S→FS1 S1→ABCS1 S1→ABC BA→AB CA→AC CB→BC FA→a aA→aa aB→ab bB→bb bC→bc cC→cc Các chuỗi aabbcc, ví dụ, bắt đầu sau Tại điểm, chuỗi gạch thay bước S⟹FS1⟹FABCS1⟹FABCABC⟹FABACBC ⟹FAABCBC ⟹FAABBCC⟹aABBCC⟹aaBBCC ⟹aabBCC ⟹aabbCC⟹aabbcC⟹aabbcc Dễ dàng thấy chuỗi L văn phạm này, nhiên, rõ ràng khơng phải chuỗi tạo Lưu ý S ⟹ * α, α khơng thể có ký hiệu cuối xuất sau biến, α ∈ Σ * V * Thứ hai, chuổi sinh chuỗi nguyên vẹn phần vào xếp lại biến bổ sung thêm nhiều phần vào Giả sử u ∈ L (G) u có kết hợp phần vào không hợp lệ, gọi ba Sau u = υbaω, có kết u từ S ⟹ * υbβ cho β ∈ V * Điều khơng khả thi, nhiên, vấn đề khơng phải β gì, khơng thể tạo α phần cuối tiếp Kết Trong ví dụ này, thay đổi vế trái A vế phải C, "phổ biến" ký hiệu vào bên phải phần vào ra, đề xuất thay đổi phần đầu băng từ TM dịch chuyển máy làm cho biến đổi băng từ Tương tự Đây trùng hợp ngẫu nhiên Bằng chứng văn phạm tạo ngôn ngữ đệ quy liệt kê tùy ý sử dụng khả văn phạm để bắt chước TM để thực loại "máy điện toán" Trong trường hợp, ý tưởng ký hiệu biến đổi thông qua chuỗi kỹ thuật hữu ích lần sử dụng ví dụ Ví dụ 11.2 Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 L={ss|s ∈ {a,b}*} Một TM sinh chuỗi L thuật tốn khơng đơn định cách tạo nửa đầu tùy ý sau tự ý làm trực tiếp sau Văn phạm chúng sau này, ngoại trừ ký hiệu nửa đầu chép sau tạo Giả sử sử dụng M đánh dấu để chuỗi số điểm chúng có chuỗi sMs Để tạo chuỗi dài loại, chúng chèn biểu tượng thêm vào đầu, sau di chuyển M để chèn biểu tượng Điều thực cách chèn hai ký hiệu đầu sau chuyển dần hai bên phải vượt qua M ví dụ đầu tiên, chúng sử dụng biến F để định trước chuỗi, chuỗi tạo kết SFM Mỗi lần σ ký tự thêm vào, di chuyển biểu tượng biến phiên chữ hoa σ Các chuỗi tạo FFaA FFbB Tạo ký hiệu, AaaA AbbA BbbB BaaB BbbB Cho phép biến để di chuyển qua phần vào nửa đầu Cuối cùng,biến chuyển số lần xem M, lúc tương ứng với đặt phần vào phía bên khơng xuất hiện, cách sử dụng chuỗi tạo AMMa BMMb Để hoàn thành kết chúng cần chuỗi tạo Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 FΛ MΛ Các chuỗi abbabb có kết sau trên, phần nhấn mạnh chuỗi vế bên trái việc sử dụng tạo SFMFbBMFbMbFbBbMbFbbBMbFbbMbbFaAbbMbb FabAbMbbFabbAMbbFabbMabbabbMabbabbabb Đây nguyên nhân rõ ràng chuỗi L tạo văn phạm chúng Chúng ta kết luận khơng có dãy khác tạo ra, cho phép Trước tiên, bị xóa chuỗi L (G) chiều dài giống nhau, kể từ tạo thay đổi độ dài cuối chuỗi tăng thứ hai, M cuối bị loại kết quả, tất ký hiệu phần vào chuỗi cuối có mặt, nửa phần trước M M phần vào chuỗi tạo FFaA FFbB kể từ chuỗi tạo khác mà tạo phần vào bên phải M Hơn để để lại phần cuối nửa đầu, gần xuất kết quả, thứ tự tương đối phần vào nửa đầu không thay đổi Của hai biến tạo hai chuỗi tạo giống nhau, nhiên, xuất sớm đạt đầu M hai phần khơng hốn đổi Vì vậy, hai phần cuối nửa thứ hai, đến từ bên trái biến xuất gần hơn, nửa thứ hai chuỗi kết PHẦN II: BÀI TẬP I Khái niệm số phức 1.1 Định nghĩa số phức: Ta định nghĩa phần tử i cho gọi đơn vị ảo Biểu thức gọi số phức; a gọi phần thực, b gọi phần ảo Ký hiệu a = Rez, b = Imz Như z = a + bi = Rez + i(Imz) Tập hợp số phức ký hiệu Nếu a = z = bi gọi số ảo; b = số thực z = a Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 Hai số phức gọi phần thực phần ảo tương ứng chúng nhau, tức là: Cho số phức z = a + bi Số phức a + (-b)i = a – bi gọi số phức liên hợp z, ký hiệu Khi đó: số phức liên hợp z 1.2 Các dạng biểu diễn số phức: Dạng đại số: Cách viết z = a + bi gọi dạng đại số hay dạng nhị thức số phức Biểu diễn hình học: Mọi số phức z = a + bi biểu diễn mặt phẳng Oxy dạng điểm A(a,b) với hoành độ a tung độ b, ngược lại, điểm M(a,b) mặt phẳng Oxy xem ảnh số phức a + bi Nếu z = a: Thì M(a,0) nằm trục Ox Vì vậy, trục Ox gọi trục thực Nếu z = bi: Thì M(0,b) nằm trục Oy Vì vậy, trục Oy gọi trục ảo Hai số phức liên hợp biểu diễn hai điểm đối xứng với qua trục Ox Nối điểm A(a,b) với gốc tọa độ, ta vectơ Trong nhiều trường hợp, người ta xem vec tơ biểu diễn hình học số phức z = a + bi II Những phép tính số phức: Cho hai số phức z = a + bi w = c + di Lần lượt có dạng lượng giác • Phép cộng : Phép trừ : • Phép nhân : • Phép chia : • III PHÂN TÍCH BÀI TỐN Trang Bài tập mơn học Lý thuyết tính tốn KHMT Khóa 12 1.1 Mục đích : Tính tổng tích hai số phức cho trước 1.2 Giải thuật : 1.2.1 Khai báo: (các modul cần thiết) public: so_phuc() { thuc=0; ao=0; } void nhap(); void cong(so_phuc&,so_phuc&); void hienthi(); void nhan(so_phuc&,so_phuc&); 1.2.2 Xây dựng modul 1.2.2.1 Modul nhap( ) : //Nhập số phức void so_phuc::nhap() { coutthuc; coutao; } 1.2.2.2 Modul hienthi( ) phức //Thực việc thị số void so_phuc::hienthi() { cout