1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỀ tài BẢNG PHƯƠNG án

14 250 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 353,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trờng đại học bách khoa Hà Nộikhoa công nghệ thông tin ---o0o---Báo cáo thực tập tốt nghiệp đề tài : bảng phơng án Giáo viên hớng dẫn : Nguyễn Thanh Tùng Sinh viên thực hiện : Hà Nội

Trang 1

Trờng đại học bách khoa Hà Nội

khoa công nghệ thông tin

-o0o -Báo cáo thực tập tốt nghiệp

đề tài : bảng phơng án

Giáo viên hớng dẫn : Nguyễn Thanh Tùng

Sinh viên thực hiện :

Hà Nội 02 2004

BảNG PHƯƠNG áN

I Bảng phơng án (Decision table)

- Bảng phơng án là công cụ mô tả các hành động cần thực hiện của các

điều kiện logic

- Giá trị trong chơng trình có nhiều điều kiện C1, C2, C3, …., Cn

Trang 2

Điều kiện Ci nhận giá trị Ui ứng với dữ liệu vào Vậy ứng với một dữ liệu vào ta có một bộ giá trị

V = (V1; V2; V3; …, Vn;) Gọi là vector điều kiện Khi đó một vector V cần phải thực hiện một hành động A nào đó Khi

đó cấp {V; U) đợc gọi là quy tắc hành động, tập hợp các quy tắc hành động bảng phơng án Nh vậy bảng phơng án là:

+ Xét riêng từng hành động, các hành động này không vào nhau

+ Thích nghi với việc mô tả việc xử lý toàn tin trong thực hiện có các

điều kiện phức tạp (vì không phải móc nối các điều kiện phức tạp)

+ Tự động hoá mô tả các quy tắc thành điều khiển

- Là bảng 2 chiều nhng không có hớng dễ xây dựng hơn

- User chỏ có thể giải quyết đợc ≤ 5 điều kiện nếu mà lồng nhau (32 nhánh)

- Nếu vị chỉ = Đ (true)

S (False) Thể là bảng phơng án nhị phân

Ngợc lại bảng phơng án mở rộng và mỗi bảng phơng án mở rộng cần bảng phơng án nhị phân bằng cách thtêm một số điều kiện bổ trợ

Ví dụ: x có thể nhận các giá trị P1; P2; P3

Khi đó có thể biểu diễn

Yi = (1) 0

(2) 1

Và y1 + y2 + y3 = 1 thay vào xét x ta xét

y1, y2, y3 về lý thuyết ta chỉ xét bảng phơng án nhị phân còn bảng

ph-ơng án mở rộng có thể biến đổi đa về bảng phph-ơng án nhị phân

- Thờng bảng phơng án biểu diễn dới dạng bảng 2 chiều mà mỗi cột

t-ơng đt-ơng nội dung quy tắc hành động

C2 U21 U2n ← Giá trị điều kiện

Trang 3

Cn Un1 Unn

A1 Ann ← Hành động (Actions)

Ta không biểu diễn ở dạng này vì quá ít giá trị trên thực tế ứng với mỗi

điều kiện trong một quy tắc hành động có thể có 4 khả năng xảy ra do Vij của Ci

F {F, T}

(T or F phụ của tổ hợp một tập các điều kiện tơng

đ-ơng với hành động chuẩn)

Và có nhiều cách biểu diễn khác nhau, trong đó có một cách ngời ta biểu diễn

Vij phụ của Ci Y

N

- ; Biểu diễn điều kiện này trong quy tắc không -; Đóng vai trò quan trọng

Có 4 điều kiện

C4 không đóng vai trò trong hành động A1

- Quy tắc hành động: Để biểu diễn chận cần thêm quy tắc hành động ELSE C trong thực hiện còn lại

Ví dụ:

Trang 4

C2 Y N N Else

- Tính chất bảng phơng án: Muốn thành lập bảng phơng án đúng cần bảo đảm 2 tính chất:

 Không mẫu thuẫn: không tồn tại vector điều kiện tơng ứng với 2 hành động khác nhau C tức là 2 không tồn tại quy tắc hành động mà giao của

điều kiện khác nhau

 Bảng phơng án fải đầy đủ tức là phải bao quát hết mỗi trơng hớp (Có hành động rỗng hay trơng hớp không phải làm gì cả)

- Nếu không có ELSE có 2n quy tắc hành động (quy tắc rút gọi): điều kiện cần kiểm tra tró đi để đảm bảo tính đầy đủ

- Cho phép một vecto điều kiện đợc mô tả ở nhiều quy tức hành động miễn là không dẫn đến mâu thuẫn

