TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN ANH KHIÊM NGHIÊN CỨU CÁC PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG TÍNH TOÁN QUA CẤU TRÚC HỆ THỐNG Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật
Trang 1NGUYỄN ANH KHIÊM
NGHIÊN CỨU CÁC PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG TÍNH TOÁN QUA CẤU TRÚC HỆ THỐNG
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN ANH KHIÊM
NGHIÊN CỨU CÁC PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG TÍNH TOÁN QUA CẤU TRÚC HỆ THỐNG
Ngành: Công nghệ Thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã số: 60480103
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TIẾN SĨ LÊ QUANG MINH
Hà Nội – 2014
Trang 3LỜI CẢM ƠN
Để hoàn thành chương trình khóa cao học và viết luận văn này,tôi đã nhận được sự hướng dẫn, giúp đỡ và góp ý nhiệt tình của quý thầy cô trường Đại học Công nghệ - Đại học Quốc gia Hà Nội
Trước hết, tôi xin bày tỏ lòng biết ơn sâu sắc đến TS Lê Quang Minh – người đã hướng dẫn tôi thực hiện luận văn này Thầy đã cung cấp cho tôi những kiến thức, những tài liệu, phương pháp nghiên cứu một vấn đề mang tính khoa học và giúp tôi đưa ra những ý tưởng khi làm luận văn
Xin cùng bày tỏ lòng biết ơn chân thành tới các thầy cô giáo trong Bộ môn
Kỹ thuật phần mềm, Khoa Công nghệ Thông tin, những người đã đem trí tuệ, công sức của mình truyền đạt lại cho chúng tôi những kiến thức học tập vô cùng
có ích trong những năm học vừa qua
Cũng xin gửi lời cảm ơn chân thành tới Ban Giám hiệu Nhà trường, Phòng Đào tạo sau đại học, Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo điều kiện tốt nhất cho chúng cho tôi trong suốt quá trình học tập
Cuối cùng tôi xin gửi lời cảm ơn đến gia đình, bạn bè, những người đã luôn bên tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu của mình
Hà Nội,ngày 09tháng 06 năm 2014
Học viên
Nguyễn Anh Khiêm
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan những nội dung kiến thức trình bày trong luận văn này là
do tôi tìm hiểu tài liệu, nghiên cứu và trình bày theo cách hiểu của bản thân dưới
sự hướng dẫn trực tiếp của TS.Lê Quang Minh Các nội dung nghiên cứu và kết quả thực nghiệm trong đề tài này hoàn toàn trung thực
Trong quá trình làm luận văn, tôi có tham khảo đến một số tài liệu liên quan của các tác giả, tôiđã ghi rõ nguồn gốc tài liệu tham khảo và được liệt kê tại phần tài liệu tham khảo ở cuối luận văn
Học viên
Nguyễn Anh Khiêm
Trang 5MỤC LỤC
DANH MỤC HÌNH VẼ 6
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 11
1.1 Khái niệm cơ bản về độ tin cậy 11
1.1.1 Tổng quan về độ tin cậy 11
1.1.2 Định nghĩa về độ tin cậy 11
1.2Những khái niệm cơ bản 12
1.2.1 Phần tử không phục hồi 12
1.2.2 Phần tử phục hồi 17
1.3Phương pháp tính giá độ tin cậy của hệ thống qua cấu trúc hệ thống 20
1.3.1 Sơ đồ khối tin cậy của hệ thống 20
1.3.2 Hệ thống các phần tử nối tiếp 21
1.3.3 Hệ thống các phần tử song song 23
1.4 Phương pháp đánhgiá độ tin cậy của hệ thống qua cấu trúc hệ thống 24
1.4.1Phương pháp đồ thị giải tích 24
1.4.2Bài toán tìm đường đi trong đồ thị hệ thống 25
1.4.2.1 Thuật toán chuyển đổi sơ đồ cấu trúc logic thành sơ đồ khối 25
1.4.2.2Thuật toán chuyển đổi sơ đồ cấu trúc logic sang đồ thị liên kết 26
1.4.2.3 Thuật toán tìm tất cả các đường đi trong ma trận liên kết 26
1.4.2.4 Thuật toán tìm tất cả đường đi của ma trận liên kết theo lý thuyết đồ thị 29
1.4.3Bài toán tối thiểu phần tử logic 30
1.4.4 Bài toán xác định trực giao hóa các toán tử logic 31
1.4.4.1Các phương pháp giảm thiểu các hàm đại số logic đối với các hình thức trực giao và trực giao không lặp 32
1.4.4.2Các quy tắc chuyển đổi hàm logic sang dạng xác suất trong dạng chuẩn tắc tuyển 34
1.5 Kết luận 34
Trang 6CHƯƠNG 2: NHỮNG PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CỦA HỆ
THỐNG 36
2.1 Tổng quan về phương pháp nâng cao độ tin cậy 36
2.1.1 Ý nghĩa 36
2.1.2 Lĩnh vực ứng dụng 38
2.2 Hệ thống dự phòng có tải 40
2.3 Hệ thống dự phòng không tải 42
2.4 Hệ thống dự phòng nhẹ tải 46
2.5 Hệ thống dự phòng bảo vệ tích cực 49
2.6 Phương pháp nâng cao độ tin cậy về phần mềm 50
2.6.1 Tổng quan về độ tin cậy phần mềm 50
2.6.2 Kỹ thuật cải thiện độ tin cậy phần mềm 52
2.7 Kết luận 55
CHƯƠNG 3: XÂY DỰNG PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG MÁY CHỦ DỰ PHÒNG 57
3.1 Đặt vấn đề 57
3.2 Phát biểu bài toán 58
3.3 Mô hình hệ thống dự phòng nâng cao độ tin cậy 60
3.3.1 Mô hình bài toán dự phòng truyền thống 60
3.3.2 Mô hình bài toán hệ thống dự phòng bảo vệ tích cực: 62
3.3.3 Mô hình hệ thống kết hợp dự phòng truyền thống và dự phòng bảo vệ tích cực 64
3.4 Kết luận 68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70
TÀI LIỆU THAM KHẢO 71
Trang 7DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT
AP Active Protection Phương pháp dự phòng chủ động
HCS Hierarchical Computing Systems Hệ thống máy tính phân cấp
MTTF Mean Time To Failure Thời gian hoạt động an toàn trung bình
MTBF Mean Time Between Failure Thời gian trung bình giữa hai lần hỏng
MTTR Mean Time To Repair Thời gian trung bình sửa chữa sự cố
RBD Reliability Block Diagrams Sơ đồ khối độ tin cậy
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1: Hàm mật độ phân phối xác suất theo thời gian 14
Hình 1.2: Biểu diễn độ tin cậy của phần tử 14
Hình 1.3: Biểu diễn hàm phân phối xác suất 14
Hình 1.4: Biểu diễn hàm phân phối và độ tin cậy 16
Hình 1.5: Biểu diễn cường độ hỏng hóc 16
Hình 1.6 Các khoảng làm việc và khoảng phục hồi 17
Hình 1.7: Mô hình chuyển trạng thái của phần tử 18
Hình 1.8: Sơ đồ của hệ các phần tử nối tiếp 21
Hình 1.9: Sơ đồ hệ các phần tử song song 23
Hình 2.1: Cấu trúc hệ thống dự phòng song song (dự phòng nóng) 40
Hình 2.2: Cấu trúc hệ thống dự phòng không tải (dự phòng nguội) 42
Hình 2.3: Các khả năng không hỏng của hệ hai phần tử 43
Hình 2.4: Các khả năng không hỏng của hệ ba phần tử 44
Hình 2.5 Cấu trúc hệ thống dự phòng bảo vệ tích cực 49
Hình 2.6: Đồ thị điều chỉnh độ tin cậy của phần mềm theo thời gian 51
Hình 3.1 Mô hình hệ thống máy tính phân cấp 59
Hình 3.2 Cấu hình HCS với dự phòng 60
Hình 3.3 Cấu hình hệ thống HCS với AP 62
Hình 3.4 Cấu hình HCS với AP và dự phòng tĩnh 64
Hình 3.5 Cấu hình HCS với các phương án dự phòng 66
Hình 3.6 Đồ thị xác suất độ tin cậy của HCS cấu hình số 1, số 14, số 18, số 20 theo thời gian 67
Hình 3.7 Cấu hình HCS với AP và dự phòng nhân bản ba 67
Hình 3.8 Đồ thị xác suất độ tin cậy của HCS cấu hình số 1, số 14, số 21, số 22 theo thời gian 68
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Cuộc cách mạng bùng nổ của khoa học kỹ thuật trong lĩnh vực công nghệ thì đã bắt đầu tạo ra các hệ thống tính toán - đó là các hệ thống siêu phức tạp hỗ trợ con người trong hầu hết các lĩnh vực của đời sống: khoa học máy tính, giao thông vận tải, năng lượng và các ngành khác của xã hội, Các hệ thống tính toán thay thế hoặc hỗ trợ con người trong kỷ nguyên công nghệ, nó tạo ra các hệ thốngsiêu phức tạp trong các lĩnh vực của nền kinh tế Hệ thốngtính toán không đơn thuần chỉ là một hệ thống đơn giản mà là hệ thống được đặc trưng bởi một
số lượng lớn các yếu tố thành phần, có cấu trúc phức tạp với các chương trình tính toán, điều khiển các hoạt động của nó Đây chính là những hệ thốngcó tính ứng dụng cao, tham gia vào trong tất cả các lĩnh vực của đời sống, là toàn bộ cơ
sở hạ tầng của xã hội hiện đại
Tuy nhiên, cũng chính vì các hệ thống này tham gia tất cả các lĩnh vực trong xã hội nên nền sản xuất xã hội luôn phải đối mặt với nguy cơ các hệ thống, thiết bị không sẵn sàng để hoạt động một cách chính xác, cùng với việc thao tác sai và những sai lầm không đáng có trong quá trình thiết kế chế tạo thiết bị, đã làm cho cấu trúc hệ thống bị phá vỡ, các chức năng của hệ thống hoạt động không chính xác Các hệ thống kỹ thuật hiện đại, phức tạp nếu không đảm bảo được độ tin cậy thì hệ thống coi như không tồn tại
Từ những nguy cơ đối mặt với các hệ thống không hoạt động, thiết bị cho kết quả không chính xác,… chúng ta thấy được nguy cơ tiềm tàng xảy ra đối với mỗi hệ thống Vì vậy, việc cần phát triển nhanh chóng các phương pháp đánh giá độ tin cậy của các hệ thống ở tất cả các giai đoạn thiết kế, thử nghiệm, sản xuất, hoạt động là điều hết sức quan trọng và cần thiết
Độ tin cậy và khả năng hoạt động an toàn của hệ thống phụ thuộc vào cấu trúc của nó (cấu trúc logic) và độ tin cậy của các thành phần cấu thành nên hệ thống Đối với các hệ thống phức tạp, có hai cách để tăng độ tin cậy: tăng độ tin cậy của các yếu tố thành phần và thay đổi chương trình Phương pháp nâng cao
độ tin cậy của các yếu tố thành phần là phương pháp đơn giản nhất để tăng độ tin cậy của hệ thống Từ những chỉ số đánh giá độ tin cậy của hệ thống thì chúng
Trang 10ta có thể xây dựng các phương pháp dự phòng nhằm nâng cao độ tin cậy cho các
hệ thống
Xuất phát từ nhu cầu thực tế cần xây dựng các biện pháp nâng cao độ tin cậy cho các phần tử, hệ thống cấu trúc và là một vấn đề còn mới tại Việt Nam
nên tôi nghiên cứu và đề xuất đề tài: “Nghiên cứu các phương pháp nâng cao
độ tin cậy cho hệ thống tính toán qua cấu trúc hệ thống” Thông qua luận văn
tác giả muốn đi sâu nghiên cứu, tìm hiểu và hệ thống lại các phương pháp đánh giá độ tin cậy cho phần tử, từ đó nghiên cứu và đề xuất các phương pháp dự phòng nâng cao độ tin cậy cho hệ thống quacấu trúchệ thống
2 Mục đích nghiên cứu
Luận văn đã nghiên cứu phương pháp đánh giá độ tin cậy của hệ thống, dựa trên các chỉ số đó nghiên cứu các phương pháp dự phòng nâng cao độ tin cậy cho hệ thống, đề xuất cải tiến thêm một phương pháp dự phòng tích cực và chứng minh phương pháp đề xuất cho hiệu quả cao hơn so với các phương pháp truyền thống
3 Giả thuyết khoa học
Nếu đánh giá đúng đắn độ tin cậy của hệ thống thì sẽ làm cơ sở để xây dựng các phương pháp nâng cao độ tin cậy của hệ thống cấu trúc và đưa ra các giải pháp xây dựng các phương án dự phòng cho các hệ thống cấu trúc phức tạp hơn, làm nền tảng đáng tin cậy cho các nhà sản xuất,… cho ra đời các hệ thống, sản phẩm có chất lượng, năng suất và hiệu quả cao hơn trong nền kinh tế xã hội
4 Nhiệm vụ nghiên cứu
- Nghiên cứu các khái niệm cơ bản, các chỉ số của phần tử, hệ thống và các phương pháp tính độ tin cậy của hệ thống
- Nghiên cứu đưa ra các phương pháp dự phòng nâng cao độ tin cậy của hệ thống cấu trúc
- Áp dụng các phương pháp dự phòng cho hệ thống cấu trúc trên mô hình
hệ thống máy tính phân cấp cụ thể
Trang 11- Đưa ra các biểu đồ so sánh hiệu quả các phương pháp dự phòng và đề xuất phương pháp dự phòng dựa trên các phương pháp dự phòng truyền thống
và cho kết quả so sánh
5 Phương pháp nghiên cứu
Luận văn sử dụng các phương pháp nghiên cứu:
- Phương pháp phân tích, tổng hợp lý luận: nghiên cứu, tìm hiểu, phân tích các tài liệu có liên quan đến đánh giá độ tin cậy, các phương pháp dự phòngnâng cao độ tin cậy của hệ thống
- Phương pháp sử dụng toán học: Sử dụng phương pháp tính toán xác suất thống kê, xử lý các kết quả và xây dựng đồ thị trực quan so sánh các kết quả
6 Đóng góp của luận văn
- Luận văn đã nghiên cứu, tổng hợp lại các cơ sở lý luận về đánh giá độ tin cậy của hệ thống
- Nghiên cứu các phương pháp dự phòng nâng cao độ tin cậy cho hệ thống cấu trúc
- Đưa ra các kết quả đánh giá, so sánh các phương pháp dự phòng trên một
mô hình hệ thống máy tính phân cấp làm nền tảng đánh giá các hệ thống cấu trúc phức tạp hơn
7 Cấu trúc luận văn
Ngoài phần mở đầu và kết luận, luận văn gồm có 3 chương:
CHƯƠNG I CƠ SỞ LÝ THUYẾT
Trong chương này tác giả đã nghiên cứutài liệu, hệ thống lại và trình bày các vấn đề: các khái niệm cơ bản về phần tử, hệ thống cấu trúc, các chỉ số của xác suất làm việc an toan của hệ thống Nêu lên các phương pháp tính độ tin cậy của hệ thống và phương pháp đánh giá độ tin cậy của hệ thống cấu trúc
CHƯƠNG 2: NHỮNG PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CỦA HỆ THỐNG
Dựa trên các phương pháp tính độ tin cậy của hệ thống thì luận văn đã nghiên cứu đưa ra các phương pháp nâng cao độ tin cậy cho hệ thống cấu trúc:
Trang 12hệ thống cấu trúc các phần tử có tải, hệ thống cấu trúc các phần không tải, hệ thống cấu trúc dự phòng chủ động
CHƯƠNG 3: XÂY DỰNG PHƯƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG MÁY CHỦ DỰ PHÒNG
Từ những lý thuyết nghiên cứu và trình bày trong chương 1 và chương 2 luận văn đã áp dụng thực nghiệm lý thuyết trên vào một mô hình máy tính phân cấp (Hierarchical Computing Systems) Dựa trên kết quả thực nghiệm đã chỉ ra rằng hệ thống có sử dụng các phương pháp dự phòng mang lại hiệu quả kinh tế cho hệ thống và đồng thời cũng cho thấy hệ thống sử dụng phương pháp dự phòng tích cực có nhiều ưu điểm hơn sơ với phương pháp dự phòng truyền thống
Trang 13CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái niệm cơ bản về độ tin cậy
1.1.1 Tổng quan về độ tin cậy
Trong lĩnh vực khoa học kỹ thuật khi đánh giá về định lượng của phần tử hoặcchức năng,thành phần trong hệ thống chúng ta thường sử dụng phươngpháp phân tích, tính toán dựa trên các yếu tố cơ bản là: tính làm việc an toàn và tính sửa chữa được và cho ra cácchỉsố, các chỉ số chính là độ tin cậy [3]
Đối tượng nghiên cứu của khoa học về độ tin cậy [3] là các động cơ, thiết
bị, bộ phận máy, các thành phần hệ thống và các tổ hợp của chúng trong mối quan hệ tương hỗ với nhau để nhằm hoàn thành một phức hợp nhiệm vụ nhất định-gọi chung đối tượng nghiên cứu này là phần tử
“Phần tửlà một đối tượng có độ tin cậy độc lập, một bộ phận tạo thành hệ thống mà trong quá trình nghiên cứu độ tin cậynó được xem như là một đơn vị không chia nhỏ hơn nữa trong hệ thống” [3]
Độ tin cậy của phần tử được cho trước hoặc xác định dựa trên các số liệu thống kê Việc nâng cao khả năng làm việc của các phần tử, các thành phần trong hệ thống như khả năng chịu tải, chịu nhiệt, tốc độ, độ chính xác, hiệu suất làm việc, khả năng tự động hóa, tuổi thọ, độ an toàn,… dưới những điều kiện nhất định trở thành vấn đề cấp thiết hiện nay.Quan niệm về hệ thống theo quan điểm lĩnh vực khoa học kỹ thuật làm cơ sở cho việc tính toán độ tin cậy cho hệ thống:
“Hệ thống là một tập hợp gồm nhiều phần tử tương tác, có các mối quan
hệ ràng buộc lẫn nhau, tương hỗ nhau và cùng thực hiện hướng tới một mục tiêu nhất định”[3]
Các bài toán về độ tin cậy và các chỉ tiêu về độ tin cậy của các đối tượng cơ bản được đánh giá định lượng bằng số đo xác suất
1.1.2 Định nghĩavề độ tin cậy
Độ tin cậy của phần tử hoặc hệ thống là xác suất để trong suốt khoảng thời gian khảo sát t, phần tử đó hoặc hệ thống đó vận hành an toàn[3,4]
Giả sử gọi P(t) là độ tin cậy của phần tử, được định nghĩa như biểu thức sau:
Trong đó: là thời gian liên tục vận hành an toàn của phần tử
Trang 14Theo công thức (1.1) phần tử chỉ vận hành an toàn với một xác suất nào đó (0 ≤ P ≤ 1) trong suốt khoảng thời gian t
Khi bắt đầu vận hành nghĩa là ở thời điểm t = 0, phần tử bao giờ cũng hoạt động tốt nên P(0)= 1 Ngược lại thời gian càng kéo dài, khả năng vận hành an toàn của phần tử càng giảm đi và tới khi t∞ thì theo quy luật phát triển của vật chất dưới sự tác động bào mòn của thời gian, phần tử đó sẽ hỏng nên P(∞) = 0
Vì phần tử bị hư hỏng là một sự kiện ngẫu nhiên xảy ra ở các thời điểm khác nhau nên các chỉ tiêu độ tin cậy cũng thường tính dưới dạng xác suất
Theo định nghĩa xác suất [2] thì xác suất không an toàn Q(t) hay còn gọi là xác suất hỏng của hệ thống sẽ là:
mà người ta có thể coi phần tử [3] đó là phần tử phục hồi hay phần tử không phục hồi Một vệ tinh do thám không, khi còn để trong kho nếu bị hư hỏng ta có thể sửa chữa được thì khi đó nó được coi là phần tử có phục hồi nhưng khi vệ tinh do thám đó đã bay vào không gian thì nó sẽ được coi là sản phẩm không phục hồi
Những thông số cơ bản của phần tử không phục hồi là:
a Thời gian vận hành an toàn
Giả thiết ở thời điểm t = 0 phần tử bắt
đầu hoạt động và đến thời điểm t = thì
phần tử bị sự cố Khoảng thời gian được
gọi là thời gian liên tục vận hành an toàn
của phần tử Vì sự cố không xảy ra tất
định nên là một đại lượng ngẫu nhiên
có các giá trị trong khoảng 0 ≤ ≤ ∞
Giả thiết trong khoảng thời gian khảo sát t thì phần tử xảy ra sự cố với xác suất Q(t) Khi đó: Q(t) = P{< t}
Trang 15Vì là đại lƣợng ngẫu nhiên liên tục nên:
- Q(t) đƣợc gọi là hàm phân phối của biến ngẫu nhiên liên tục
- f(t) là hàm mật độ phân phối xác suất của
Trên hình 1.1, biểu diễn hàm mật độ phân phối xác suất của thời gian trung bình vận hành an toàn
Mật độ xác suất hỏng [3] là hàm số đặc trƣng cho tốc độ giảm độ tin cậy, cũng chính là tốc độ tăng hƣ hỏng của phần tử Theo tính chất của hàm mật độ phân phối xác suất của biếnngẫu nhiên liên tục ta có:
𝑓 𝑡 = 𝑑𝑄(𝑡)
𝑑𝑡 = 𝑄’(𝑡)(1.3) Trong đó thỏa mãn tính chất:
𝑓 𝑡 𝑑𝑡 = 1
∞
0Hàm mật độ phân phối xác suất của là:
b Độ tin cậy của phần tử P(t)
Xác suất làm việc không hỏng của phần tử [3,6] hay hàm mô tả độ tin cậy của phần tử đƣợc ký hiệu là P(t) và đƣợc tính theo định nghĩa:
P(t) = 1 – Q(t) = P{ ≥ t} (1.5) Xác suất không hỏng của phần tử phụ thuộc vào thời điểm t đang xét tức
là tuổi thọ của phần tử
Xác suất không hỏng của phần tử có các tính chất [3]:
1 0 ≤ 𝑃 𝑡 ≤ 1 vì P(t) là số đo xác suất của sự kiện
2 P(0) = 1: ở thời điểm ban đầu phần tử hoàn toàn tốt, không xảy ra hƣ hỏng
3 P ∞ = 0: sau thời gian làm việc dài thì việc hƣ hỏng chắc chắn xảy
ra
Trang 164 𝑃 𝑡1 ≥ 𝑃 𝑡2 𝑣ớ𝑖 𝑡2 > 𝑡1 hàm P(t) đơn điệu không tăng, với thời
gian làm việc dài thì khả năng xuất hiện hư hỏng sẽ nhiều hơn
Theo giả thiết ≥ t nên ta có P(t) là xác suất để phần tử vận hành an toàn
trong khoảng thời gian t
Từ công thức tính xác suất an toàn của phần tử P(t) ta biểu diễn trên trục
toạn độ theo thời gian:
Quan sát đồ thị hình 1.3 biểu diễn hàm phân phối xác suất ta thấy rằng
Q(∞) = 1 và P(∞) = 0, chứng tỏ độ tin cậy của phần tử giảm dần theo thời gian
c Cường độ hỏng hóc (t)
Cường độ hỏng (t)hay cường độ trở ngại [3] là đại lượng xác định bằng tỉ
số giữa phần tử hỏng xảy ra trong một đơn vị thời gian tại thời điểm khảo sát và
số phần tử còn làm việc tốt trong khoảng thời gian đó, (t) là một hàm theo thời
gian
Xét bài toán: giả sử phần tử làm việc không hỏng tới thời điểm t, hãy tìm
xác suất không hỏng trong khoảng làm việc ∆t tiếp theo Ký hiệu P(t, t+∆t) là
Hình 1.2: Biểu diễn độ tin cậy của phần tử
Trang 17xác suất cần tìm Gọi sự kiện không hỏng trước thời điểm t là A, sự kiện không hỏng trong khoảng ∆t tiếp theo là B, khi đó xác suất cần tìm là xác suất có điều kiện:
𝑃(t, t + ∆t) = 𝑃 𝐵 𝐴 = 𝑃(𝐴 ∩ 𝐵)
𝑃(t, t + ∆t)𝑃(𝑡) (1.8) Biến đổi công thức ta có mối quan hệ giữa (t) và P(t):
Từ (1.3) và (1.5) ta có:
𝑓 𝑡 = 𝑄′ 𝑡 = 1 − 𝑃 𝑡 ′ = −𝑃′ 𝑡 = −𝑑𝑃 𝑡
𝑑𝑡Thay vào (1.9) ta có:
𝜆 𝑡 = − 𝑑𝑃 𝑡
𝑃(𝑡)𝑑𝑡
⟹ − 𝜆 𝑡 𝑑𝑡 =
𝑡 0
𝑑𝑃 𝑡
𝑃 𝑡 𝑡
0
= 𝑙𝑛𝑃 𝑡 |0𝑡 = 𝑙𝑛𝑃 𝑡 − 𝑙𝑛𝑃 0 = 𝑙𝑛𝑃(𝑡)
Do P(0) = 1 nên:
𝑃 𝑡 = 𝑒− ∫ 𝜆 𝑡 𝑑𝑡0𝑡 1.10 Công thức (1.10) cho phép tính được độ tin cậy của phần tử không phục hồi khi đã biết cường độ hỏng hóc (t), cường độ hỏng hóc (t) được xác định nhờ phương pháp thống kê quá trình hỏng hóc trong quá khứcủa phần tử
Trong các hệ thống hiện giờ thường sử dụng điều kiện đầu: (t) = = hằng
số (λ tương đối nhỏ), thực hiện được nhờ bảo quản định kỳ Khi đó cường độ hỏng hóc là giá trị trung bình số lần sự cố xảy ra trong một đơn vị thời gian Do đó:
𝑃 𝑡 = 𝑒−t; 𝑄 𝑡 = 1 − 𝑒−t; 𝑓 𝑡 = 𝑒−t
Trang 18Theo công thức (1.9) có thể xác định
được cường độ hỏng 𝜆 𝑡 khi cho trước mật độ
phân phối f(t).Dựa trên số liệu thống kê quan hệ
của cường độ hỏng hóc (t) theo thời gian thì
cường độ hỏng hóc (t) có dạng đường cong và
được chia làm ba giai đoạn [8, 10, 17]:
Giai đoạn 1: Mô tả thời kỳ “chạy thử”, do
những nguyên nhân công nghệ chế tạo, lắp ráp,
vận chuyển hỏng hóc xảy ra nhiều ngay sau khi
bước vào hoạt động Giá trị ở giai đoạn này thời
gian kéo dài ít, hư hỏng giảm dần cho đến cuối
thời kỳ chạy rà (chạy roda) và nhờ chế tạo,
nghiệm thu có chất lượng nên giá trị cường độ
hỏng hóc (t) ở giai đoạn này có thể giảm
nhiều
Giai đoạn 2: Tình trạng làm việc của
phần tử sau thời gian chạy thử là tốt nhất Trong
một thời gian dài nếu bảo dưỡng đúng kỹ thuật,
cường độ hỏng sẽ ở mức thấp nhất và giữ không đổi Giai đoạn này được gọi là thời kỳ làm việc ổn định
Giai đoạn 3: Số lượng các phần tử hưhỏng tăng dần theo thời gian do
những nguyên nhân như sự ma sát, vật liệu bị lão hóa, phần tử bị ăn mòn, đây
gọi là giai đoạn già cỗi của phần tử theo thời gian, cường độ hỏng hóc (t) tăng dần, đó là điều tất yếu xảy ra sự cố khi t ∞
d Thời gian hoạt động an toàn trung bình
Thời gian hoạt động an toàn trung bình [10, 12] TLV hay còn được gọi là
thời gian trung bình đến lúc hư hỏng (MTTF: Mean Time To Failure) là thời
gian mà phần tử đảm bảo hoạt động tốt
Thời gian hoạt động được định nghĩa là giá trị trung bình của thời gian vận
hành an toàn dựa trên số liệu thống kê của nhiều phần tử cùng loại, nghĩa là
TLVlà kỳ vọng toán hay còn gọi là giá trị trung bình của biến ngẫu nhiên và
Trang 19Sử dụng phương pháp tính tích phân từng phần ta có:
T𝐿𝑉=Eτ= -t P t ∞
0 + P t dt ∞
0
= P t dt
∞
0Với (t) = hằng số, thì 𝑃 𝑡 = 𝑒−t (phân bố hàm mũ)
kê của kỳ vọng thời gian làm việc trung bình là:
𝑡 = 1
𝑛 𝑡1 + 𝑡2 + ⋯ + 𝑡𝑛 = 1
𝑛 𝑡𝑖𝑛
hư hỏng, rồi lại trở lại hoạt động tiếp trong khoảng T2,… thời gian ngừng máy k; k =1, 2, được xác định bởi thời gian từ khi phát hiện phần tử hư hỏng phải ngừng hoạt động gồm thời gian chờ đợi sửa chữa và thời gian sửa chữa Thời gian dừng hệ thống để khắc phục gọi là thời gian phục hồi
Giả thiết trên đây là sau thời gian phục hồi khả năng làm việc của phần tử được khôi phục hoàn toàn nên các đại lượng T1, T2, … độc lập với nhau và có cùng phân phối Thời gian phục hồi 1, 2,…, cũng được coi như các đại lượng ngẫu nhiên độc lập có cùng phân phối
a Sửa chữa sự cố lý tưởng, có thời gian phục hồi = 0
Hình 1.6 Các khoảng làm việc và khoảng phục hồi
t
Trang 20Trong thực tế, các phần tử hỏng được thay thế rất nhanh bằng phần tử mới, phần tử được xem như luôn ở trong trạng thái tốt Đại lượng đặc trưng cho hỏng hóc của loại phần tử này là: thông số của dòng hỏng hóc (t):
𝜔 𝑡 = lim
Δ𝑡→0
1
∆𝑡𝑃 𝑡 (hỏng xảy ra trong khoảng t, t + ∆t)
So với định nghĩa (t), ở đây không đòi hỏi điều kiện phần tử phải làm việc tốt từ đầu cho đến t, mà chỉ cần thời điểm t nó đang làm việc, điều kiện này luôn đúng vì phần tử luôn làm việc, khi hỏng nó được phục hồi tức thời
Tương tự như (t), đại lượng ω(t).∆t là xác suất để hỏng hóc xảy ra trongkhoảng (t, t + ∆t) Với luật phân bố mũ, thông sốdòng hỏng hóc ω(t) là hằng số và bằng cường độ hỏnghóc của phần tử: ω(t) = [1] nên cường độ hỏng hóc và thông số dòng hỏng hóc thường được hiểu là một
b Sửa chữa sự cố thực tế, có thời gian phục hồi
Nếu khởi đầu phần tử ở trạng thái làm việc,
thì sau thời gian làm việc TLV, phần tử phần tử
bị hỏng và chuyển sang trạng thái hỏng phải sửa
chữa Sau thời gian sửa chữa xong τ, phần tử trở lại
trạng thái làm việc
- Xác suất phần tử ở trạng thái làm việc ở thời
điểm t (ở mỗi thời điểm phần tử có thể ở một trong hai trạng thái: làm việc hoặc hỏng hóc) gọilà xác suất trạng thái làm việc PLV(t)
Trang 21Theo lý thuyết xác suất, áp dụng cho cường độ chuyển trạng thái và thông số dòng hỏng hóc biến đổi công thức ta được:
c Thời gian trung bình sửa chữa sự cố s :
Đối với các phần tử phục hồi thuật ngữ MTBF (Mean Time Between Failure) được dùng thay thế cho MTTF (Mean Time To Failure) [10]
s là kỳ vọng toán của 1, 2, 3 … là thời gian trung bình sửa chữa sự cố - MTTR (Mean Time To Repair)
𝑠 = 𝐸𝜏 = 1 + 2 + ⋯ + n
n (1.16) Xét xác suất của s cũng tuân theo luật phân bố mũ, khi đó tương tự đối với xác suất hoạt động an toàn 𝑃 𝑡 = 𝑒−t của phần tử, có thể biểu thị xác suất ở trong khoảng thời gian t phần tử đang ở trạng thái hỏng hóc – nghĩa là chưa sửa xong.Xác suất phần tử ở trạng thái hỏng có giá trị là:
𝐻 𝑡 = 𝑒−μt 1.17
Trong đó: = 1/s là cường độ phục hồi hỏng hóc (1/giờ)
Xác suất để sửa chữa kết thúc trong khoảng thời gian t, cũng chính là hàm phân bố xác suất của thời gian s là:
𝐺 𝑡 = 1 − 𝑒−μt 1.18 Thời gian trung bình sửa chữa sự cố là:
T là kỳ vọng toán của T1, T2, T3, , Tn Vì thời gian trung bình giữa hai hư hỏng liên tiếp có một lần sửa chữa ngay nên [8]:
MTBF = MTTR + MTTF T = s + THDVới giả thiết T tuân theo luật phân bố mũ, giống như ở trên đã xét ta có:
𝑇 = 𝐸 T = 1
(1.20)
d Khả năng sẵn sàng hoạt động A (Availability)
Trang 22Hệ số sẵn sàng A [4, 6] là phần lượng thời gian hoạt động trên toàn bộ thời gian khảo sát của phần tử:
e Hàm tin cậy của phần tử R(t)
Độ tin cậy [3] là xác suất mà thiết bị đảm bảo hoạt động không hư hỏng trong thời gian t Vậy R(t) là xác suất của giao hai sự kiện:
- Làm việc tốt tại t = 0
- Tin cậy trong khoảng 0 đến t
Giả thiết hai sự kiện này độc lập với nhau, ta có:
Cấu trúc của một hệ thống dù phức tạp đến đâu thì cũng chỉ quy về 2 dạng
là cấu trúc nối tiếp và cấu trúc song song[6].Phương pháp tính độ tin cậy của hệ thống qua cấu trúc nối tiếp và song song hay còn được biết đến với tên gọi khác là: phương pháp tính độ tin cậy của hệ thống không dự phòng và hệ thống có dự phòng[3]
Phương pháp đánh giá độ tin cậy của hệ thống qua cấu trúc là xây dựng mối quan hệ trực tiếp giữa độ tin cậy của hệ thống với độ tin cậy của các phần tử
đã biết Sơ đồ khối độ tin cậy (Reliability Block Diagrams - RBD) của hệ thống được xây dựng trên cơ sở phân tích ảnh hưởng của hỏng hóc phần tử đến hỏng hóc của hệ thống vì vậy sơ đồ độ tin cậy thường khác với sơ đồ vật lý
Sơ đồ khối độ tin cậy [21] có thể được xem xét một cách độc lập bởi các thành phần của hệ thống có thể được ước tính độ tin cậy và khả năng sẵn sàng
Trang 23(hoặc không) Việc xây dựng sơ đồ khối độ tin cậy có thể khó khăn đối với hệ thống lớn và phức tạp
Sơ đồ khối độ tin cậy bao gồm:
- Các nút: nút nguồn, nút tải và các nút trung gian
- Các nhánh: Được vẽ bằng các khối hình chữ nhật mô tả trạng thái tốt của phần tử Phần tử bị hỏng tương ứng với việc xóa khối của phần tử đó ra khỏi sơ
đồ
Nhánh và nút tạo thành mạng lưới nối liền nút phát và nút tải của sơ đồ Có thể có nhiều đường nối từ nút phát đến nút tải, mỗi đường gồm nhiều nhánh nối tiếp, vì vậy số đường đi từ nút phát đến nút tải là rất lớn đối với các hệ thống phức tạp
Theo sơ đồ mô tả:
- Trạng thái tốt của hệ thống là trạng thái trong đó có ít nhất một đường có thể đi từ nút phát đến nút tải
- Trạng thái hỏng của hệ thống khi nút phát bị tách rời với nút tải do hỏng hóc của phần tử trung gian
1.3.2Hệ thống các phần tử nối tiếp
Hệ thống các phần tử nối tiếp [3, 5] (hệ thống không dự phòng) là hệ thống trong đó sự hỏng của toàn hệ thống xảy ra khi và chỉ khi một phần tử bị hỏng
Cấu trúc đơn giản nhất là cấu trúc không có dự phòng của một hệ thống được tạo nên bởi n phần tử, mỗi trở ngại của một phần tử riêng biệt đều dẫn đến trở ngại của cả hệ thống [16]
Xét sơ đồ tin cậy của hệ thống gồm n phần tử nối tiếp như hình vẽ:
Trong đó N là nút nguồn (nút phát) và T là nút tải, trở ngại của các phần tử
là độc lập với nhau Giả sử đã biết cường độ hỏng hóc của n phần tử lần lượt là
1, 2, 3 … n và thời gian phục hồi trung bình i của các phần tử Vì các phần
tử nối tiếp trong sơ đồ tin cậy nên hệ thống chỉ hoạt động an toàn khi tất cả n phần tử đều hoạt động tốt, giả thiết các phần tử độc lập nhau
Hình 1.8: Sơ đồ của hệ các phần tử nối tiếp
Trang 24Xét độ tin cậy của hệ thống nói tiếp trong hai trường hợp: các phần tử không phục hồi và các phần tử phục hồi
a Hệ nối tiếp các phần tử không phục hồi
Hệ thống các phần tử không phục hồi (sửa chữa hoặc thay thế) nên sự hoạt động của hệ chỉ tới lần hỏng đầu tiên của phần tử [3, 6]
Pi(t) là xác suất không hỏng hay hàm tin cậy của phần tử thứ i, ở thời điểm xác định t và Ps(t) của hệ thống [3, 14, 17]
(1.27) Cường độ hỏng của hệ thống 𝜆𝑠(𝑡) bằng tổng các cường độ hỏng của phần
Các phần tử của hệ thống có độ tin cậy tuân theo quy luật hàm số mũ và gọi cường độ hỏng của các phần tử là λi; i = 1, , n Độ tin cậy của hệ thống tuân theo quy luật hàm số mũ [7]:
với 𝜆𝑠 = 𝑛𝑖=1𝜆𝑖
Trang 25Từ công thức [1.29] cho ta thấy tuổi thọ của các phần tử có phân phối mũ thì tuổi thọ của hệ cũng có phân phối mũ
Thời gian hoạt động an toàn trung bình của hệ thống là:
b Hệ nối tiếp các phần tử phục hồi
Độ tin cậy của hệ thống [3] còn phụ thuộc vào việc các phần tử chưa hỏng
có làm việc hay không trong lúc tiến hành phục hồi các phần tử bị hỏng.Giả thiết thời gian phục hồi là hữu hạn, nếu mỗi phần tử có phân phối thời gian làm việc đến khi hỏng khác nhau và phân phối thời gian phục hồi khác nhau thì thời gian làm việc của hệ đến lần hỏng đầu tiên khác với thời gian làm việc giữa hai lần hỏng
Giả thiết thời gian phục hồi (thời gian sửa chữa sự cố) của phần tử có phân
bố mũ, khi đó cường độ phục hồi i = 1/i, từ đây có thể xác định được thời gian phục hồi trung bình của hệ thống là:
𝜏𝑠 = 𝜆𝑖𝜏𝑖
𝑛 𝑖=1
Khi t -> ∞ thì công thức tính hệ số sẵn sàng của hệ thống là:
𝐴𝑆 = 𝑇𝑆
𝑇𝑆 + 𝜏𝑆 =
𝜇
𝜆𝑠 + 𝜇 (1.32) Hàm tin cậy của hệ thống sẽ là:
𝑃 𝑡 = 𝐴𝑆 𝑒−𝜆𝑠 𝑡 (1.33) Xác suất trạng thái hỏng của hệ thống:
𝑄𝑆 𝑡 = 1 − 𝑃𝑆 𝑡 = 1 − 𝑃1 𝑃2… 𝑃𝑛 (1.34)
1.3.3 Hệ thống các phần tử song song
Trong hệ thống các phần tử song song (hệ thống có dự phòng) [3, 17,18],
sự cố của một phần tử nào đó không nhất định là sẽ dẫn đến sự cố cho toàn hệ thống, hệ thống sẽ gặp sự cố khi tất cả các phần tử gặp sự cố Hình 1.9 thể hiện
sơ đồ các phần tử song song đơn giản nhất
Hình 1.9: Sơ đồ hệ các phần tử song song
1
2
n
Trang 26Xác suất sự cố Qs(t) của toàn hệ thống, hệ thống có sự cố khi toàn bộ n phần tử bị sự cố [15, 20]:
Thời gian hoạt động an toàn trung bình của hệ thống là:
𝑇𝑠 = 1
𝜆𝑠 1.38
1.4 Phương pháp đánh giá độ tin cậy của hệ thống qua cấu trúc hệ thống
Trên thực tế các hệ thống ngày càng phức tạp nên thực hiện việc tính toán
độ tin cậy cho các hệ thống bằng phương pháp thủ công tốn rất nhiều thời gian, công sức cũng như cho kết quả có độ chính xác không cao Vì thế, việc tạo ra các phần mềm tính toán chỉ số độ tin cậy cho các hệ thống hỗ trợ con người là việc hết sức quan trọng
Để xây dựng một phần mềm tính các chỉ số độ tin cậy của hệ thống có cấu trúc phức tạp thì trải qua rất nhiều giai đoạn và quy trình, tuy nhiên các giai đoạn đó đều có những bước và phương pháp cơ bản để xây dựng
Trang 271.4.1 Phương pháp đồ thị giải tích
Sơ đồđộtincậy [20]của hệ thốngđược xây dựng trên cơ sở phântíchảnh hưởng của hư hỏng phần tử đến hư hỏng hệ thống.Sơ đồ độ tincậy bao gồm các nút (nguồn, tải,trung gian) và các nhánh Nút và nhánh tạo thành mạng lưới nối nút nguồn và nút tải của sơ đồ Trạng thái hoạt động của hệ thống là trạng thái cóít nhất một đường nối từ nút nguồn đến nút tải Khi nút nguồn và nút tải bị tách rời do hỏng các phần tử thì hệ thống ở trạng thái hỏng
Để xây dựng quy trình giải được bài toán tính độ tin cậy [21] thì chúng ta phải đi giải quyết bao gồm: bài toán tìm đường đi trong đồ thị hệ thống, bài toán tối thiểu các toán tử logic và bài toán xác định trực giao hóa các toán tử logic Tính toán độ tin cậy của hệ thống có cấu trúc phức tạp gồm nhiều giai đoạn nhưng đều có chung các bước cơ bản như sau:
Bước 1: Xây dựng sơ đồ cấu trúc logic: dùng các thuật toán chuyển đổi sơ
đồ các trúc logic thành sơ đồ khối nhằm thể hiện rõ từng bước thực hiện, các thành phần cũng như các mối quan hệ giữa các thành phần trong hệ thống
Bước 2: Dùng các thuật tìm kiếm tất cả các đường đi thành công trong hệ
thống và đường đi thành công trong hệ thống là tất cả các đường đi không lặp có thể nối đỉnh đầu và đỉnh cuối của hệ thống đang xét
Bước 3: Ghi lại tất cả các đường đi thành công trong hệ thống dưới dạng
các toán tử logic cơ bản và dùng các hằng đẳng thức Boole để tối thiểu hóa các toán tử logic đó
Bước 4: Sử dụng phương pháp trực giao hóa các phần tử logic theo công
thức Porestky để chuyển đổi mô hình logic sang đại số Sau đó tính toán xác suất
độ tin cậy của hệ thống, thời gian trung bình giữa các lần hỏng và các chỉ số khác của hệ thống
1.4.2 Bài toán tìm đường đi trong đồ thị hệ thống
1.4.2.1 Thuật toán chuyển đổi sơ đồ cấu trúc logic thành sơ đồ khối
Sơ đồ cấu trúc logic [20] là biểu diễn cấu trúc logic của hệ thống bằng sơ
đồ theo các quy ước về cách mã hoá và biểu diễn mối quan hệ giữa các thành phần dưới dạng các ký hiệu
Xây dựng sơ đồ cấu trúc logic của hệ thống cho hình ảnh trực quan về cấu trúc hệthống và sẽ làđiều kiện tiên đề để có thể phân tích và đánh giá độ tin cậy của hệ thống
a Các quy tắc biến đổi cấu trúc logic thành bảng chứa các giá trị tương đương:
Trang 28- Các phần tử của một cấu trúc logic (hay còn gọi là các đỉnh), các nút trung gian có một nút khởi đầu và kết thúc (đầu vào và đầu ra)
- Mỗi phần tử của cấu trúc logic được thay thế bởi một giá trị hợp lý Mỗi phần tử đại diện cho một đỉnh
1.4.2.2 Thuật toán chuyển đổi sơ đồ cấu trúc logic sang đồ thị liên kết:
Theo bài toán về lý thuyết đồ thị thì ta có các định nghĩa về phân loại các đỉnh và các cạnh của đồ thị liên kết: định nghĩa về nút nguồn, nút đích, các cạnh, các cung, đường đi đầy đủ, đơn đồ thị,… Dựa trên lý thuyết đồ thị về các đỉnh
và cạnh đồ thị thì chúng ta xây dựng thuật toán chuyển đổi từ sơ đồ cấu trúc logic sang đồ thị liên kết[1] gồm các bước sau:
Bước 1:Nguồn của sơ đồ cấu trúc logic được thay thể bằng các đỉnh của đồ
thị, gọi là đỉnh gốc Các cung bắt đầu từ đỉnh nguồn của sơ đồ cấu trúc logic được thay thế bằng các cung của đồ thị và xuất phát từ đỉnh gốc
Bước 2: Các nút đỉnh được thay thế bằng các đỉnh của sơ đồ cấu trúc logic Bước 3:Các cung trong sơ đồ cấu trúc logic được thể hiện bằng các cung
trong đồ thị với các đỉnh tương ứng
Bước 4:Tất cả các đỉnh khác (đỉnh khuyên - bắt đầu và kết thúc tại chính nó)
được thể hiện bằng các cung trong đồ thị
Bước 5:Các cung và các cạnh của đồ thị được thay thế bởi các cung của sơ
đồ cấu trúc logic
Đồ thị liên kết nói chung (có ít nhất một cạnh) là có hướng nếu các cặp (i,j) được sắp thứ tự và mỗi cặp (i,j) là một cung Đồ thị là vô hướng nếu các cặp (i,j) không sắp thứ tự và mỗi cặp (i,j) gọi là một cạnh
1.4.2.3Thuật toán tìm tất cả các đường đi trong ma trận liên kết:
a Trường hợp đồ thị cần biểu diễn là vô hướng [1]:
Trang 29Ý tưởng thuật toán: Đồ thị có thể được biểu diễn bằng ma trận kề vuông cấp n,
với n là số đỉnh của đồ thị Phần tử δij ở hàng i cột j (i,j=0,1,2, , n) được xác định như sau:
- δij =1 nếu cặp đỉnh xi và xj có cạnh nối với nhau
- δij =0 nếu cặp đỉnh xi và xj không có cạnh nào nối với nhau
Ma trận của đồ thị vô hướng là ma trận đối xứng, tức là các phần tử đối xứng qua đường chéo chính sẽ tương ứng bằng nhau
b Trường hợp đồ thị cần biểu diễn là có hướng [1]:
Ý tưởng thuật toán: Đồ thị có thể được biểu diễn bằng ma trận kề vuông cấp n,
với n là số đỉnh của đồ thị Phần tử δij ở hàng i cột j (i,j=0,1,2, , n) được xác định như sau:
- δij =1 nếu cặp đỉnh (xi, xj ) có cung
- δij =0 nếu cặp đỉnh (xi, xj ) không có cung nào
Ma trận của đồ thị có hướng không phải là ma trận đối xứng và ma trận biểu diễn đồ thị đơn là ma trận logic
c Thuật toán tìm tất cả các đường đi trong ma trậnkề:
Để tìm tất cả các đường đi trong ma trận kề dựa trên thao tác nhân ma trận liên kết một cột tương ứng của ma trận đó được thể hiện như sau:
Bk = A B*k- 1(*)
Trong đó: - Bk cột ma trận kết quả của phép nhân (*)
- B*k- 1 là kết quả của phép chuyển đổi B k- 1 ; Bài toán tìm tất cả các đường đi trong ma trận kề trở thành bài toán cho ma trận A và ma trận cột B1 hãy tìm tất cả các đường đi có thể có từ nguồn (điểm phát) tới đích (điểm nhận)
Thuật toán:
- Bước 1: Kiểm tra ma trận cột B1 có chứa cung bắt đầu từ đỉnh nguồn hay không Nếu cung tồn tại thì ghi nhận đường đi đó và thay thế cung đó bởi giá trị 0 Sự thay đổi này sẽ cho ta kết quả là B*1 ;
- Bước 2: Xét với k=2
- Bước 3: Thực hiện phép tính (*) để tìm các giá trị Bk tương ứng
- Bước 4: Kiểm tra Bk bắt đầu từ nguồn, nếu đường đi tồn tại thì ghi nhớ và thay thế cung đường đi đó bởi giá trị 0 Nếu đường đi xuất hiện trong Bk
là đường đi đầy đủ thì thay thế Bk =0 Sự thay đổi này cho ta kết quả là
B*k
Trang 30- Bước 5: Kiểm tra B*k Nếu B*k =0 thì thực hiện tiếp bước 7 Nếu B*k ≠0 thì thực hiện tiếp bước 6
- Bước 6: Kiểm tra điều kiện k ≤ n-1 Nếu thoả mãn điều kiện k < n-1 thì
tăng k lên 1 và thực hiện tiếp bước 3 Nếu điều kiện k = n-1thì thực hiện tiếp bước 7
- Bước 7: Kiểm tra lại danh sách đường đi và kết quả nhận được là danh
sách các đường đi có thể có từ đỉnh đầu đến đỉnh cuối
d Ví dụ mô tả:
Xét ví dụ sau: cho đồ thị có hướng và đồ thị vô hướng
Đồ thị như hình 1.10a và 1.10b được chuyển thành dạng ma trận liên kết tương ứng là A1 và A2 trong đó các phần tử là 0 hoặc (i,j):
𝐴1 =
0 (2,1) (3,1) (4,1)
(1,2) 0 (3,2) (4,2)
(1,3) (2,3) 0 (4,3)
(1,4) (2,4) (3,4) 0
𝐴2 =
0 0 0 0
(1,2) 0 0 0
(1,3) (2,3) 0 0
(1,4) (2,4) (3,4) 0
Để thuận tiện và đơn giản hóa cách viết các phần tử trong ma trận thì ta bỏ dấu ngoặc đơn và dấu phẩy giữa hai đỉnh kết nối Ví dụ: (1,2) = 12,…
Áp dụng thuật toán vừa trình bày ở trên mục 1.4.1.4 để áp dụng với ma trận A1 để tìm tất các các đường đi trong ma trận từ đỉnh nguồn là đỉnh 1 và đỉnh đích là đỉnh 4:
42
13 23 0 43
14 24 34 0 ; 𝐵1 =
14 24 34 0 ; 𝐵1∗ =
0 24 34 0
Các bước tiếp theo của thuật toán được thực hiện như sau:
12 ∗ 23 ∗ 34 v 13 ∗ 32 ∗ 24
23 ∗ 32 ∗ 24
32 ∗ 23 ∗ 34 0
;𝐵3∗ = 0
Theo thuật toán thì ở bước 6 khi gặp điều kiện k = n -1 thì dừng lại và chuyển sang bước 7 tức là liệt kê tất các đường đi đã tìm được Với bài toán này ta đã tính được các ma trận B1, B2, B3 và danh sách tất cả các đường đi từ đỉnh 1
Hình 1.10a : Đồ thị vô hướng Hình 1.10b : Đồ thị có hướng
Trang 31(đỉnh nguồn) đến đỉnh 4 (đỉnh đích)là: 14, 12*24, 13*34, 12*23*34, 13*32*24
Hệ thống có cấu trúc phức tạp được mô tả thông qua đồ thị có tất cả các đường
đi thành công f(1,4): 14 v 124 v 134 v1234 v 1324
1.4.2.4Thuật toán tìm tất cả đường đi của ma trận liên kết theo lý thuyết đồ thị
Thuật toán tìm tất cả các đường đi trong ma trận kề chỉ thích hợpvới những
đồ thị có kích thước nhỏ Đối với các đồ thị có kích thước lớn thì việc thực hiện bước 4 và 5 là rất khó khăn, việc tính toán dài và dễ nhầm lẫn vì các phần tử của
ma trận lúc này là các chuỗi dài Chính vì sự khó khăn đó nên ta sẽ xây dựng thuật toán tự động tìm kiếm tất cả các đường đi giữa 2 đỉnh đồ thị
Trong bài toán lý thuyết đồ thị [1] thì chúng ta biết đến bài toán tìm đường
đi ngắn nhất,bài toán đường đi tối thiểu giữa hai đỉnh của đồ thị, bài toán tìm đường đi qua tất cả các đỉnh của đồ thị nhưng bài toán ở đây là tìm tất cả danh sách các đường đi từ đỉnh đầu đến đỉnh cuối của đồ thị
a Ý tưởng thuật toán:Thuật toán sử dụng phương pháp tìm kiếm theo chiều sâu
Tư tưởng của tìm kiếm theo chiều sâu là: Từ đỉnh nguồn (đỉnh đầu) của đồ thị ta
di chuyển đến một đỉnh khác (một đỉnh bất kỳ mà có thể đi từ đỉnh đầu) Từ đỉnh này ta tiếp tục đi đến khác đỉnh khác Nếu không thể đi tiếp được nữa thì quay lại đỉnh trước đó và đi đến đỉnh khác Cứ như vậy cho đến khi đến đỉnh cuối của đồ thị
b Ví dụ mô tả:
Xét lại ví dụ trên, cho đồ thị vô hướng:
Áp dụng thuật toán tìm kiếm theo chiều sâu,
ma trận A1 sẽ được viết lại như sau:
𝐴1 =
0111
1011
1101
1110
Để tìm tất cả các đường dẫn từ đỉnh 1 (nguồn) đến đỉnh 4 (đích) theo thuật toán 1.4.1.5, chúng ta có đường đi đầu tiên từ đỉnh 1 2, đỉnh 2 không phải là đỉnh đích nên chuyển tiếp sang đỉnh 3, theo đường: 123; đỉnh 3 không phải
là đỉnh đích nên đi tiếp sang đỉnh 4, đỉnh 4 là đỉnh đích nên ta có đường đi:
1234 Ghi nhớ lại đường đi này và quay trở lại đỉnh 3, nhưng không có
đường đi nào từ đỉnh 3 đến đỉnh 4 ngoài con đường đã tìm được nên từ đỉnh 3 quay lại đỉnh 2 hoặc đỉnh 1
Trang 32- Nếu quay lại đỉnh 2 thì từ đỉnh 2 ta có thể đi tiếp đến đỉnh 4, vậy ta có
đường đi:1→2→4
- Nếu quay lại đỉnh 1 thì ta có thể đi tiếp đến đỉnh 4, vậy ta có đường
đi:1→3→4
Tương tự như vậy ta cũng tìm được các đường đi: 1 3 2 4 và 1 4
Hệ thống phức tạp được mô tả bằng phương pháp đồ thị, áp dụng thuật toán ở
- Thuật toán tìm tất cả các đường đi trong ma trận kề chỉ thích hợp với những đồ thị có kích thước nhỏ, đối với các đồ thị có kích thước lớn thì việc thực hiện các là khó khăn hơn so với thuật toán tìm tất cả đường đi của ma trận liên kết theo lý thuyết đồ thị
1.4.3 Bài toán tối thiểu phần tử logic
Các phương pháp cơbản để tối thiểu hoá các toán tử logic:
Việc tối thiểu hoá các toán tử logic thường dựa trên các hằng đẳng thức Boole hay còn được gọi là các luật trong đại số Boole Một đại số Boole [1] là một cấu trúc đại số gồm một tập hợp S chứa ít nhất là 2 phần tử, được ký hiệu là
0 và 1, cùng với hai phép toán 2 ngôi “+” (tuyển - ˅) và “.” (hội - ˄) và một phép toán 1 ngôi “¯” (phủ định) thỏa mãn các tính chất: kết hợp, giao hoán, lũy đẳng, luật phân phối, luật đồng nhất, luật bù kép, luật De Morgan,…
việctốithiểu hóa hàm Boole tức là tìm dạng biểu thức Boole đơn giản nhất của hàm Boole đó Giới thiệu 3 phương pháp để tối thiểu hoá hàm Boole:
- Phương pháp biến đổi đại số;
- Phương pháp bảng Karnaugh;
- Phương pháp Quine – Mc.Cluskey
a Phương pháp biến đổi đại số
Trang 33Phương pháp biến đổi đại số [1] này dựa trên các luật, các hằng đẳng thức của đại số boole để tối thiểu hoá các các biến và các phép toán trên biểu thức Boole
Ví dụ: Tối ưu hoá hàm Boole: f(x,y) = 𝑥 ˄𝑦˅𝑥˄𝑦˅𝑥˄𝑦
f(x,y) = 𝑥 ˄𝑦˅𝑥˄𝑦˄𝑥˄𝑦 = 𝑥 ˅𝑥 ˄𝑦˅𝑥˄(𝑦˄𝑦 ) = 1˄𝑦˅𝑥˄1 = 𝑦˅𝑥
Ở đây ta đã sử dụng luật tồn tại của phần tử bù để tối thiểu hàm f(x,y)
b Phương pháp bảng Karnaugh
Phương pháp bảng Karnaugh [1] dựa trên việc tổ hợp các hội sơ cấp có thể
tổ hợp được để loại bỏ các hội sơ cấp của hàm Boole không cần thiết Phương pháp này dựa trên một công trình trước đó của E.W Veitch và cho ta một phương pháp trực quan để rút gọn các khai triển tổng và tích Tuy nhiên, phương pháp dùng bảng Karnaugh cũng cần lưu ý:
- Phương pháp tối thiểu hoá hàm boole sử dụng bảng Karnaugh chỉ tổ hợp được khi số các hội sơ cấp sẽ tổ hợp là 2k và đối xứng với nhau qua các trục của bảng Mục tiêu là cần nhận dạng các khối 2k ô biểu diễn các hội sơ cấp
có thể tổ hợp lại được mà trước hết là nhận dạng khối lớn nhất
- Nếu hàm cần tối thiểu hoá có n bit và số các hội sơ cấp có thể tổ hợp lại được là 2k thì sau khi tổ hợp sẽ có n-k biến thuộc tổ hợp
c Phương pháp Quine – Mc.Cluskey
Phương pháp dùng bảng Karnaugh sẽ gặp khó khăn khi gặp số biến lớn và việc dùng bảng Karnaugh dựa trên việc rà soát trực quan để nhận dạng các số hạng cần nhóm lại nên sẽ khó khăn khi triển khai một thủ tục rút gọn những khai triển tổng các tích một cách có thể cơ khí hóa được
Phương pháp Quine-McCluskey[1] có thể khai triển một thủ tục như vậy, nó
có thể được dùng cho các hàm Boole có số biến bất kỳ Về cơ bản, phương pháp Quine-McCluskey có hai phần:
- Phần đầu là tìm các số hạng là ứng viên để đưa vào khai triển cực tiểu như một tổng các tích Boole mà ta gọi là các nguyên nhân nguyên tố
- Phần thứ hai là xác định xem trong số các ứng viên đó, các số hạng nào là thực sự dùng được
1.4.4 Bài toán xác định trực giao hóa các toán tử logic
Bài toán trực giao hoáphần tử [20] là giai đoạn phức tạp nhất của quá trình tính toán độ tin cậy của hệ thống.Vị từ 1 ngôi (ký hiệu là f(x)) được gọi là trực
Trang 34giao nhau khi và chỉ khi kết quả của chúng bằng 0 Tuy nhiên nếu vị từ mà ta xét không phải là vị từ 1 ngôi mà là vị từ n ngôi (ký hiệu là f(x1, x2, ., xn)) thì chúng được gọi là trực giao khi và chỉ khi các phần tử của chúng là trực giao và cho kết quả bằng 0.Phương pháp trực giao chính là phương pháp biến đổi logic sao cho kết quả của các toán tử đều bằng 0
1.4.4.1 Các phương pháp giảm thiểu các hàm đại số logic đối với các hình thức
trực giao và trực giao không lặp
a) Thuật toán cắt giảm
Thuật toán cắt giảm [20] dựa trên việc triển khai các hàm logic cho kết quả
là các hàm logic đã trực giao, trực giao không lặp và trường hợp đặc biệt đó là dạng chuẩn tắc tuyển trực giao Thuật toán bao gồm các bước như sau:
1 Xét hàm f(xn) và thống kê số lần xuất hiện của mỗi biến xi (i=1,2, … n) dưới dạng sau:
4 Áp dụng các luật củađại số logic làm tối thiểu, đơn giản hoá các hàm
fi(0)vàfi(1) Kết quả có thể nhận được sẽlà một trong các trường hợp sau:
a Kết quả là hằng số: 0 hoặc 1
b Một hàm được đưa về dạng chuẩn tắc tuyển trực giao
c Không có biến nào bị lặp lại trong hàm logic
d Nếu có biến bị lặp lại trong hàm logic thì được loại bỏ bớtđi chỉ viếtmột lần
5 Nếu kết quả hàm đã có sự kết hợp của cả trường hợpa vàb thì việc chuyển hàm logic thành trực giao này là hoàn tất Nếu kết quả là trường hợpc thì tiếp tục
áp dụng các luật biến đổi logic để hoàn tất việc trực giao hàm logic Nếu kết quả
là trường hợpd thì tiếp tục quay trở lại bước 1, thực hiện các phép biến đổi tiếp tục fi(0) và fi(1)đểđưa về dạng trực giao kết quả nhận được không phải trường hợp
d Số lượng các thủ tụcchuyển đổi này sẽ dừng vì số lượng các biến là hữu hạn
sẽ dừng vì số biến là hữu hạn và bằng n
Kết luận: quá trình thực hiện thuật toán cắt giảm đối với các hình thức trực
giao là thường là tốnthời gian, số lượng cácký tự biểu thị và chức năng của số
Trang 35lượng biến n nhanh chóng tăng lên Tuy nhiên, so với thuật toán tìm kiếm đầy
đủ thì phương pháp này đòi hỏi ít thời gian hơn và kết quả thu được từ việc áp dụng các định luật biến đổi logic sau khi đơn giản hóa các công thức thì thường không bị thay đổi nữa
b) Thuật toán trực giao hoá theo công thức của Poretsky [21]:
Thuật toán trực giao hoá theo công thức của Poretsky gồm các bước sau:
1 Hàm logic được viết dưới dạng chuẩn tắc tuyển như sau:
4 Khai triển công thức ta được dạng trực giao không lặp của hàm ban đầu
Ta thấy rằng việc sử dụng thuật toán đưa hàm logic về dạng chuẩn tắc tuyển
đã trực giao này khá phức tạp trong việc triển khai các toán tử Số lượng các biến khi khai triển là khá dài Tuy nhiên đây chính là một cách để phát triển chương trình trực giao hoá của hàm logic trên máy tính
Thuật toán trực giao hoá theo công thức Poretsky có thể được sử dụng dưới hình thức sửa đổi một chút như sau:
1 Hàm logic được viết dưới dạng chuẩn tắc tuyển như sau:
c) Thuật toán cắtgiảmhàm đại số logic bằng cách đưa về dạng chuẩn tắc tuyển
Các hàm dạng chuẩn tắc tuyển hoàn toàn coi như một dạng chuẩn tắc tuyển
đã được trực giao hoá, vì vậy ta có thể sử dụng nó để cắt giảm các hàm logic Thuật toán gồm các bước sau đây:
Trang 361 Hàm dưới dạng chuẩn tắc tuyển
2 Tìm các phép hội sơ cấp xuất hiện trong dạng chuẩn tắc tuyển
3 Tìm tất cả các tập hợp được bao phủ bởi mỗi phép hội sơ cấp
4 Khai triển tất cả các tập hợp, ta sẽ được hàm ban đầu trong dạng chuẩn tắc tuyển hoàn toàn
Từ dạng chuẩn tắc tuyển hoàn toàn có thể dễ dàng tính đượccác hàm xác suất Tuy nhiên, nếu một hàm được viếtở dạng chuẩn tắc tuyển thì sẽ dài hơn khi viếtở dạngđã được trực giao nhưng các thuật toán mô tả việc triển khai một hàm logic về dạng chuẩn tắc tuyển hoàn toàn dễ dàng lập trình để giải quyết vấn đề bằng máy tính
1.4.4.2 Các quy tắc chuyển đổi hàm logic sang dạng xác suất trong dạng chuẩn
tắc tuyển
Bất kỳ một sự kiện phức tạp nào cũng có thể viết được dưới dạng hàm logic với các phép toán logic [1] Xác suất của hàm f(xi) luôn bằng 1, được ký hiệu là P[f(xi)]=1.Khi hàm logic đã được chuyển đổi về dạng chuẩn tắc tuyển trực giao thì ta có thể tính xác suất của hàm một cách đơn giản theo quy tắc sau:
1 Các ký hiệu phép cộng và nhân logic được thay thế bởi dấu các phép cộng
Trang 37- Độ tin cậy hay xác suất vận hành an toàn của hệ thống cấu trúc các phần
tử song song luôn cao hơn hệ thống cấu trúc các phần tử nối tiếp