Tất cả chúng ta công nhận rằng một nước muốn giàu có hùng mạnh
không những chúng ta có nhiều tài nguyên khoáng sản, có nhiều ruộng đất,
tiền của mà điều quan trọng là để đất nước ta phát triển ta phải có nhiều
người tài giỏi để phát hiện ra cái hay cái mới nâng cao dần sự hoàn thiện để
sự giàu có của con người và sự phồn vinh của xã hội. Như ta đã biết Việt Nam
đang gia nhập với các nước trên thế giới. Nếu con ngưởi Việt Nam chỉ có cần
cù mà không thông minh và nếu chúng ta đi theo lối mòn kế thừa những cái
có sẵn thì chúng ta rất dễ bị lạc hậu.
Tôi xin kể một câu chuyện như sau:
Ngày xưa, có một anh thanh niên khỏe mạnh ít học nhưng có sức khỏe
rất cường tráng. Một ngày nọ anh đi tìm việc làm và được một ông chủ khai
thác gỗ nhận vào làm công việc khai thác gỗ. Anh thanh niên rất mừng rỡ.
Anh được ông chủ phát cho một cái rìu.
Hôm làm việc đầu tiên, anh thanh niên hăng hái vào rừng khai thác gỗ.
Anh khai thác được 14 góc gỗ. Ông chủ rất hài lòng và khen anh ta. Anh
thanh niên rất vui mừng và nghỉ thầm ngày mai sẽ cố gắng hơn nữa.
Ngày làm việc thứ hai, anh thanh niên thức sớm hơn ngày đầu và làm
việc rất vất vả đến chiều. Anh khai thác được 12 góc gỗ. Để động viên được
tinh thần làm việc của anh ta ông chủ vẫn khen anh ta. Anh thanh niên thấy
được lòng tốt của ông chủ và nguyện với lòng ngày mai sẽ cố gắng hơn ngày
hôm trước:
Ngày làm việc thứ ba, anh thanh niên thức sớm hơn ngày làm việc thứ
hai và làm việc cả ngày và không hề nghỉ trưa. Kết quả hôm làm việc thứ ba
anh đã cố gắng làm việc hơn hai ngày đầu nhưng kết quả chỉ được 11 góc gỗ.
Anh thanh niên rất buồn và nói với ông chủ rằng:
2
Thưa ông tôi rất cố gắng hết sức nhưng kết quả ngày càng không tăng
mà có xu hướng giảm.
42 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 1867 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Ứng dụng một số nguyên tắc sáng tạo để giải quyết vấn đề bài toán trong tin học và ứng dụng giải bài toán 8 số trên máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
-----------------
BÀI THU HOẠCH MÔN HỌC
PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
ĐỀ TÀI
ỨNG DỤNG MỘT SỐ NGUYÊN TẮC SÁNG TẠO ĐỂ GIẢI QUYẾT
VẤN ĐỀ BÀI TOÁN TRONG TIN HỌC VÀ ỨNG DỤNG GIẢI BÀI
TOÁN 8 SỐ TRÊN MÁY TÍNH
GVHD: GS.TSKH. Hoàng Văn Kiếm
Học viên thực hiện: Huỳnh Thị Mỹ Hồng
Mã số học viên: CH1101086
TP.HCM, năm 2012
MỤC LỤC
Trang
MỞ ĐẦU ....................................................................................................... 1
CHƯƠNG 1: VẤN ĐỀ KHOA HỌC VÀ CÁC PHƯƠNG PHÁP GIẢI
QUYẾT .......................................................................................................... 4
1.1. Vấn đề khoa học ...................................................................................... 4
1.1.1. Khái niệm ............................................................................................. 4
1.1.2. Phân loại ............................................................................................... 4
1.1.3. Các tình huống vấn đề .......................................................................... 5
1.2. Phương pháp giải quyết vấn đề theo khoa học về phát minh, sáng chế .... 7
1.2.1. Vepol .................................................................................................... 7
1.2.2. Phương pháp giải quyết vấn đề theo khoa học về phát minh, sáng chế . 8
1.2.3. Một số thủ thuật, nguyên tắc về phát minh, sáng tạo ............................. 9
CHƯƠNG 2: CÁC PHƯƠNG PHÁP NGHIÊN CỨU, GIẢI QUYẾT VẤN
ĐỀ BÀI TOÁN TRONG TIN HỌC ............................................................. 21
2.1. Mục đích nghiên cứu giải quyết bài toán trong tin học .......................... 21
2.2. Các phương pháp thường dùng để giải quyết vấn đề bài toán trên máy
tính ............................................................................................................... 21
2.2.1. Phương pháp trực tiếp......................................................................... 21
2.2.2. Phương pháp gián tiếp hoặc tìm kiếm lời giải ..................................... 24
2.2.3. Các phương pháp Heuristic................................................................. 25
2.2.4. Các phương pháp trí tuệ nhân tạo ....................................................... 25
CHƯƠNG 3: LÝ THIẾT TRÒ CHƠI 8 SỐ .................................................. 26
3.1. Tìm hiểu trò chơi 8 số ............................................................................ 26
3.1.1. Mục đích giải quyết bài toán 8 số trên máy tính .................................. 26
3.1.2. Mô tả .................................................................................................. 28
3.1.3. Xác định trạng thái đích ...................................................................... 29
3.2. Thuật toán tìm đáp án ............................................................................ 30
3.2.1. Giới thiệu về A* ................................................................................. 30
3.2.2. Chi tiết thuật toán A*.......................................................................... 32
3.3. Cài đặt giải thuật ................................................................................... 38
3.3.1. Cài đặt giải thuật................................................................................. 38
3.3.2. Hướng dẩn sử dụng ............................................................................ 38
TÀI LIỆU THAM KHẢO ............................................................................ 39
1
MỞ ĐẦU
Tất cả chúng ta công nhận rằng một nước muốn giàu có hùng mạnh
không những chúng ta có nhiều tài nguyên khoáng sản, có nhiều ruộng đất,
tiền của… mà điều quan trọng là để đất nước ta phát triển ta phải có nhiều
người tài giỏi để phát hiện ra cái hay cái mới nâng cao dần sự hoàn thiện để
sự giàu có của con người và sự phồn vinh của xã hội. Như ta đã biết Việt Nam
đang gia nhập với các nước trên thế giới. Nếu con ngưởi Việt Nam chỉ có cần
cù mà không thông minh và nếu chúng ta đi theo lối mòn kế thừa những cái
có sẵn thì chúng ta rất dễ bị lạc hậu.
Tôi xin kể một câu chuyện như sau:
Ngày xưa, có một anh thanh niên khỏe mạnh ít học nhưng có sức khỏe
rất cường tráng. Một ngày nọ anh đi tìm việc làm và được một ông chủ khai
thác gỗ nhận vào làm công việc khai thác gỗ. Anh thanh niên rất mừng rỡ.
Anh được ông chủ phát cho một cái rìu.
Hôm làm việc đầu tiên, anh thanh niên hăng hái vào rừng khai thác gỗ.
Anh khai thác được 14 góc gỗ. Ông chủ rất hài lòng và khen anh ta. Anh
thanh niên rất vui mừng và nghỉ thầm ngày mai sẽ cố gắng hơn nữa.
Ngày làm việc thứ hai, anh thanh niên thức sớm hơn ngày đầu và làm
việc rất vất vả đến chiều. Anh khai thác được 12 góc gỗ. Để động viên được
tinh thần làm việc của anh ta ông chủ vẫn khen anh ta. Anh thanh niên thấy
được lòng tốt của ông chủ và nguyện với lòng ngày mai sẽ cố gắng hơn ngày
hôm trước:
Ngày làm việc thứ ba, anh thanh niên thức sớm hơn ngày làm việc thứ
hai và làm việc cả ngày và không hề nghỉ trưa. Kết quả hôm làm việc thứ ba
anh đã cố gắng làm việc hơn hai ngày đầu nhưng kết quả chỉ được 11 góc gỗ.
Anh thanh niên rất buồn và nói với ông chủ rằng:
2
Thưa ông tôi rất cố gắng hết sức nhưng kết quả ngày càng không tăng
mà có xu hướng giảm.
Ông chủ trả lời: anh là một người rất chăm chỉ làm việc nhưng anh
không biết nâng cấp dụng cụ lao động. Ví dụ cái rìu anh ngày đầu nó rất bén
nên anh khai thác được nhiều gỗ nhưng đến một ngày nào đó nó không còn
bèn nữa, đó là nói đến thời gian gần, nếu nói đến một thời điểm xa hơn nó
không còn phù hợp nữa mà phải thay bằng một dụng cụ khác. Ông chủ nói
tiếp, ngoài việc nâng cấp dụng cụ lao động anh còn phải biết sáng tạo trong
lao động, anh phải suy nghĩ làm thế nào để tốn ít sức lao động và công việc
đạt được nhiều hiệu quả hơn.
Từ câu chuyện của anh thanh niên ta rút ra được bài học là nghiên cứu
sáng tạo ra cái mới là rất cần thiết cho mỗi con người chúng ta nói riêng và sự
phát triển của xã hội nói chung.
Theo Gaudin, chúng ta không thể bằng lòng với vốn kiến thức quá hạn
hẹp thu nhận được trong những năm ngồi trên ghế nhà trường, mà phải học
suốt đời, phải có đủ vốn kiến thức về phương pháp để tự mình học tập, nghiên
cứu suốt đời. Có người đưa ra định nghĩa về cuộc đời như sau: “Cuộc đời là
chuỗi đề cần giải quyết và chuỗi quyết định cần phải ra”. Thật vậy mỗi ngày
chúng ta phải đối mặt biết bao vấn đề cần giải quyết. Câu hỏi đặt ra rằng
chúng ta phải giải quyết như thế nào để có hiệu quả nhất. Một con người khôn
ngoan sống lúc nào họ cũng muốn tiến dần đến sự hoàn thiện vì vậy họ luôn
đầu tư, tìm tòi ra cái hay, cái mới.
Ngày nay, nghiên cứu khoa học là một việc làm hết sức cần thiết đối với
mỗi chúng ta và nó trở thành một hoạt động sôi nổi trên thế giới. Tham gia
nghiên cứu khoa học được xem là cống hiến lớn của nhân loại cho khoa học
và xã hội vì tất cả các cơ quan nhà nước luôn luôn đãi ngộ đối với những
người đã cống hiến chất xám mình vào nghiên cứu khoa học. Để nghiên cứu
3
khoa học được thành con người phải có một tri thức nhất định và nhiều tâm
quyến để cần nghiên cứu sáng tạo. Hiện nay, công nghệ thông tin là một
ngành mũi nhọn, nó là chìa khóa để mở cửa cho tư duy và sáng tạo của con
người.
Qua bài thu hoạch này, em sẽ trình bày các suy nghĩ chủ quan của mình
về các thủ thuật, nguyên tắc về phát minh sáng tạo trong nghiên cứu khoa học
em cảm thấy ấn tượng nhất để có thể áp dụng vào trong đời sống hằng ngày
và trong ngành môn tin học của mình và cách giải bài toán trên máy tính. Qua
đây, em cũng xin được gửi lời cảm ơn sâu sắc đến GS.TSKH. Hoàng Văn
Kiếm, người đã tận tâm truyền đạt những kiến thức nền tảng cơ bản cho
chúng em về môn học “Phương pháp nhiên cứu khoa học trong tin học”. Bên
cạnh đó cũng không thể không nhắc đến công lao trợ giúp không mệt mỏi của
các chuyên gia cố vấn qua mạng thuộc Trung tâm phát triển CNTT – ĐH
Quốc gia TP.HCM và toàn thể các bạn bè học viên trong lớp.
4
CHƯƠNG 1
VẤN ĐỀ KHOA HỌC VÀ CÁC PHƯƠNG PHÁP GIẢI QUYẾT
1.1. Vấn đề khoa học
1.1.1. Khái niệm
Vấn đề khoa học (scientific problem) cũng được gọi là vấn đề nghiên
cứu (research problem) hoặc câu hỏi nghiên cứu là câu hỏi được đặt ra khi
người nghiên cứu đứng trước mâu thuẫn giữa tính hạn chế của tri thức khoa
học hiện có với yêu cầu phát triển tri thức đó ở trình độ cao hơn.
1.1.2. Phân loại
Nghiên cứu khoa học luôn tồn tại hai vấn đề:
- Vấn đề về bản chất sự vật đang tìm kiếm.
- Vấn đề về phương pháp nghiên cứu để làm sáng tỏ về lý thuyết và thực
tiễn nhưng vấn đề thuộc lớp thứ nhất.
Cách giải quyết vấn đề khoa học như thế nào?
Giải quyết vấn đề khoa học. Đây là mong muốn của những người muốn
bước vào con đường khoa học. Như ta đã biết có rất nhiều ứng dụng vi mô từ
phát minh sáng chế khoa học thành công trong cuộc sống.
Một người muốn phát minh sáng tạo cần có 3 yếu tố cần thiết sau:
- Kiến thức đủ để sáng tạo: Người phát minh sáng tạo cần có một kiến
thức nhất định phù hợp với công trình nghiên cứu. Một người có kiến thức
phổ thông đã biết sáng tạo khoa học nhưng mỗi người sáng tạo như thế nào?
mức độ nào? là hoàn toàn khác nhau.
- Môi trường đòi hỏi sáng tạo: Môi trường ảnh hưởng rất lớn đến đời
sống của con người kể cả vấn đề sáng tạo của con người. Sống trong môi
trường luôn đòi hỏi con người sáng tạo là môi trường luôn luôn đổi mới để
hoàn thiện và phát triển.
5
- Khát vọng sáng tạo của con người: Có lẻ đây là vấn đề rất quan trọng
để phát minh sáng tạo. Phát minh sáng tạo đòi hỏi con người phải có lòng
ham mê, ốc sáng tạo và vượt khó, kiên trì bởi có rất nhiều nhà khoa học phát
minh ra một cái mới họ phải thử đi thử lại rất nhiều có khi phải mất hàng chục
năm.
1.1.3. Các tình huống vấn đề
Có ba tình huống: Có vấn đề, không có vấn đề, giả vấn đề được cho
trong hình dưới đây:
Các phương pháp phát hiện vấn đề khoa học. Có 6 phương pháp:
1) Tìm những kẻ hở, phát hiện những vấn đề mới
2) Tìm những bất đồng
3) Nghĩ ngược lại quan niệm thông thường
4) Quan sát những vướng mắc trong thực tiễn
5) Lắng nghe lời kêu ca phàn nàn
6) Cảm hứng: những câu hỏi bất chợt xuất hiện khi quan sát sự kiện nào
đó.
Một tiếp cận không gian giải quyết vấn đề.
Ý tưởng Bài toán Mô hình Cách giải
Bài toán P: Sau khi có ý tưởng, bài toán P được đặt ra nhằm giải quyết
mục đích cuối cùng là gì? Trong cùng điểm nhìn, cùng một không gian, nếu ta
P
Bài toán P
Điểm nhìn
Không gian, vấn đề
6
thay đổi bài toán thì vấn đề cũng thay đổi nhưng chỉ thay đổi theo mục đích
yêu cầu của bài toán.
Ví dụ: Khi lập trình giải bài toán phương trình bậc 1 nếu cần chuyển
sang giải phương trình bậc 2 thì bài toán lúc này có khác ta chỉ thay đổi mục
đích yêu cầu từ bậc 1 sang bậc 2.
Điểm nhìn: nơi có vị trí, tầm nhìn khách quan nhất, bao quát vấn đề để
khi giải quỵết không còn sai sót hoặc sai sót ít có thể chấp nhận được. Nếu
cùng một bài toán cùng một không gian nhưng điểm nhìn khác nhau thì vấn
đề có thay đổi, nhưng cũng không thay đổi một cách tuyệt đối hoàn toàn.
Cũng có những vấn đề được nhìn nhận tương tự nhau.
Ví dụ: Do đâu rất nhiều tai nạn giao thông xảy ra ở nước ta.
Cùng một vấn đề trên nếu ở hai điểm nhìn khác nhau sẽ trả lời khác
nhau:
- Nhìn từ phía xây dựng: Mặt đường chưa bằng phẳng, đường còn hẹp,
còn nhiều công trình cầu đường cần nâng cấp.
- Nhìn từ phía cảnh sát giao thông: Ý thức chấp hành luật giao thông của
người tham gia giao thông còn kèm.
Không gian vấn đề: Bài toán P đặt trong không gian vấn đề sao cho
không quá phức tạp, nhưng cũng không thể đơn giản quá dẫn tới sai sót. Nếu
cùng một bài toán, cùng một điểm nhìn, nhưng không gian khác nhau thì vấn
đề sẽ có nhiều thay đổi hơn.
Ví dụ: Cùng một phần mềm được ứng dụng ở một trường học lại khác ở
một ngành nghề khác.
Như vậy tính thay đổi của vấn đề từ thấp đến cao như sau:
Bài toán (P) Điểm nhìn Không gian
7
1.2. Phương pháp giải quyết vấn đề theo khoa học về phát minh, sáng chế
1.2.1. Vepol
“Bất cứ hệ thống kỹ thuật nào ít nhất cũng phải có hai thành phần vật
chất tác động tương hỗ và một loại trường hay năng lượng”
Từ đó có một thuật ngữ về tam giác kỹ thuật gọi là tam giác Vepol.
Vepol là mô hình hệ thống kỹ thuật. Vepol được quy ước đưa ra cốt chỉ để
phản ánh một tính chất vật chất của hệ thống nhưng là chủ yếu nhất với bài
toán đã cho. Ví dụ xét bài toán nâng cao tốc độ tàu phá băng thì băng đóng
vai trò vật phẩm, tàu phá băng đóng vai trò cộng cụ và trường cơ lực đặt vào
tàu để tác động tương hỗ với băng.
Việc phân loại các chuẩn để giải quyết các bài toán sáng chế dựa vào
phân tích Vepol. Mô hình Vepol gồm 3 yếu tố: một Trường T và trong T có
hai vật chất V1, V2.
V1
T
V2
Tuy nhiên, một hệ thống ban đầu chưa hẳn đã có một chuẩn Vepol đủ 3
yếu tố trên, hoặc đã đủ thì có thể phát triển gì thêm trên Vepol đó.
Có 5 phương pháp:
- Dựng Vepol đầy đủ
- Chuyển sang Fepol
- Phá vỡ Vepol
- Xích Vepol
- Liên trường
8
1.2.2. Phương pháp giải quyết vấn đề theo khoa học về phát minh, sáng chế
Có 40 nguyên lý:
1. Nguyên lý phân nhỏ
2. Nguyên lý “tách riêng”
3. Nguyên lý phẩm chất cục bộ
4. Nguyên lý phản đối xứng
5. Nguyên lý kết hợp
6. Nguyên lý vạn năng
7. Nguyên lý chứa trong
8. Nguyên lý phản trọng lượng
9. Nguyên lý gây ứng xuất sơ bộ
10. Nguyên lý thực hiện sơ bộ
11. Nguyên lý dự phòng
12. Nguyên lý đẳng thế
13. Nguyên lý đảo ngược
14. Nguyên lý cầu “tròn” hóa
15. Nguyên lý năng động
16. Nguyên lý tác động bộ phận và dư thừa
17. Nguyên lý bộ xung chiều khác
18. Nguyên lý tự dao động cơ học
19. Nguyên lý tác động theo chu kỳ
20. Nguyên lý tác động hữu hiệu
21. Nguyên lý vượt nhanh
22. Nguyên lý chuyển hại thành lợi
23. Nguyên lý quan hệ phản hồi
24. Nguyên lý sử dụng trung gian
25. Nguyên lý tự phục vụ
9
26. Nguyên lý sao chép
27. Nguyên lý rẽ thay cho đắt
28. Nguyên lý thay thế sơ đồ cơ học
29. Nguyên lý sử dụng các kết cấu thủy và khí
30. Nguyên lý sử dụng bao mềm dẻo và mềm mỏng
31. Nguyên lý sử dụng vật liệu nhiều lỗ
32. Nguyên lý đổi màu
33. Nguyên lý đồng nhất
34. Nguyên lý loại bỏ và tái sinh từng phần
35. Nguyên lý đổi các thông số hóa lý của đối tượng
36. Nguyên lý sử dụng chuyển pha
37. Nguyên lý sử dụng nở nhiệt
38. Nguyên lý sử dụng các chất oxy hóa
39. Nguyên lý sử dụng môi trường trơ
40. Nguyên lý sử dụng vật liệu tổng hợp
Đưa một bài toán vào máy tính
1.2.3. Một số thủ thuật, nguyên tắc về phát minh, sáng tạo
1.2.3.1. Nguyên tắc phân nhỏ
Nội dung:
- Chia các đối tượng thành các phần độc lập.
- Làm đối tượng thành các thành phần tháo ráp.
P MT
Algorithm
Program
10
- Tăng mức độ phân nhỏ của đối tượng.
Nhận xét:
- Nguyên tắc phân nhỏ thường dùng các nguyên tắc “2_tách khỏi”,
“3_phẩm chất cục bộ”, “5_kết hợp”, “6_vạn năng”…
- Ứng dụng quen thuộc nhất chính là chia chương trình thành nhiều chức
năng nhỏ, còn được gọi là “hàm” hay “thủ tục”.
Ứng dụng nguyên tắc trên trong tin học:
Trong lập trình nếu gặp những bài toán dài phức tạp người ta thường
chia những chương trình nhỏ gọi là chương trình con. Chương trình con được
dùng rộng rãi khi xây dựng các chương trình lớn nhằm làm cho chương trình
dễ theo dõi, dễ sửa chữa, có thể phân mảnh chương trình cho nhiều người
làm. Một đặc điểm nổi bật của chương trình con là nó có tính đệ quy nhờ thế
mà nhiều bài toán được giải quyết dễ dàng.
Ví dụ: Giải phương trình bậc hai: ax2+bx+c=0; với a,b,c được nhập vào
từ bàn phím.
Chúng ta sẽ sử dụng thủ tục để thực hiện công việc tính Delta và nghiệm
nếu có.
Trong thủ tục này chúng ta lưu ý: Các biến chúng ta sử dụng là biến toàn
cục, nên công việc tính Delta và tính nghiệm sẽ được thực hiện trong chương
trình con và kết quả sẽ được mang ra ngoài thủ tục để phục vụ cho công việc
xét nghiệm.
{Giai phuong trinh bac 2}
Program GiaiPTB2;
uses wincrt;
var a,b,c,x1,x2,Delta:real;
{Thu tuc tinh Delta va nghiem}
Procedure PTB2;
11
var r:real;
begin
Delta := sqr(b)-4*a*c;
if Delta >= 0 then
Begin
r := Sqrt(Delta);
x1 := (-b-r)/(2*a);
x2 := (-b+r)/(2*a);
end;
end;
{Than chuong trinh chinh}
Begin
Writeln(‘Nhap 3 he so: a,b,c(Moi so cach nhau mot dau cach)’);
readln(a,b,c);
PTB2;
if Delta < 0 then write(‘Phuong trinh vo nghiem’)
else
If Delta = 0 then Write(‘Phuong trinh co 1 nghiem: ‘, x1:10:2)
else writeln(‘Phuong trinh co 2 nghiem: x1 = ‘, x1:10:2 ,’***** x2 = ‘,
x2:10:2);
readln;
end.
Trong môn Cấu trúc dữ liệu và giải thuật sắp xếp trộn (merge sort)
Ý tưởng:
Sắp xếp trộn (merge sort) cùng với sắp xếp nhanh là hai thuật toán sắp
xếp dựa vào tư tưởng “chia để trị” (divide and conquer). Thủ tục cơ bản là
việc trộn hai danh sách đã được sắp xếp vào một danh sách mới theo thứ tự.
12
Nó có thể bắt đầu trộn bằng cách so sánh hai phần tử một (chẳng hạn phần tử
thứ nhất với phần tử thứ hai, sau đó thứ ba với thứ tư...) và sau khi kết thúc
bước 1 nó chuyển sang bước 2. Ở bước 2 nó trộn các danh sách hai phần tử
thành các danh sách bốn phần tử. Cứ như vậy cho đến khi hai danh sách cuối
cùng được trộn thành một.
Ví dụ: Ta có 12 13 45 32 100 34 65 10
Ta có ở trên là 8 phần tử cần được sắp xếp:
Ý tưởng của merge sort là thay vì sắp xếp 8 phần tử (khó sắp) thì ta chia
đôi dãy đó ra làm đôi (số phần tử nhỏ hơn --> sắp dễ hơn ) và sắp xếp các dãy
con rồi ghép 2 dãy con lại (gọi là merge 2 dãy con).
Vậy ta làm như sau:
Chia đôi --> được hai dãy con mới là 12 13 45 32 và 100 34 65 10 sắp 2
dãy con lại: 12 13 45 32 gọi là dãy A 100 34 65 10 gọi là dãy B.
+ Muốn sắp A ta cũng làm giống như trên:
Chia đôi A, được 2 dãy mới là A11={12 13} A12={45 32}
Chia đôi B được 2 dãy mới là B11={100 34} B12={65 10}
+ Sắp xếp A11, B11, A12, B12.
+ Muốn sắp xếp A11 thì ta cũng chia đôi đến khi sắp được ta có 2 dãy
con là A21={12} A22={13}. Sắp 2 dãy con trên được (đơn giản vì chỉ có một
phần tử) là A21={12} A22={13}. Sắp xong thì ta merge lại thành A11={12
13}.
+ Tương tự sắp xếp cho B11 , A12 , B12 ta cũng có:
B11={34 100} B12={10 65} A12={32 45}
+ Sắp xếp xong, ta sẽ merge lại A11, A12 thành A={12 13 32 45}
B11, B12 thành B={10 34 65 100}
Sắp xong A, B, ta sẽ merge chúng lại thành dãy ban đầu: {10 12 13 32
34 45 65 100}
13
1.2.3.2. Nguyên tắc “tách riêng”
Nội dung:
Tách thành phần gây phiền phức ra khỏi đối tượng hoặc ngược lại. Tách
lấy phần cần thiết.
Nhận xét:
Nguyên tắc này ta thấy rất nhiều trong thực tế. Tách riêng ra để chúng ta
dễ xử lý.
a) Khi xử lý tín hiệu số có thể ta sẽ:
- Tách bỏ các nhiễu, phục hồi tín hiệu ban đầu.
- Sóng mang tín hiệu: tách sóng để lấy tín hiệu cần thiết.
b) Thử vàng bằng nhiệt hoặc kim loại để:
- Thử bằng nhiệt (phun lửa): chất không phải vàng sẽ nóng chảy và lộ ra
trước tiên.
- Dùng hóa chất để trích vàng trong hỗn hợp vàng-bạc. Dùng phép điện
giải để mạ các đối tượng.
Ứng dụng nguyên tắc trên trong tin học:
Trong môn cơ sở dữ liệu ta tìm phủ tối thiểu của một phụ thuộc hàm:
Ý tưởng: Từ một tập phụ thuộc hàm ban đầu ta loại bỏ các phụ thuộc
hàm dư thừa để tìm phủ tối thiểu.
Ví dụ: Cho lược đồ quan hệ Q(A,B,C,D) và tập pth F={ABCD,
BC,CD}. Tìm phủ tối thiểu?
1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một thuộc tính.
+ Ta có: F={ABC,ABD,BC,CD}.
2. Bỏ các thuộc tính dư thừa ở vế trái.
+ BC, CD không xét vì vế trái chỉ có một thuộc tính.
+ Xét ABC: Nếu bỏ A thì B+=BCD không chứa A nên không thể bỏ
A. Nếu bỏ B thì A+=A. Không bỏ được thuộc tính nào.
14
+ Xét ABD: Nếu bỏ A thì B+=BCD không chứa A nên không thể bỏ
A. Nếu bỏ B thì A+=A. Không bỏ được thuộc tính nào.
3. Loại khỏi F các thuộc tín