- Các hành đồng thờng đợc cho bởi vector các lời gọi {call} i lời gọi

đ-ợc đánh số từ 1 trở đi {0 dành cho hành động khác nhau} cần có ánh xạ từ tập {đối tợng} N+, việc ánh xạ thờng đợc thực hiện theo thứ tự từ điển nhng nhợc

điểm là: với dữ liệu không có chơng trình ta lại phải biến đổi thành dữ liệu có chơng trình (ví dụ với các tập hợp số {1, 2, 3,} và {3, 2, 1} ta ánh xạ {1, 2, 3}

về tập tự nhiên nhánh {1, 2, 3} và {3, 2, 1} cần phải chuẩn hoá

- Bảng phơng án đợc xây dựng nh trên phúc hợp với các chơng trình Macro (thông dịch) tuy nhiên không thích hợp với computer

- Biểu diễn dới dạng ma trận đánh dấu

Với bảng phơng án Bn x m → (Pn x m) trong đó các phân tử của P, Q là 0 và 1: Loại bỏ cột ELSE tơng ứng trong bảng B

Vậy Bij = Y

→ Pij =

1 Hay Pij

0

Đánh dấu những điều kiện thực sự cần phải kiểm tra còn

Qij =

1 (Đánh dấu những điều kiện thực sự cần kiểm tra) và nhận giá trị: Y (true)

1 0

Trang 5

Ví dụ:

1 + 22 + 21 +1 : 8 đầy đủ Kiểm tra mẫu thuận không trùng cách kiểm tra từng cấp cột (1, 2) (1, 3) một → bảng này không mâu thuận

→ P =

1 0

0 1

1 1

1 1

1 1

0 1

; 0 =

0 0

0 1

0 0

1 0

1 0

0 1

: 2

Bảng nhị phân

P và Q thờng là ma trận tha, còn P thờng còn số lợng φ ít → ta còn Pđói với φ; Q có số 1 ít Q→ tha đối với 1→ ta có AP không thực hiện lu trữ ma trận cha đối với cả P và Q → biểu diễn đợc với ma trận có m x n lớn dùng các ma trận khối móc nối các điều kiện với nhau:

Những gì không biểu biểu diễn đợc với P và Q ⇒ biểu diễn = Z (phần tử)

Số điều khiển (n) số lợng chơng trình tờng đơng (Sn)

nối các đ/k với nhau

/N

C 1

or

1

2

Trang 6

⇒ Sn+1 = (n + 1) S2

Xét bảng phơng án không có quy tắc ELSE, có 3 nhóm phơng pháp chính:

1 Phơng pháp khoá Số (Numberi key).

Input: - Bảng phơng án

- Vector điều kiện Output: - Hành động

- Bớc 1: Tính V = (V1, V2, …, Vn)

- Bớc 2: Xây dựng khoá là 1 số n Gọi Ki là bit thứ i = thứ

Ki = 0 nếu Vi = F

1 nếu Vi = T

- Bớc 3: Rẽ nhánh theo lệnh CAS

End;

m = 2n (nếu m < 2n → tức là có quy tắc ELSE)

1 K of

2 K of else

end;

Trang 7

- Ưu điểm của phơng pháp này:

+ Đơn giản:

Nhng có nhợc điểm: quam trpọng là ĸ >> 1 → dạng biểu diễn không còn là dạng chuẩn và việc duyệt giá trị của ĸ là khó khăn

+ Không nếu đo hành động dới dạng rút gọn

+ Tính đầy đủ n giá trị của n điều kiện

Để đánh giá ngời ta tính số lợng kiểm tra trung bình (đẻ đi theo một nhánh nào đó ta phải tính) trong trờng hợp này 1 nhánh → ta phải tính ≤ n

điều kiện

- Dùng phơng pháp này khi các quy tắc hành động thực sự ít nhng đó phải ánh xạ sang tập giá trị thật sự

2 Lựa chọn theo ma trận đánh dấu.

- Bớc 1: Tính V = (V1, V2, … Vn)

x = (v1, v2, … , vn) Nhợc lại điểm phải tính giá trị của n điều kiện có vectơ

Nhị phân vi = 0 nếu Vi = F

1 nếu Vi = T

- Bớc 2: Kí hiệu Pi = j của P Tính Y = (y1, y2, … , yn)

Yi = Pji * vi

- Bớc 3: So sánh Y với cột Qj

Nếy Y = Qj → thực hiện hành động j

Ngợc lại tặng lên và quay lại bớc 2

Ví dụ:

P =

=

0 0 0 1

0 0 1 0

1 0 0 Q

1 0

0 1 0 0 1

1 1 1 1

1 1 0

1

Trang 8

B =

3 2 1

C

C

C

N

N

N Y

Y

N

Y Y N

- Giả sử V (N N Y) → thực hiện hành động nào

G: x = (0, 0, 1)

Y =





1 0 0 1

0 0 0 0

0 0 0 0

4 3 2 1

Việc so sánh ở đây la so sánh bit → nhánh, số phép so sánh trung bình

(số lần thực hiện bớc 2 và bớc 3) là

2

m : 0n)

