1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng cấu trúc dữ liệu chương 1 TS trần cao đệ

26 280 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 26
Dung lượng 326,8 KB

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

Nội dung

int w=đ nh đ u tiên trong newclr;while wnull && !found.

Trang 1

Ch ng 1: M 1: M U U

TS Tr n Cao

N m 2010

Trang 2

T BÀI TOÁN N CH NG TRÌNH

T BÀI TOÁN N CH NG TRÌNH

• Mô hình hóa bài toán

– Xác đ nh bài toán c n gi i quy t:

• ph i làm gì?

• làm nh th nào?

– Hình th c hóa bài toán: phát bi u l i bài

toán th c t thành m t bài toán hình th c (hay còn g i là mô hình toán)

Trang 3

Ví d 1: Tô màu b n đ th gi i

• M i n c đ u đ c tô m t màu

• Hai n c láng gi ng (có biên gi i chung) thì ph i đ c tô b ng hai

màu khác nhau

Trang 4

• Mô hình hóa bài toán tô màu này

– tìm cách bi u di n bài toán m t

cách tr u t ng h n đ g t b

các chi ti t không c n thi t

• Ghi l i t t c các n c trên b n đ

• M i quan h “láng gi ng” gi a hai n c

Trang 6

Mô hình hóa

• Ghi nh n t t c các l i đi: AB,

AC, AD, BA, BC, BD, DA, DB,

DC, EA, EB, EC, ED

• Ghi nh n m i liên quan gi acác l i đi:

– Hai l i không th đi đ ng th i

đ c dùng là ít nh t.

Trang 7

Nh n xét

• Hai bài toán th c t : “tô màu b n đ th

gi i” và “ đèn giao thông” xem ra r t khác

bi t nhau nh ng sau khi mô hình hóa,

chúng th c ch t ch là m t, đó là bài toán

“tô màu đ th ”.

• Nhi u bài toán cùng mô hình toán

– Gi i mô hình toán å gi i nhi u bài toán hay

gi i m t l p các bài toán

Trang 8

Gi i thu t (algorithms)

• Khi đã có mô hình cho m t bài toán:

– Tìm cách gi i quy t bài toán trong mô hình đó

Trang 9

Gi i bài toán “ tô màu đ th ”

• Bài toán tô màu cho đ th

• Ý t ng c a Heuristic này là

h t s c đ n gi n: dùng m tmàu đ tô cho nhi u đ nh nh t

có th đ c Nh v y ta có th

"hi v ng" là s màu c n dùng

s ít nh t

Trang 10

Áp d ng HEURISTIC Greedy cho

bài toán« « đ đ èn giao thông »

• Tô màu xanh cho các

Trang 12

Greedy có cho l i gi i t i u?

5: vàng

2,5 : xanh3: xanh;4: xanh

1,3,4 : đ1: đ ; 2: đ

T i u(th t t c các kh n ng)

Tô theo GREEDY

(xét l n l t theo s th t các

đ nh)

Trang 13

Ngôn ng gi và tinh ch t ng

b c

• Mô hình hóa å mô hình thích h p cho bài toán

• Hình th c hoá m t gi i thu t trong thu t ng c a mô

Trang 14

{2} for (m i đ nh v ch a tô màu c a G) do

{3} if (v không đ c n i v i m t đ nh nào trong Newclr) then begin{4} đánh d u v đã đ c tô màu;

{5} thêm v vào Newclr;

Trang 15

Tinh ch t ng b c

• M nh đ if {3} có th chi ti t hoá h n n a nh sau:

PROCEDURE GREEDY ( var G: GRAPH ; var Newclr: SET );

Trang 16

Ki u d li u tr u t ng

• GRAPH và SET ta coi nh t p h p

– Có nhi u cách đ bi u di n t p h p trong ngôn ng l p trình: xem các t p h p nh là

m t danh sách (LIST) các s nguyên bi u

di n ch s c a các đ nh và k t thúc b ng m t giá tr đ c bi t NULL

Trang 17

PROCEDURE GREEDY ( var G: GRAPH ; var Newclr: LIST );

var found:boolean;

v,w :integer;

begin

Newclr:= ∅ ;

v:= đ nh đ u tiên ch a đ c tô màu trong G;

while v<>null do begin

found:=false;

w:= đ nh đ u tiên trong newclr;

while( w<>null) and (not found) do begin

Trang 18

• Vi c ch n ngôn ng gi t a PASCAL hay t a C hay t a

m t m t ng l p trình nào khác là tùy thu c vào thói

quen c a ng i s d ng, vào s quen thu c v i ngôn

ng l p trình

Trang 19

N u ng i dùng quen thu c v i ngôn ng C có th vi t

void GREEDY ( GRAPH& G, SET& Newclr ){

/*1*/ Newclr = ∅;

/*2*/ for (m i đ nh v ch a tô màu c a G)

/*3*/ if (v không đ c n i v i m t đ nh nào trong Newclr){

/*4*/ đánh d u v đã đ c tô màu;

/*5*/ thêm v vào Newclr;

}

}

Trang 20

}

Trang 21

int w=đ nh đ u tiên trong newclr;

while( w<>null) && (!found)

Trang 22

Tóm t t các b c ti p c n v i m t

bài toán

1 Mô hình hoá bài toán b ng m t mô hình toán h c thích

h p.

2 Tìm gi i thu t trên mô hình này

Gi i thu t có th mô t m t cách không hình th c, t c là nó chnêu ph ng h ng gi i ho c các b c gi i m t cách t ng

Trang 23

h c cùng v i m t t p h pcác phép toán (operator)

tr u t ng đ c đ nhngh a trên mô hình đó

– Ví d t p h p s nguyêncùng v i các phép toán

h p, giao, hi u là m t ki u

d li u tr u t ng

– ADT là s t ng quát hoá

c a các ki u d li unguyên thu

Trang 24

ADT - t ng quát hoá các ki u d li u

– Thêm m t s nguyên vào danh sách.

• N u chúng ta vi t các ch ng trình con th c hi n các phép toán này, thì ta

d dàng thay các m nh đ hình th c trong gi i thu t b ng các câu l nh đ n

gi n

w=ph n t k ti p trong newclr w=NEXT(w,newclr)

w=ph n t đ u tiên trong newclr w=FIRST(newclr)

newclr= ∅ MAKENULL(newclr)

M nh đ hình th c Câu l nh

Trang 26

H t ch ng 1

Ngày đăng: 03/12/2015, 02:46

TỪ KHÓA LIÊN QUAN