3 Phơng pháp rẽ nhánh lần lợt.

- Sơ đồ rẽ nhánh

+ Xây dựng điều kiện để kiểm tra đầu tiên chọn điều kiện sao cho tránh

đợc nhiều nhất việc tính các giá trị điều kiện không cần kiểm tra tiêu chuẩn chọn

Chọn điều kiện có số lợng – Min

Ví dụ: Trớc → chọn điều kiện 2 và dùng một vector đánh dấu điều kiện

đã kiểm tra (giá trị tơng ứng = 0)

Ví dụ: chọn điều kiện 2 để kiểm tra → (1, 0, 1)

C2

A

1 A

2 A

3

1

A

2

0 1

D

n

Đánh dấy hàng tham gia với bảng

PA con

Để biểu diễn ma trận này → biểu diễn C Vector 1 0 1 1 2 = 1

1 → C = N

Trang 9

N Y N N

Số phép kiểm tra trung bình để xác định một hành động:

8

14 8

1

=

= +

+ +3 1 3 1 2 2 4

Không cần phải lu trữ toàn bộ cây xác định trên mà cần xác định điều kiện phụ / số lợng Y – số lợng N / → số phép kiểm tra trung bình giảm

Ví dụ ứng dụng bảng phơng án

Ví dụ 1: Các bài toán logic phức tạp Ví dụ: trò chơI xét trò chơi 2 ngời:

Có 5 quân bài đánh số từ 1: 5; ban đầu 5 quân bài đều ở trạng thái ngửa Tổng của 2 ngời bạn đầu ≥ 0 Hai ngời lần lợt đi theo quy tắc sau:

Mỗi ngời đến lợt mình úp 1 quân đang ở trạng thái ngửa cộng số quân bài vào 5 và bật quân bài bị úp trớc đó, ngời đấu trên có thể úp 1 quân bất kỳ trong các quân ở trạng thái ngời kết thúc khi ai làm cho S > 35 → thua

Lần t → 5 khả năng → 5 x 4 x 4 …

Lần t trở đi → 4 = 5 x 4k≥ 5 x 46

-C2

C

2

C3 Y N A

1 A

2

A3

A2

A

1

C2

C1

C3

A4

A

2

A

3

Y

Số phép kiểm tra

Trang 10

Căn cứ vào 5 bớc đi đầu có thể đánh giá đợc mớc đi thắng hoặc thua →

35 x 5 = 165 trờng hợp

Nó đi ứng với trờng hợp S = 33 và S = 28 → goi là ngời thua

1 + + - - - - + + - - - + +

2 - + + - - - - + - - - +

3 - + + - - - + - - + - - +

4 - - - + - - - + - - -

-5 - - + - + - - - - + + - - -

-Nếu S = 20 → bỏ đi từ cột 14 đến cột 1 với ngời t không có khả thắng → Từ bảng phơng án ta có thể làm trò chơi dàn nhánh hoặc chậm đa dạng Chơng trình BEGIN clrscr; B-fan; {xây dựng bảng phơng án } nhap ; repeat if luật đi them computer else user ; Kiểm tra – kết thúc ; Until kết thúc xử lý kết thúc ; END Cột đầu không có 5 cột giá trị trớc đó để tính → đặt là thắng hết vì nếu đi vào đó → ngời đi tiếp theo đều sẽ thua cả + = 1 - = 0 Var B: array [1 …… 5, ∅ …… 40];

Procadure B.fan ;

Trang 11

i, j: byte;

Begin

fillchar (B, size of (B), ∅) for i : = 36 to 40 do

for j : = 1 to 5 do b [i, j] : = 1;

for 35 down to ∅ do for i : = 1 to 5 do giá trị (i, j);

End;

Procedune giá trị (x, y : byte)

(* Nh vậy ta thực hiện biểu thức∑

=

n

1

i i

b ) Var

j, j, t : byte

Begin

t : = 0 ;

j : = x + y

for i = 1 to 5 do

t : = t + b [i, j]

t : = t – b [x, j]

(* x + y phải tính lại theo từng giá trị i trùng lặp for (j : = 1-5) phải thực hiện 5 lần giá trị (v + y) → nhanh hơn; thừa 2 phép tính t : = t + b [v + y] vào sau đó thực hiện t : = t

-t : = -t – b [v ; j]*)

jf t : > 0 then b [v, y) : = 0

else b [v, y] : = 1;

end;

- Thời gian IP chỉ đọc lệnh tiếp theo → thực hiện 1 lệnh và xử lý lệnh tiếp theo đợc xử lý song song

- Chờ đợi xong và đọc ra → tính giá tăng gấp đôi

- Chờ đợi, kiểm tra thay đổi thới gan IP một cách thích hợp tốn thời gian hơn

if f: Lệnh gán có điều khiển

Trang 12

- Thủ tục nó đi của computer cần xác định

S : tổng

Up : con bài i úp

- Giả sử up [u] cộng tất cả các giá trị –up, thử kiểm tra đến nớc thắng Nếu S = 0 → máy thua, S > 0 máy thắng

- Điều khiển trò chơi trong điều kiện thắng Lựa chọn nớc đi lớn

→ đi tìm kiếm từ dới lên cho tới khi b [i, s] > 0

→ để trò chơi kéo dài → tìm kiếm từ trên xuống sao cho b [i, s] > 0

→ Xây dựng chơng trình một cách ngẫu nhiên

Procudune xây dựng – i;

Var Begin

Repeat

i : = random (5) + 1 Until (b [1] = 1) and (i < > up) (;) End ;

- Không cần (;) tốt hơn, chơng trình dịch chạy nhanh hơn, tốt hơn Do khi thực hiện một lệnh thòi gian IP chỉ đến lệnh tiếp theo → thực hiện ⊥ lệnh sau đó: do lệnh sau đó là end Proce nên nó không phải thực hiện → bỏ qua →

tốn thời gian hơn

(Phù hợp với lí thuyết và năng suất lao động hơn)

- Dấu (;) trong Pascal đóng vai trò

1> Chức năng đánh dấu phân biệt phân tách 2> Chức năng kết thúc

Nguyên tắc của máy tính là phải nhìn thấy mỗi chuyện sau đó mới thực hiện Ngầm định máy tính không nhìn thấy gì khi không thực hiện điều gì cả

Trong Pascal (;) đóng vai trò phân tách, là phơng tiện để tách câu lệnh này tách rời so với câu lệnh khác

Trong ⊥ số lợng hợp, dấu phân biệt đồng thời là dấu hiệu kết thúc

- Hệ điều hành ra soát bảng đánh dấu

- Tính chất của hệ điều hành: + tin cậy

+ chuẩn xác

→ Nguyên tắc làm việc trên bảng phơng án (Nguyên lý điều khiển)

Trang 13

Chuẩn HP → MP1 → MP3: / thống nhất về âm thanh

MP4: cha thành chuẩn MP3 : Nén xuống về cấu trúc dữ liệu →tác động lên cách xử lý

IV Bảng phơng án mở rộng

Vi nhận nhiều hơn 2 giá trị → i = 1, 2, 3 …

ánh xạ tập đối tợng bất kỳ sang tập số tự nhiên {1, 2, 3 ….}

Sắp xếp theo thứ tự từ điển

- Bảng phơng án:

Cij giá trị nguyên (thuộc tập giá trị của nó)

dấu gạch ngang giá trị còn lại

- Dịch gắn liền với quá trình thực hiện: chọn điều kiện tiếp theo để kiểm tra

1 bit có 2 kernel : + Đơn vị đl để xoay quanh nó xử lý

+ Đơn vị xử lý: bao giờ cũng áp dụng vào đơn vị đó

- Công cụ gđ dịch: mô tả cho CT dịch, tạo ra các câu lệnh mức ct nguồn

- Chọn điều kiện: Thống kê xem mỗi giá trị xuất hiện bao nhiêu lần →

áp dụng cho quy tắc thồng minh

{1 ữ 3} {1 ữ 2} {1 ữ 4}

{48} trờng hợp Xét bảng p/a

C1 4 3 1 - (lần) lấy vì C1 = C2 = 4 ⇒ max C2 4 2 1 1 (tỉ lệ xuất hiện max)

C3 3 3 1 1 ⇒ có thể đánh giá Y chọn C1hay C2

Trang 14

Ví dụ:

hiện

Giá trị các hành động Ai không phụ thuộc vào trình tự kiểm tra khi thay

đổi A1, A2, A3 không làm thay đổi giá trị các biến (hiệu ứng phụ)

A

1

C1

C2

A2

3

A3

A4

Ngày đăng: 23/06/2016, 16:15

HÌNH ẢNH LIÊN QUAN

Bảng nhị phân - ĐỀ tài  BẢNG PHƯƠNG án
Bảng nh ị phân (Trang 5)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w