TÊN ĐỀ TÀI: Sử dụng các mô hình Petri Net nâng cao để kiểm chứng một mạng cảm ứng không dây II.. Mô hình trên nhằm các mục đích sau: • thể hiện các thành phần của WSN và các tác vụ của
Giới thiệu
Tổng quan vấn đề
Mạng cảm ứng không dây (Wireless Sensor Network – viết tắt là WSN) [2] là một ứng dụng điển hình của mạng không dây vì khả năng ứng dụng của nó trong nhiều lĩnh vực của cuộc sống Mạng cảm ứng không dây bao gồm nhiều nút cảm biến (sensor nodes hay sensors) Các nút cảm biến là những thiết bị có bộ xử lý đơn giản, nhỏ gọn và có năng lượng hoạt động thấp Người ta hay triển khai mạng cảm ứng không dây ở những nơi có môi trường tự nhiên khắc nghiệt mà con người ít có khả năng tiếp cận thường xuyên như núi lửa, rừng rậm, các khu vực thường xảy ra động đất Các nút cảm biến sẽ được phân bố khắp vùng muốn khảo sát, thu thập hình ảnh, và truyền hình ảnh qua sóng wi-fi về trạm giám sát (base station) để giúp con người giám sát hoạt động trong tự nhiên [3].
Việc phát hiện và kiểm chứng các tính chất trên mạng cảm ứng không dây đang thu hút nhiều sự quan tâm nghiên cứu trong cộng đồng [2, 4–7] Trong nghiên cứu này chúng tôi tập trung vào vấn đề phát hiện tắc nghẽn trên mạng cảm ứng không dây [3, 5] Trong môi trường của mạng không dây, hệ thống các kết nối được thiết lập thông qua sóng wi-fi không ổn định so với các kết nối truyền thống của mạng có dây Vì vậy các gói tin đôi khi cần gửi đi gửi lại nhiều lần mới có thể tới đích Một hệ quả là số lượng gói tin trao đổi trên mạng sẽ rất lớn và dẫn đến tắc nghẽn [3]. Đã có nhiều hướng nghiên cứu được đề xuất cho bài toán phát hiện tắc nghẽn trên mạng cảm ứng không dây Hướng tiếp cận truyền thống đó là thực thi các
Chương 1 Giới thiệu 2 thuật toán phát hiện tắc nghẽn trên các chương trình giả lập [5] Hai giả lập đang được sử dụng phổ biến hiện nay là ns-2 [8] và OMNeT++ [9] Sự giả lập này có ưu điểm là cho ta thấy được một cách tổng quát tầm hoạt động, ưu và nhược điểm của một giao thức khi nó hoạt động trên mạng cũng như đưa ra được con số cảnh báo đe dọa sự hoạt động của giao thức Tuy nhiên, không phải tất cả các tình huống đều có thể giả lập Lý do là không thể mô phỏng được hết các thông tin đầu vào hay do khả năng xử lý hạn chế của các giả lập Một nhược điểm khác khi sử dụng giả lập là sự mô phỏng các tình huống bắt buộc phải được thực hiện dưới sự hỗ trợ của các khung chương trình (framework) của giả lập Chúng tôi nhận thấy rằng cứ vài năm, các giả lập này lại thay đổi sự hỗ trợ cho khung chương trình chính, mỗi lần như thế gần như người sử dụng phải bắt đầu mọi thứ lại từ đầu vì sự khác biệt về cấu trúc của các khung chương trình mặc dù sơ đồ mạng và tất cả các tham số đầu vào đều không đổi Điều này gây ảnh hưởng không nhỏ cho người dùng.
Với cách tiếp cận thứ hai, các kỹ thuật mô hình hoá hình thức cho thấy ngay hai lợi thế so với phương pháp giả lập:
• làm giảm sự phụ thuộc vào các khung chương trình giả lập bởi vì WSN được mô hình ở mức độ trừu tượng hoá cao hơn, chỉ bao gồm các cảm biến và kênh truyền Vì vậy, mô hình WSN luôn luôn là như nhau ở bất kỳ khung chương trình nào được sử dụng;
• kiểm chứng các thuộc tính bằng công thức luận lý với các kỹ thuật kiểm tra mô hình trong khi các bộ mô phỏng phải thực hiện việc kiểm chứng bằng lập trình Do đó phương pháp mô hình hoá có thể định nghĩa tất cả các kịch bản khả dĩ.
Với hiểu biết tốt nhất của chúng tôi, [7] là khung chương trình duy nhất hỗ trợ cả việc mô hình hoá và phát hiện tắc nghẽn trên WSNs bằng Petri nets Tuy nhiên, [7] sử dụng Place/Transition nets (P/T nets hoặc PNs) là dạng Petri nets cổ điển với hạn chế về sức mạnh mô hình, nên tồn tại một số nhược điểm sau Đầu tiên, các thông số của một cảm biến (hoặc kênh truyền) được thể hiện bằng các biến ẩn bên dưới công cụ phân tích (cụ thể là WSN-PN [7]) Thứ hai, ngữ nghĩa của các tác vụ trong WSN được thể hiện bằng cách sử dụng mã chương trình liên kết tới các transitions Những mã chương trình trên viết dưới dạng ngôn ngữ lập trình C#, vì vậy yêu cầu người mô hình phải hiểu biết cả ngôn ngữ Petri nets
Chương 1 Giới thiệu 3 lẫn C# Hơn nữa, người mô hình cũng gặp khó khăn trong việc ánh xạ các thành phần của mô hình PN với thành phần tương ứng trong các đoạn mã này Những nhược điểm trên thúc đẩy chúng tôi mô hình lại WSN sử dụng một loại Petri nets nâng cao khác là Coloured Petri nets (CPNs) [10] CPNs kết hợp Petri nets và ngôn ngữ lập trình là một kỹ thuật mô hình hoá giàu sức mạnh CPNs cũng đã được áp dụng rộng rãi trong việc mô hình hoá và phân tích các hệ thống phức tạp, đặc biệt là các hệ thống mạng [10–14] Nó cung cấp biểu diễn tham số cho phép chúng ta dễ dàng thể hiện và xử lý tất cả thông số của các thành phần trong WSN mà không cần sử dụng mã chương trình trên các transitions Vì vậy, trong nghiên cứu này tập trung vào việc sử dụng CPNs để mô hình hoá WSNs và phát hiện tắc nghẽn trên mô hình thu được Mô hình trên nhằm các mục đích sau:
• thể hiện các thành phần của WSN và các tác vụ của chúng;
• định nghĩa ngữ nghĩa chức năng của mô hình CPN;
• hỗ trợ một cách thức dễ dàng phát hiện tắc nghẽn.
Hơn thế nữa, mô hình đề xuất sử dụng khả năng mô hình hoá phân cấp của CPNs (Hierarchical CPNs – viết tắt là HCPNs) [10] HCPNs bao gồm nhiều cấp độ trừu tượng hoá, thể hiện qua các mô-đun con (sub-modules) Một mô hình có thể được chia làm các mô hình con (mô-đun con) nên người mô hình chỉ cần tập trung vào một số ít chi tiết ở một thời điểm Các mô-đun có thể được định nghĩa một lần và sử dụng lặp lại Điều này giúp chúng ta dễ dàng xử lý và mở rộng mô hình.
Trong thực tế, cảm biến thực thi các tác vụ đồng thời: sinh gói tin (thu thập thông tin), xử lý, và gửi gói tin; trong khi kênh truyền nhận và truyền dẫn gói tin một cách đồng thời [15] Hơn thế nữa, một thành phần (cảm biến hoặc kênh truyền) có thể vận hành độc lập với các thành phần khác Do đó các tác vụ của cảm biến và kênh truyền trong một WSN nên được thực thi đồng thời Đây gọi là tính đồng thời (concurrency) của WSNs Bởi vì các công cụ hỗ trợ Petri nets(bao gồm CPNs) chỉ hiện thực ngữ nghĩa tuần tự của luật firing (sự xảy ra của các transitions), nên sẽ rất khó để thể hiện tính đồng thời của WSNs trên mô hìnhCPN Việc không thể hiện được tính đồng thời của WSNs có thể dẫn đến những kết quả sai lầm khi thực hiện phát hiện tắc nghẽn Vì vậy, mô hình đã đề xuất(gọi là mô hình tuần tự) được mở rộng với sự thay đổi ngữ nghĩa của luật firing.
Chương 1 Giới thiệu 4 Điều này giúp hành vi của mô hình sát hơn với thực tế và do đó cải thiện kết quả phát hiện tắc nghẽn.
CPN Tools 1 là công cụ phổ biến và giàu sức mạnh nhất trong việc xây dựng và phân tích mô hình CPNs Đặc biệt, nó hỗ trợ timed colour set (thể hiện thời gian) và phân cấp mô hình CPN Tools có thể kiểm tra hành vi của hệ thống được mô hình sử dụng mô phỏng (simulation), kiểm chứng các thuộc tính bằng các phương pháp không gian trạng thái và kiểm tra mô hình [16] Vì vậy, chúng tôi sử dụngCPN Tools để hiện thực hướng tiếp cận của chúng tôi trong nghiên cứu này.
Mục tiêu của đề tài
Mục tiêu tổng quát của đề tài là sử dụng Coloured Petri nets để mô hình hoá mạng cảm ứng không dây và kiểm tra tắc nghẽn trên mạng Mô hình đề ra phải thể hiện chính xác hoạt động của mạng cảm ứng không dây trong thực tế Để thực hiện mục tiêu tổng quát đã đề ra, chúng tôi đề ra các mục tiêu con và cụ thể như sau:
• Nghiên cứu lý thuyết CPNs và phương pháp mô hình hoá dùng CPNs
• Nghiên cứu các đặc điểm của WSN để xây dựng mô hình
• Đề xuất phương pháp phát hiện tắt nghẽn trên mô hình thu được
• Kiểm chứng mô hình đã xây dựng bằng công cụ CPN Tools
• Tiến hành thí nghiệm kiểm tra tắc nghẽn trên nhiều WSNs khác nhau
• Đánh giá, báo cáo kết quả
Giới hạn của đề tài
Do thời gian có hạn, nên phạm vi nghiên cứu của đề tài tập trung vào việc kiểm chứng tính chất tắc nghẽn trên mạng cảm ứng không dây Mô hình đề xuất, vì vậy, cũng tập trung thể hiện các đặc điểm của mạng cảm ứng không dây có liên
Chương 1 Giới thiệu 5 quan đến vấn đề tắc nghẽn Ngoài ra, do hạn chế về thời gian cũng như muốn tập trung vào việc phát triển sâu về mặt lý thuyết, chúng tôi chưa xây dựng một giao diện tương tác với người dùng trong việc tùy chỉnh topology của WSN.
Đóng góp của đề tài
Đề tài đã đề xuất một mô hình CPN biểu diễn các thành phần và hoạt động của mạng cảm ứng không dây Mô hình này được mở rộng để thể hiện tính đồng thời của một WSN Trên mô hình thu được, các kỹ thuật phân tích được áp dụng để phát hiện tắc nghẽn Việc phát hiện tắc nghẽn có vai trò quan trọng nhằm kéo dài tuổi thọ của WSNs.
Ngoài ra, trong quá trình thực hiện đề tài, chúng tôi đã công bố được ba bài báo khoa học Bài thứ nhất đã được trình bày trong hội nghị quốc tế The Seventh International Conference On Knowledge And Systems Engineering (KSE 2015) tại thành phố Hochiminh, Vietnam vào tháng 10 năm 2015 Bài thứ hai đã được trình bày trong hội nghị quốc tế International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC) lần thứ ba mươi mốt tổ chức tại thành phố Okinawa, Nhật Bản vào tháng 07 năm 2016 Bài thứ ba được xuất bản ở tạp chí quốc tế International Journal of Applied Information Systems (IJAIS) Thông tin trích dẫn của ba bài báo này như sau:
• Pham Duy Bao Trung, Trinh Van Giang, Le Dinh Thuan, Quan Thanh Tho,
”Reusing Symbolic Observation Graph for Efficient Model Checking”, The Seventh International Conference On Knowledge And Systems Engineering (KSE 2015), Vietnam, 2015
• Trinh Van Giang, Kunihiko Hiraishi and Quan Thanh Tho, “Modeling and Analysing Boolean Networks by Coloured Petri Nets”, 31st International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC 2016), Okinawa Jichikaikan, Japan, 2016
• Giang Trinh, Khanh Le, Tam Bang, Quan Tram, Thang Bui and Tho Quan.
Modelling and Congestion Detection of Wireless Sensor Networks: A Concurrent- based Approach using Coloured Petri Nets.International Journal of AppliedInformation Systems 11(7):1-9, December 2016.
Cấu trúc luận văn
Nội dung các phần còn lại của luận văn được phân bố như sau Chương 2 trình bày sơ lược các công việc liên quan đến đề tài, như là xuất phát điểm rất tốt cho các ý tưởng mà đề tài đề xuất Chương 3 trình bày các kiến thức nền mà chúng tôi đã sử dụng bao gồm mạng cảm ứng không dây, lý thuyết Petri nets, lý thuyết ColouredPetri nets cả không phân cấp (non-hierarchical) lẫn phân cấp (hierarchical), công cụ CPN Tools cùng ngôn ngữ luận lý thời gian ASK-CTL dùng cho việc kiểm tra mô hình Nội dung của chương này sẽ giúp người đọc tiếp cận những phần còn lại của luận văn một cách dễ dàng hơn Nội dung chính của luận văn nằm ở Chương4 và Chương 5 Chương 4 trình bày về cách mô hình hoá mạng cảm ứng không dây bằng Coloured Petri nets Mô hình Hierarchical Coloured Petri nets được đề xuất bởi các ưu điểm vượt trội của nó Nội dung của Chương 5 là phương pháp phân tích mô hình Coloured Petri nets đã xây dựng để phát hiện tắc nghẽn trên mạng cảm ứng không dây Chúng tôi cũng trình bày chi tiết cách sinh phản ví dụ(counter example), một chỉ dẫn giúp xác định nguồn xảy ra tắc nghẽn Chương 6 sẽ được dùng để trình bày về thí nghiệm mà chúng tôi đã tiến hành Kết quả thí nghiệm được phân tích và so sánh với các nghiên cứu đã có Trong chương cuối cùng, Chương 7, chúng tôi dùng để tổng kết, nhận xét nội dung báo cáo, cũng như nêu lên một số hướng mở rộng đề tài có thể được tiến hành trong tương lai.
Nghiên cứu liên quan
Công cụ giả lập mạng cảm ứng không dây
Để đánh giá sự hoạt động của một giao thức định tuyến, thông thường người ta sẽ xây dựng thuật toán của giao thức đó trên các công cụ giả lập ví dụ như: ns-2 [8] hay OMNeT++ [9] và so sánh các kết quả đạt được khi thực thi thuật toán của mình với những thuật toán có sẵn Sự giả lập này có ưu điểm là cho ta thấy được một cách tổng quát tầm hoạt động, ưu và nhược điểm của một giao thức khi nó hoạt động trên mạng cũng như đưa ra được con số cảnh báo đe dọa sự hoạt động của giao thức Tuy nhiên, chúng ta cũng gặp rất nhiều hạn chế khi sử dụng giả lập vì phụ thuộc hoàn toàn vào khung chương trình (framework) mà công cụ giả lập hỗ trợ Chúng tôi nhận thấy rằng cứ vài năm, các giả lập này lại thay đổi sự hỗ trợ cho khung chương trình chính, mỗi lần như thế gần như người sử dụng phải bắt đầu mọi thứ lại từ đầu vì sự khác biệt về cấu trúc của các khung chương trình Ví dụ: công cụ giả lập OMNeT++ dùng hai khung chương trình là MF (Mobility Framework – khung chương trình chính được hỗ trợ từ năm 2007 đến 2010) [17] và INET (khung chương trình chính được hỗ trợ hiện nay) [18].
Chúng ta hãy cùng tìm hiểu sự khác nhau khi xây dựng một thuật toán định tuyến cơ bản của hai khung chương trình MF và INET trên công cụ giả lập OMNeT++.
Về cơ bản khi xây dựng những giao thức định tuyến ta chủ yếu viết các hàm ở tầng Network trong kiến trúc TCP/IP, các hàm ở tầng bên dưới nhờ sự hỗ trợ
Chương 2 Nghiên cứu liên quan 8
Hình 2.1: Lập trình giao thức định tuyến trên giả lập OMNeT++ với khung chương trình MF. của khung chương trình mf nên hầu như ta không cần thay đổi nhiều Các hàm ta cần thay đổi chủ yếu trong lớp SimpleNetwLayer như Hình 2.1.
Với INET, một khung chương trình được viết ra để hỗ trợ lập trình các ứng dụng ở tầng cao như Application, Transport, hay Network trong khi MF lại hỗ trợ các giao thức tầng thấp (như Network Interface) nên khi lập trình giao thức định tuyến ngoài tầng Network (tầng hoạt động chính của giao thức định tuyến) thì các tầng bên dưới cũng cần thay đổi Hình 2.2 minh họa các mô-đun cần cho một giao thức định tuyến trên mạng khi sử dụng INET.
Hình 2.2: Lập trình giao thức định tuyến trên giả lập OMNeT++ với khung chương trình INET.
Chương 2 Nghiên cứu liên quan 9
Mô hình và kiểm chứng mạng cảm ứng không
dây bằng Petri nets Để giải quyết vấn đề phát hiện tắc nghẽn trên mạng cảm ứng không dây, các tác giả của [7] đã đề xuất một phương pháp hướng nghẽn cho việc mô hình và kiểm chứng WSNs sử dụng Place/Transition nets (P/T nets hoặc PNs) [19] Trong phương pháp này, họ chỉ tập trung vào sự phân bố số lượng gói tin trên mạng với lý do vì nguyên nhân xảy ra tắc nghẽn chủ yếu là tràn bộ đệm của cảm biến hoặc kênh truyền Họ đã phát triển một công cụ gọi là WSN-PN cho phép tạo và chỉnh sửa topology cho mạng, sinh tự động mô hình PN tương ứng, và phát hiện tắc nghẽn bằng kiểm chứng công thức luận lý thời gian tuyến tính LTL (Linear Temporal Logic) trên mô hình PN này Hơn thế nữa, công cụ WSN-PN cũng hỗ trợ người dùng trừu tượng hoá các thành phần, có thể là cảm biến hoặc là kênh truyền, áp dụng lên mô hình PN giúp rút giảm không gian trạng thái đáng kể.
Dưới đây, chúng tôi sẽ trình bày chi tiết về hướng tiếp cận trên bởi nó là cơ sở để đề tài này phát triển lên.
Một WSN bao gồm một số cảm biến, chúng có thể giao tiếp với nhau thông qua tín hiệu wi-fi Ở đây có 3 loại cảm biến là: cảm biến nguồn (source sensor), cảm biến đích (sink sensor), và cảm biến trung gian (intermediate sensor) Cảm biến đích thường là cảm biến hoặc máy tính có cấu hình mạnh Vai trò của cảm biến nguồn là sinh và gửi gói tin đi, của cảm biến trung gian là nhận và chuyển tiếp gói tin, của cảm biến đích là nhận và xử lý gói tin Trong một số ứng dụng, vai trò của cảm biến nguồn và cảm biến trung gian là giống nhau, có nghĩa là chúng có thể sinh và gửi gói tin Với trường hợp này, ta có thể mô hình một cảm biến nguồn và một cảm biến trung gian thành một node chung trong mô hình WSN-PN [7].
Các cảm biến có thể được kết nối ở chế độ unicast, multicast, hoặc broadcast; mỗi chế độ xác định các cặp hai cảm biến cụ thể có thể trao đổi thông tin hay không Nếu hai cảm biến có thể giao tiếp, chúng ta nói rằng ở đây có một kênh truyền được hình thành cho hai cảm biến này Thông tin về cách bố trí các cảm biến và kênh truyền tạo thành topology của một WSN [20] Một ví dụ về topology được cho trong Hình 2.3, biểu diễn một WSN gồm 10 cảm biến Cảm biến nguồn được ký hiệu là hình tròn hai đường, cảm biến đích được ký hiệu là hình tròn tô
Chương 2 Nghiên cứu liên quan 10 đen Các cảm biến còn lại đóng vai trò như là các cảm biến trung gian, chuyên chở thông tin từ cảm biến nguồn tới cảm biến đích.
Hình 2.3: Một WSN ví dụ với 10 cảm biến.
Trong hướng tiếp cận của nhóm tác giả [7], mỗi cảm biến vật lý được mã hoá như là một bộ {B, Q, p, s}; trong đó B là một bộ đệm (sensor buffer) chứa các gói tin đến,Qlà một hàng đợi giữ các gói tin đã qua xử lý và đang chuẩn bị được gửi đi, p là tốc độ xử lý gói tin (processing rate) xác định tỉ lệ các gói tin đang được chuyển từ B tới Q, còn s là tốc độ gửi gói tin đi (sending rate) xác định tỉ lệ các gói tin đang được chuyển từ Qtới các kênh truyền kết nối với cảm biến.
Trong khi đó, mỗi kênh truyền cũng được mã hoá như là một bộ{B c , t}; trong đó B c là bộ đệm lưu trữ các gói tin đã được xử lý ở kênh truyền, và t là tốc độ truyền dẫn (transmission rate) của các gói tin mà kênh truyền có thể quản lý để xử lý (gửi tới các cảm biến kết nối với kênh truyền) Bảng 2.1 mô tả một ví dụ về thiết lập thông số cho các cảm biến nguồn và cảm biến trung gian trong Hình 2.3 Thường thì các cảm biến được thiết lập thông số đồng đều nhau.
Bảng 2.1: Ví dụ về thiết lập thông số cho một WSN đơn giản.
Cảm biến nguồn Cảm biến đích Tốc độ gửi gói tin 2-3 gói tin/ms N/A Kích thước bộ đệm 50 gói tin 100 gói tin
Kích thước gói tin 1KB 1KB
Tốc độ xử lý gói tin 2-3 ms/gói tin 1-2 ms/gói tin
Các tác giả đã định nghĩa các luật ngữ nghĩa chức năng (operational semantic rules) mô tả hành vi của của các cảm biến và kênh truyền trên một WSN Các luật này được mã hoá dưới dạng luật suy diễn toán học như trong Bảng 2.2.
Chương 2 Nghiên cứu liên quan 11
Bảng 2.2: Các luật ngữ nghĩa chức năng của mô hình WSN.
{ B,Q,p,s } , { B c ,t } ,Q>0 Q=Q − 1 s ,B c =B c + 1 s [sensor-to-channel] Luật này được áp dụng khi một cảm biến gửi gói tin tới kênh truyền kết nối với nó.
{ B c ,t } , { B,Q,p,s } ,B c >0 B c =max(0,B c − 1 t ),B=B+ 1 t [channel-to-sensor] Luật này được áp dụng khi gói tin được truyền từ một kênh truyền tới một cảm biến kết nối với nó.
{ B,Q,p,s } ,B>0 B=max(0,B − 1 p ),Q=Q+ p 1 [sensor-processing] Luật này được áp dụng khi gói tin được xử lý bên trong một cảm biến.
Theo hướng tiếp cận trên, mỗi cảm biến và kênh truyền sẽ tương ứng với một thành phần trong mô hình PN Hình 2.4 mô tả mô hình PN cho một WSN đơn giản chỉ bao gồm một cảm biến nguồn và một cảm biến đích, cả hai được kết nối qua một kênh truyền Cảm biến và kênh truyền được biểu diễn bởi thành phần PN tương ứng của chúng.
Hình 2.4: Ví dụ về mô hình PN cho một WSN đơn giản.
Trong mô hình WSN-PN, mã C# được sử dụng để mô phỏng các chức năng của các cảm biến và kênh truyền trong một WSN Các tác giả đã giải thích lý do cho việc này là (1) P/T nets có sức mạnh mô hình hạn chế nên không thể hiện hết hành vi của WSN một cách tường minh trên mô hình và (2) công cụ WSN-PN phát triển dựa trên khung chương trình PAT [21], được viết bằng C# Với cách tiếp cận sử dụng ngầm định mã bên dưới, mỗi cảm biến/kênh truyền được liên kết với một phần mã C# để mô tả cơ chế chức năng của nó (tương ứng với các luật ngữ nghĩa chức năng) Ví dụ, Hình 2.5 mô phỏng một tình huống khi cảm ứng lấy một gói tin trong hàng đợi của nó và gửi gói tin tới một kênh truyền ở chế độ unicast.
Một cách cơ bản, sau khi một WSN được mô hình hoá bằng Petri nets, chúng ta hoàn toàn có thể kiểm tra bất kỳ thuộc tính nào của nó dựa trên mô hình này nếu thuộc tính đó được biểu diễn như là một công thức luận lý thời gian (có thể là CTL hoặc LTL) [22] Trong công cụ WSN-PN của mình, các tác giả sử dụng
Chương 2 Nghiên cứu liên quan 12 p u b l i c v o i d sendToChannel ( i n t i d , i n t n e x t h o p ) { i n t c = s e n s o r s [ i d ] g e t S e n d i n g R a t e ( ) ; i n t l = s e n s o r s [ i d ] S B u f f e r Count ; Ne tP ack et k ; w h i l e ( l > 0 | | c > 0 ) { k = s e n s o r s [ i d ] S B u f f e r Dequeue ( ) ; i f ( k ToId == n e x t h o p ) c h a n n e l s [ i d , n e x t h o p ] S B u f f e r Enqueue ( k ) ; e l s e s e n s o r s [ i d ] S B u f f e r Enqueue ( k ) ; l −− ; c −− ; }
Hình 2.5: Đoạn mã mô phỏng thao tác truyền gói tin ở chế độ unicast.
LTL để biểu diễn thuộc tính tắc nghẽn của WSN Ví dụ, một công thức LTL dùng để kiểm tra tắc nghẽn là:
#assert WSN() |= [] Congestion ở đây, [] đại diện cho toán tử LTL ♦ (always eventually – có nghĩa là luôn luôn sẽ xảy ra trong tương lai) và điều kiệnCongestion chỉ ra rằng thuộc tính tắc nghẽn có xảy ra hay không Giá trị của Congestion được tính toán ở một trạng thái xác định dựa trên cách mô phỏng bằng mã C# Để phát hiện tắc nghẽn trên một cảm biến, mã mô phỏng đếm số lượng gói tin mà cảm biến nhận được Nếu số lượng này đạt tới một ngưỡng (khoảng 70% kích thước bộ đệm, theo kết luận trong bài báo [23]), khi đó bộ đệm sẽ đầy và Congestion sẽ được đặt giá trị là true Phương pháp tương tự cũng được sử dụng cho việc phát hiện tắc nghẽn trên các kênh truyền Hình 2.6 chính là đoạn mã mô phỏng dùng để kiểm tra việc đầy bộ đệm. p u b l i c b o o l i s F u l l S e n s o r ( i n t i d ) { r e t u r n ( s e n s o r s [ i d ] P B u f f e r Count >= s e n s o r s [ i d ] B u f f e r M a x S i z e ) ; }
Hình 2.6: Đoạn mã mô phỏng kiểm tra đầy bộ đệm.
WSN-PN đã định nghĩa các hoạt động của một WSN một cách hình thức thông qua các luật ngữ nghĩa chức năng Điều đó giúp việc mô hình và phân tích các tính chất trên mô hình một cách chính xác Việc áp dụng Petri nets và kiểm tra mô hình đưa ra một hướng tiếp cận đầy đủ và chính xác cho bài toán mô hình và phát hiện tắc nghẽn trên WSNs Tuy nhiên, WSN-PN chưa thể hiện một cách
Chương 2 Nghiên cứu liên quan 13 tường minh hành vi của WSN trên mô hình PN Các cách xử lý hiện nay cho vấn đề này là can thiệp vào mã bên trong của chương trình kiểm chứng như đã trình bày ở trên Cách làm này chỉ có thể áp dụng cho một mô hình nhất định và trong một số trường hợp nhất định của mô hình đó Khi có sự thay đổi trongWSN, hướng tiếp cận trên sẽ gặp khó khăn cũng như tốn nhiều công sức trong việc thích ứng với thay đổi này Ngoài ra, như các tác giả có trình bày trong phần thí nghiệm, không gian trạng thái sinh ra của mô hình PN còn quá lớn vì có nhiều trạng thái thừa Việc phát triển các kỹ thuật rút giảm không gian trạng thái cũng như đề xuất mô hình hợp lý và hiệu quả hơn đã được các tác giả nêu lên như là các công việc trong tương lai.
Mô hình mạng cảm ứng không dây bằng
Sự phát triển mạnh mẽ của lĩnh vực IoT (Internet of Things) với mạng cảm ứng không dây là ứng dụng cốt lõi đã thu hút sự quan tâm rất lớn của cộng đồng tới việc nghiên cứu về mạng cảm ứng không dây Trong những năm trở lại đây, đã có rất nhiều công việc về mô hình và phân tích mạng cảm ứng không dây.
Hai tác giả Kapitanova và Son [24] đề xuất ngôn ngữ mô tả MEDAL, chỉnh sửa từ ngôn ngữ Petri nets (PNs), để mô tả và phân tích các yêu cầu của WSN.
Các tác giả của [4] đề xuất khái niệm mô hình mạng cảm ứng không dây thông minh (Intelligent Wireless Sensor network Model – viết tắt là IWSNM) dựa trênPetri nets IWSNM có thể mô hình một cách chính xác và không nhập nhằng cả đặc tính tổng quát lẫn đặc tính riêng biệt của mạng Thêm vào đó, IWSNM có thể được phân tích và kiểm chứng bởi các công cụ hỗ trợ phổ biến của PNs Các nhà khoa học từ đại học Virginia [25] đưa ra một hướng tiếp cận hình thức hoá các yêu cầu đặc tả mức ứng dụng của WSNs Họ đề xuất một ngôn ngữ đặc tả,một mở rộng của PNs, hỗ trợ các tính năng chính của WSNs Ngôn ngữ đặc tả này tích hợp các tính năng từ colour, time, và stochastic Petri nets để giải quyết các vấn đề trong đặc tả và phân tích Trong [26], các tác giả trình bày một hướng tiếp cận đặc biệt, sử dụng hình thức nested Petri nets, để mô hình và mô phỏngWSNs Mặc dù PNs là ngôn ngữ tốt cho mô hình hoá các hệ thống động, chúng vẫn không đủ phương tiện để thể hiện những khía cạnh của các nguồn tài nguyên,thời gian, và chi phí thu thập thông tin Vì vậy, các tác giả đề xuất một số mở
Chương 2 Nghiên cứu liên quan 14 rộng của PNs để vượt qua vấn đề này [13] trình bày một hướng tiếp cận dựa trên Petri nets nâng cao (High level Petri nets) để mô hình và phân tích một cách hình thức mạng cảm ứng không dây Mô hình đề xuất sử dụng khả năng mô hình phân cấp của Petri nets nâng cao, bao gồm nhiều cấp độ trừu tượng hoá Điều đó giúp thể hiện một cách khái quát và đầy đủ các hành vi của một WSN. Đã có nhiều hướng tiếp cận sử dụng PNs và các mở rộng của nó để mô hình và phân tích các giao thức trên WSNs Coloured Petri nets (CPNs), một mở rộng của PNs, là một kỹ thuật mô hình hoá mạnh mẽ Trong [27], một mô hình CPN được trình bày cho việc mô hình và đánh giá hiệu suất của giao thức medium access control trong WSNs tên là sensor-medium access control protocol (S-MAC) Mô hình trên sử dụngHierarchical CPNs (HCPNs) là một mở rộng CPNs với các mô- đun Trong [14], một mô hình CPN khác cũng được đề xuất để phân tích hành vi của một trong các giao thức định tuyến trong WSNs là Vector Based Forwarding, được kiểm thử và kiểm chứng bằng các phân tích các thông tin thống kê của không gian trạng thái bao gồm liveness, responsiveness, và không deadlocks Các tác giả của [12] sử dụnggeneralized stochastic Petri nets (GSPNs) để mô tả luồng dữ liệu trong WSN Họ áp dụng mô hình thu được cho việc phân tích ảnh hưởng của việc gộp dữ liệu trên độ trễ mạng và hệ quả là trên tuổi thọ pin của cảm biến.
Việc kiểm soát tiêu tốn năng lượng và tối ưu hoá đời sống của mạng cảm ứng không dây là vấn đề quan trọng và thu hút nhất hiện nay Rất nhiều công việc đã được đề xuất nhằm giải quyết vấn đề trên Trong [28], các tác giả trình bày một hướng tiếp cận cho việc đánh giá đời sống của một WSN bằng cách mô phỏng tiêu tốn năng lượng của nó sử dụng các mô hình Hướng tiếp cận này bao gồm ba thành phần chính bao gồm một quy trình hoàn toàn tự động cho đánh giá đời sống của WSN, một tập các mô hình CPN khả tái sử dụng biểu diễn tiêu tốn năng lượng của các giao thức truyền thông của WSN, và một chiến lược kết hợp các mô hình CPN của các ứng dụng và giao thức của WSN Các tác giả của [29] đề xuất hai phương pháp để mô hình tiêu tốn năng lượng của bộ xử lý bao gồmMarkov chains và Petri nets Họ khẳng định rằng việc sử dụng Petri nets hiệu quả và chính xác hơn so với việc sử dụng Markov chains Trong [30], Sajeh ZAIRI và các đồng nghiệp đã đề xuất một phương pháp mô hình hoá tập trung vào hành vi toàn cục của một mạng cảm ứng không dây, đồng thời cũng cho phép ước lượng tiêu tốn năng lượng của mạng dựa trên việc phân tích mô hình thu được Hướng tiếp cận này dựa trên khái niệm mô hình hoá hướng thành phần và khả năng diễn đạt của Coloured Petri nets Trong nghiên cứu này, các tác giả tập trung vào hai
Chương 2 Nghiên cứu liên quan 15 thành phần radio và MAC, bởi vì chúng là hai thành phần tiêu tốn năng lượng nhiều nhất Ngoài ra, mô hình CPN tạo ra cũng được dùng để đánh giá đời sống của mạng.
Kiến thức nền
Mạng cảm ứng không dây
Mạng cảm ứng không dây (Wireless Sensor Network – WSN) [2, 31] là mạng gồm các nút cảm biến (sensor node – SN) Nút cảm biến là những thiết bị có bộ xử lý đơn giản, nhỏ gọn và năng lượng hoạt động thấp Ví dụ, Hình 3.1 minh họa triển khai mạng cảm ứng không dây trong việc theo dõi hoạt động của núi lửa [1].
Hình 3.1: Ứng dụng WSN theo dõi hoạt động của núi lửa (nguồn [1]).
Một WSN bao gồm một số cảm biến, chúng có thể giao tiếp với nhau thông qua tín hiệu wi-fi Ở đây có 3 loại cảm biến là: cảm biến nguồn (source sensor), cảm biến đích (sink sensor), và cảm biến trung gian (intermediate sensor) Cảm biến đích thường là cảm biến hoặc máy tính có cấu hình mạnh Vai trò của cảm biến nguồn là sinh và gửi gói tin đi, của cảm biến trung gian là nhận và chuyển
Chương 3 Kiến thức nền 17 tiếp gói tin, của cảm biến đích là nhận và xử lý gói tin Nếu hai cảm biến có thể giao tiếp, chúng ta nói rằng ở đây có một kênh truyền được hình thành cho hai cảm biến này.
Trong WSN, mỗi cảm biến là một thiết bị thu nhỏ, có hệ điều hành, và hoạt động độc lập với các cảm biến khác Một cảm biến có hai thành phần vật lý bao gồm một bộ đệm để chứa các gói tin đến và một hàng đợi chứa các gói tin đã qua xử lý, chuẩn bị được gửi đi Ngoài ra, một cảm biến cũng được xác định hai thông số là tốc độ gửi gói tin (số gói tin gửi đi từ hàng đợi cảm biến trong một đơn vị thời gian) và tốc độ xử lý gói tin (số gói tin gửi từ bộ đệm qua hàng đợi của cảm biến trong một đơn vị thời gian) Kênh truyền là kết nối vật lý giữa hai cảm biến, bao gồm một bộ đệm chứa các gói tin nhận từ cảm biến đi Nó cũng được xác định một thông số là tốc độ truyền dẫn gói tin (số gói tin chuyển từ cảm biến đi tới cảm biến đến trong một đơn vị thời gian) Các cảm biến và các kênh truyền tạo nên các thành phần của một WSN, và các thành phần này hoạt động độc lập với nhau.
Thông thường, cấu trúc của một WSN được biểu diễn trực quan thông qua một dạng đồ thị gọi làtopology Trong topology, một đỉnh (biểu diễn bằng đường tròn) tương ứng với một cảm biến, một cạnh có hướng nối hai đỉnh tương ứng với một kênh truyền Hình 3.2 minh hoạ một topology của một WSN đơn giản.
Topology trên dùng các dạng đường tròn khác nhau để biểu diễn các loại cảm biến khác nhau – đường tròn kép đại diện cho cảm biến nguồn, đường tròn đơn đại diện cho cảm biến trung gian, và đường tròn tô kín đại diện cho cảm biến đích.
Hình 3.2: Topology của một WSN đơn giản.
Lợi thế của việc triển khai mạng cảm ứng không dây so với một mạng không dây thông thường là giá thành của các cảm biến rẻ hơn rất nhiều so với các thiết
Chương 3 Kiến thức nền 18 bị thu phát wi-fi truyền thống (access point) Tuy nhiên vì các cảm biến trong WSN thường được phân bố dày đặc do vùng phủ sóng của các thiết bị này hẹp và năng lượng của các cảm biến cũng không nhiều nên đặt ra những thử thách rất lớn trong khi xây dựng những thuật toán định tuyến như [31]:
• Sự mất gói tin (packet-loss): dữ liệu được chuyển đi trên mạng có thể bị mất do nhiễu sóng vì sự phân bố dày đặc và khả năng xử lý thông tin hạn chế của các cảm biến.
• Sự nghẽn mạng (congestion): nghẽn mạng xảy ra khi các cảm biến hết năng lượng hay hàng đợi lưu trữ của các cảm biến đầy hoặc khi có sự đụng độ của các gói tin trên mạng.
• Bảo mật (security): ảnh hưởng của việc phân bố dày đặc các cảm biến trên mạng làm các gói tin chuyển đi trên mạng rất dễ bị nghe lén hoặc bị đánh cắp.
• Độ trễ (delay): do sự tác động của hai yếu tố sự mất gói tin và sự nghẽn mạng khiến cho quá trình truyền dữ liệu phải lặp đi lặp lại cho đến khi nút nhận nhận đủ thông tin Điều này gây ra sự chậm trễ khi truyền thông và lãng phí tài nguyên một cách vô ích.
Tuy nhiên, để xây dựng một giao thức định tuyến trong mạng cảm ứng không dây ta chỉ cần quan tâm hai ràng buộc cơ bản là sự mất gói tin và sự nghẽn mạng vì khi giải quyết được hai ràng buộc này thì hầu như không còn sự chậm trễ khi truyền tải dữ liệu nữa Còn đối với bảo mật mạng chúng ta phải thực hiện rất nhiều thuật toán phức tạp khác nhau kết hợp với thuật toán định tuyến có sẵn điều này gây ảnh hưởng lớn đến việc chọn đường đi phù hợp cho gói tin và không đảm bảo đủ năng lượng để truyền thông trên toàn mạng cảm ứng không dây Vì thế, người ta thường tách vấn đề định tuyến và bảo mật ra thành hai bài toán riêng biệt để giải quyết dễ dàng và thuận tiện.
Petri nets
Petri nets (PNs) [19, 32, 33] là một ngôn ngữ mô hình hoá được sử dụng rộng rãi trong việc mô hình các hệ thống và giao thức mạng Định nghĩa 3.1 là định nghĩa của dạng Petri nets cổ điển, được biết như là Place/Transition nets [19].
Chương 3 Kiến thức nền 19 Định nghĩa 3.1 (Petri net) Một Petri net là một bộN =hP, T, F, W, M 0 itrong đó:
• P là tập hữu hạn các places;
• T là tập hữu hạn các transitions;
• tập P và T là hoàn toàn phân biệt, nghĩa là P ∩T =∅;
• W :F →N + là hàm ánh xạtrọng số cho các cạnh; và
• M 0 :P →N làmarking khởi tạo, biểu diễn phân bố ban đầu của các tokens.
Trạng thái của một PN (marking) sẽ thay đổi khi các transitions thực thi hành động của chúng Định nghĩa 3.2 đặc tả điều kiện và quy tắc thực thi của một transition, gọi là luật firing. Định nghĩa 3.2 (Firing) Cho N = hP, T, F, W, M 0 i là một Petri net và M : P →Nlà một marking của N.
Một transition t ∈T là khả hoạt động (enabled) ở markingM, viết là M → t nếu và chỉ nếu ∀p∈P :M(p)≥W(p, t).
Một enabled transition có thể xảy ra (fires), sinh ra một marking mớiM 0 , viết là M → t M 0 , trong đó ∀p∈P :M 0 (p) =M(p)−W(p, t) +W(t, p).
Không gian trạng thái của một Petri net bao gồm tất cả markings có thể đạt tới được từ marking khởi tạo Nếu số markings là hữu hạn, không gian trạng thái của một Petri net được thể hiện bằng một đồ thị reachability Đồ thị reachability giúp chúng ta có thể thực hiện việc kiểm chứng các thuộc tính trên mô hình Petri net Định nghĩa 3.3 đặc tả hình thức một đồ thị reachability. Định nghĩa 3.3 (Đồ thị reachability) Cho N = hP, T, F, W, M 0 i là một Petri net và M : P → N là một marking của N Đồ thị reachability của N là một đồ thị (V, E) với tập đỉnh V =R(N, M 0 )là tập tất cả các markings có thể đạt được từ M 0 và tập cạnh E = {(M 0 , t, M 00 ) ∈ V ×T ×V |M 0 → t M 00 } Chú ý rằng ký hiệu M 0 → t M 00 có nghĩa là M 00 đạt được từ M 0 khi transition t xảy ra (fires).
Ví dụ, Hình 3.3 mô tả một PN đơn giản và đồ thị reachability của nó PN này biểu diễn cho một cảm biến trong [34], bao gồm 3 places là "input", "int", và
"output" PN này có 2 transitions là "generate_packet" và "send_packet" Tất cả các cạnh của PN này được mặc định có trọng số là 1 Marking khởi tạo của PN trên có một token ở place "input" (M 0 = (1,0,0)) Chú ý, ký hiệu M 0 = (1,0,0) có nghĩa là M 0 (input) = 1, M 0 (int) = 0, và M 0 (output) = 0 Với marking khởi tạo M 0 của PN trong Hình 3.3, transition "generate_packet" là khả hoạt động (enabled), trong khi "send_packet" thì không Khi "generate_packet" xảy ra, số tokens của place "input" giảm đi 1, trong khi số tokens của place "int" tăng lên 1, thể hiện một marking mới (M 1 = (0,1,0)). input generate packet int send packet output
Hình 3.3: Petri net ví dụ và đồ thị reachability của nó.
Coloured Petri nets
Coloured Petri net (CPN) [11, 33] là một ngôn ngữ mô hình kết hợp sức mạnh của Petri nets và ngôn ngữ lập trình Trong CPNs, các tokens được phân biệt bởi
"color", còn Petri nets thông thường không có sự phân biệt giữa các tokens Bên cạnh đó, biểu thức cạnh, một phiên bản mở rộng của trọng số cạnh, xác định token nào có thể di chuyển qua cạnh, và guard là biểu thức luận lý định nghĩa ràng buộc thêm cho tính enabled của transition.
Cho EXP [11] là tập các biểu thức tuân theo một cú pháp định nghĩa trước,được sử dụng trong các thành phần của mô hình, ví dụ như là biểu thức cạnh,guards Trước khi biểu thức được lượng giá, các biến trong biểu thức phải được gán giá trị, gọi là binding Bên cạnh đó, một multiset là một tập mà trong đó có thể có một số lần xuất hiện của cùng một phần tử Multiset được định nghĩa
Chương 3 Kiến thức nền 21 trong Định nghĩa 3.4 [10] Nó là một khái niệm quan trọng được sử dụng trong các định nghĩa về sau như markings, steps, và ngữ nghĩa enabled và xảy ra của các transitions Dưới đây là định nghĩa hình thức của CPNs (Định nghĩa 3.5 [10]). Định nghĩa 3.4 Cho S ={s 1 , s 2 , } là một tập không rỗng Một multiset trên S là một hàm m : S → N ánh xạ mỗi phần tử s ∈ S vào một số nguyên không âm m(s)∈Ngọi là số lần xuất hiện (coefficient) của s trong m Một multiset m có thể được viết dưới dạng tổng:
Thành viên,phép cộng,phép so sánh, vàphép trừ được định nghĩa như sau, ở đây m 1 , m 2 , vàm là các multisets:
Tập tất cả các multisets trênS được ký hiệu là S M S Định nghĩa 3.5 MộtColoured Petri net một bộ 9 phần tửhP, T, F,Σ, V, c, g, f, m 0 i sao cho:
1 P là một tập hữu hạn, không rỗng các places.
2 T là một tập hữu hạn, không rỗng các transitions sao cho P ∩T =∅. 3 F ⊆P ×T ∪T ×P là tập hữu hạn các cạnh có hướng.
4 Σlà một tập hữu hạn các colour sets không rỗng.
5 V là một tập hữu hạn các biến có kiểu sao cho T ype[v]∈Σvới mọi v ∈V. 6 c:P →Σlà một hàm colour set gán cho mỗi placep∈P một colour set c(p)∈Σ.
7 g :T →EXP là mộthàm guard gán cho mỗi transition t ∈T một biểu thức guard kiểu Boolean.
8 f :F →EXP là một hàm biểu thức cạnh gán cho mỗi cạnh a∈F một biểu thức cạnh của một kiểu multiset c(p) M S , ở đây plà place nối với cạnh a.
9 m 0 :P →EXP là một hàm khởi tạo gán cho mỗi placep∈P một biểu thức khởi tạo của một kiểu multisetc(p) M S
Chương 3 Kiến thức nền 22 Định nghĩa 3.6 Cho một Coloured Petri net CP N =hP, T, F,Σ, V, c, g, f, m 0 i, chúng tôi định nghĩa các khái niệm sau:
1 Một marking là một hàm M ánh xạ mỗi placep∈P vào một multiset của các tokens sao cho M(p)∈C(p) M S m 0 làmarking khởi tạo của CP N.
2 Các biến của một transition t được ký hiệu là V ar(t)∈V và bao gồm cả biến tự do xuất hiện trong guard của t và trong biểu thức cạnh của cách cạnh kết nối với t.
3 Một binding của một transition t là một hàmb ánh xạ mỗi biến v ∈V ar(t) vào một giá trị b(v)∈T ype[v] Tập tất cả các bindings cho một transitiont được ký hiệu là B(t).
4 Một binding element là một cặp (t, b) sao cho t∈T và b∈B(t) Tập tất cả các binding elementsBE(t) cho transitiont được định nghĩa bởi
BE(t) = {(t, b)|b ∈B(t)} Tập tất cả các binding elements trong một mô hình CPN được ký hiệu là BE.
5 Một step Y ∈BE M S là một tập không rỗng, hữu hạn multiset của các binding elements. Định nghĩa 3.6 [10] định nghĩa các khái niệm được sử dụng để biểu diễn ngữ nghĩa của CPNs Tiếp theo, ngữ nghĩa khả hoạt động và xảy ra của một binding element được tóm tắt trong Định nghĩa 3.7 [10]. Định nghĩa 3.7 Một binding element (t, b)∈BE là khả hoạt động (enabled) ở marking M nếu và chỉ nếu hai thuộc tính sau được thoả mãn:
Khi (t, b) là khả hoạt động ở M, nó có thể xảy ra, dẫn tới marking mớiM 0 được định nghĩa bởi:
3 ∀p∈P :M 0 (p) = (M(p)− −E(p, t)hbi) + +E(t, p)hbiM 0 là trực tiếp đạt tới được từ M Điều này được ký hiệu bằng M −−→ (t,b) M 0 Tập tất cả các markings đạt tới được từ một marking M được ký hiệu là R(M).
Dưới đây là một ví dụ về mô hình hoá một hệ thống đơn giản dùng CPNs Xét một hệ thống nhận thư được mô tả bằng ngôn ngữ không hình thức như sau: hệ thống bao gồm một hộp chứa các thư, mỗi thư có thông tin về người nhận và nội dung thư; có hai người nhận là John và Sue, mỗi người chỉ được nhận thư có thông tin người nhận trùng với tên mình; khi nhận thư, thư sẽ được gửi đến hộp thư của người nhận Hình 3.4 biểu hiện một mô hình CPN của hệ thống nhận thư trên.
Các colour sets tương ứng với các thông tin cần thể hiện được đặc tả trong Hình 3.5 bao gồm: colour set "PERSON" thể hiện tên người nhận, colour set "TEXT" thể hiện nội dung, và colour set "MAIL" thể hiện thư Colour set "MAIL" được định nghĩa là một kiểu bản ghi (record) bao gồm hai thành phần là "p" với kiểu
"PERSON" và "t" với kiểu "TEXT" Trên mỗi transition có một guard định nghĩa điều kiện xảy ra của nó Điều kiện này tương ứng với đặc tả thư phải có thông tin người nhận trùng với tên người nhận (#p x = p) Tại marking khởi tạo M 0 = ({p= ”J ohn”, t = ”Hello”},”J ohn”,”Sue”, empty, empty) (empty thể hiện không có token nào), chỉ có một binding element của transition "get1" là enabled Binding element đó là e= (get1,hx={p= ”J ohn”, t= ”Hello”}i) Khi exảy ra, ta có một marking mới làM 1 = (empty,”J ohn”,”Sue”,{p= ”J ohn”, t”Hello”}, empty) Cạnh quay về place "John" của transition "get1" thể hiện rằng tokens trên place "John" không đổi, tương ứng ngữ nghĩa một người có thể nhận nhiều lần cho tới khi hết thư của mình.
Hình 3.4: Mô hình CPN ví dụ.
Chương 3 Kiến thức nền 24 c o l s e t P E R S O N = S T R I N G ; c o l s e t T E X T = S T R I N G ; c o l s e t M A I L = r e c o r d p : P E R S O N * t : T E XT ;
Hình 3.5: Khai báo các colour sets trong CPN ở Hình 3.4.
Hierarchical Coloured Petri nets
Một mô hình CPN có thể được tổ chức như một tập các mô-đun, giống như trong lập trình CPNs với các mô-đun được gọi làhierarchical Coloured Petri nets (HCPNs) [10] Tại sao lại cần HCPNs? Dưới đây là ba lý do giải thích cho sự cần thiết đó Thứ nhất, sẽ rất khó khăn để vẽ một mô hình CPN của một hệ thống lớn trong một mô hình đơn, bởi vì mô hình CPN này có thể trở nên rất lớn và rối rắm Thứ hai, người mô hình cần sự trừu tượng hoá để có thể tập trung vào một số ít chi tiết ở một thời điểm Các mô-đun CPN có thể được coi như là các hộp đen, nơi mà các người mô hình có thể quên đi các chi tiết bên trong mỗi mô-đun. Điều này giúp chúng ta làm việc trên nhiều mức trừu tượng hoá khác nhau, và vì vậy chúng ta có thể thấy rằng mô hình CPN với các mô-dun cũng giống như một phân cấp các mô hình CPN vậy Đó chính là nguồn gốc của cái tên Hierarchical Coloured Petri nets Thứ ba, các thành phần của hệ thống thường được sử dụng lặp lại Sẽ là không hiệu quả nếu mô hình những thành phần này nhiều lần Thay vào đó, một mô-đun có thể được định nghĩa một lần và sử dụng lặp lại Với phương pháp trên, chúng ta chỉ cần một mô tả để đọc, và cũng chỉ cần một mô tả để thay đổi khi cần. Để minh hoạ việc sử dụng các mô-đun, chúng tôi dùng lại mô hình CPN được giới thiệu trong Mục 3.3 và phát triển một mô hình HCPN tương ứng Trong luận văn này, chúng tôi sẽ cố gắng sử dụng các ví dụ xuyên suốt nhằm tạo sự liền mạch cho người đọc.
Hình 3.6 mô tả mô hình phân cấp của CPN trong Hình 3.4 Một mô-đun mới được đưa ra là "Get Mail" (xem hình 3.7) Mô-đun này thể hiện tác vụ nhận mail và được sử dụng lại ở nhiều nơi trong mô hình chính Mô-đun "Get Mail" có một place đầu vào (place có ký hiệu "In") là "mail", một place đầu ra (place có ký hiệu "Out") là "inbox", và một place đầu vào/ra (place có ký hiệu "In/Out") là
"person" Ở đây có hai substitution transitions là "get1" và "get2" liên kết với mô-đun "Get Mail" Mỗi substitution transition đại diện cho một đối tượng người
Chương 3 Kiến thức nền 25 nhận Người mô hình chỉ cần tập trung vào mô-đun "Get Mail" khi muốn kiểm tra hành vi của hệ thống thay vì phải xem xét cả mô hình lớn như trong Hình 3.4.
Hình 3.6: Mô hình phân cấp của CPN trong Hình 3.4.
Hình 3.7: Mô-đun "Get Mail".
Công cụ CPN Tools
Hiện nay đã có rất nhiều công cụ hỗ trợ CPNs được phát triển như là: CPN Tools [10], Haskell [35], QPN-Tool [36], v.v Trong đó, CPN Tools là công cụ phổ biến nhất trong việc chỉnh sửa, mô phỏng, và phân tích Coloured Petri nets [37].
Sử dụng CPN Tools, chúng ta có thể kiểm tra hành vi của hệ thống được mô
Chương 3 Kiến thức nền 26 hình bằng cách sử dụng mô phỏng, hay kiểm chứng thuộc tính của hệ thống bằng phương pháp Kiểm tra mô hình Giao diện của CPN Tools rất trực quan và dễ sử dụng, cùng với việc hỗ trợ mạnh mẽ chức năng kiểm chứng, đã giúp nó trở thành công cụ phổ biến và nổi tiếng nhất, được sử dụng trong rất nhiều nghiên cứu về Coloured Petri nets [38–40].
CPN Tools hỗ trợ cả mô hình untimed lẫn timed, và cả hierarchical ColouredPetri nets Các chức năng chính của nó bao gồm tạo và chỉnh sửa mô hình CPN,mô phỏng hoạt động của mô hình, sinh không gian trạng thái, và tiến hành kiểm chứng các thuộc tính CPN Tools sử dụng một dạng cấu trúc dữ liệu đặc biệt gọi là đồ thị Strongly Connected Component (SCC) để lưu trữ không gian trạng thái sinh ra từ mô hình CPN Việc kiểm chứng các thuộc tính của mô hình dựa cơ bản trên quá trình duyệt đồ thị SCC CPN Tools cũng hỗ trợ một loại ngôn ngữ luận lý thời gian là ASK-CTL, một mở rộng của ngôn ngữ CTL (Computation TreeLogic), nhằm biểu diễn các thuộc tính ASK-CTL sẽ được giới thiệu chi tiết trongMục 3.6.
Ngôn ngữ ASK-CTL
ASK-CTL [41] là một dạng luận lý CTL (Computation Tree Logic) hữu dụng trong việc kiểm tra các thuộc tính của mô hình Coloured Petri net Không gian trạng thái của một mô hình CPN là một đồ thị chứa thông tin ở cả các đỉnh lẫn các cạnh Trong CTL thông thường thì chúng ta chỉ quan tâm tới thông tin ở các đỉnh; vì vậy, mở rộng tự nhiên của CTL là khả năng thể hiện các thuộc tính thông tin trên cạnh Các tác giả của ASK-CTL đã định nghĩa trong nó hai loại công thức đệ quy hỗ tương với nhau về mặt cú pháp; bao gồm công thức trạng thái (state formulas) và công thức chuyển tiếp (transition formulas) tương ứng với trạng thái và chuyển tiếp trên không gian trạng thái.
Giả sử chúng ta có một CPN N Ngôn ngữ luận lý (ASK-CTL), được diễn dịch trên không gian trạng thái của N, có hai loại công thức: công thức trạng thái và công thức chuyển tiếp Cú pháp của hai loại công thức trên là đệ quy hỗ tương.
Cụng thức trạng thỏi: A = tt | α | ơA | A 1 ∨ A 2 | < B > | EU(A 1 ,A 2 ) | AU(A1,A2) trong đó tt được diễn dịch như là một giá trị hằng đúng, α là một hàm từ tập [M →B] với M là tập các markings còn B là tập các giá trị luận lý, và B một công thức chuyển tiếp EU và AU được giải thích bên dưới.
Cụng thức chuyển tiếp: B = tt | β | ơB | B 1 ∨ B 2 | < A > | EU(B 1 ,B 2 ) | AU(B1,B2) trong đó β là một hàm từ tập [BE → B] với BE là tập các phần tử binding, và A là một công thức trạng thái.
ASK-CTL giống với CTL ngoại trừ toán tử < > Toán tử này cung cấp khả năng chuyển đổi giữa các công thức trạng thái và công thức chuyển tiếp Đây là một toán tử hữu dụng bởi vì trong Kiểm tra mô hình, điểm bắt đầu luôn là một trạng thái.
Ngoài cỏc toỏn tử luận lý ơ và ∨, ASK-CTL cũn cú toỏn tử luận lý thời gian U (until) kết hợp với các định lượng đường đi (path quantifiers) E và A (tương ứng là tồn tại và mọi) Ví dụ, toán tửEU(A1,A2)biểu hiện sự tồn tại một đường đi từ một marking cho trước với thuộc tínhA1 được thoả mãn cho tới khi đạt tới một marking thoả mãn A 2 Tương tự,AU(A 1 ,A 2 ) yêu cầu thuộc tính phải được thoả mãn trên tất cả các đường đi từ một marking cho trước.
Cú pháp của ASK-CTL là tối thiểu, điều này là một ưu điểm, nhất là trong việc định nghĩa ngữ nghĩa hình thức (formal semantics) Để tăng tính dễ đọc của các công thức, các tác giả của ASK-CTL đã bổ sung thêm một số toán tử trung gian Ví dụ, P os(A) có nghĩa là có khả năng đạt tới một trạng thái thoả mãn A,Inv(A)nghĩa là mọi trạng thái có thể đạt tới đều thoả mãnA, vàEv(A)với mọi đường đi sẽ đạt tới trạng thái thoả mãnAsau hữu hạn bước Các công thức trung gian trên đều có thể được biểu diễn lại bởi hai công thức cơ bản EU và AU.
Mô hình mạng cảm ứng không dây bằng Coloured Petri nets
Trong chương này, chúng tôi giả sử rằng người đọc đã làm quen với khái niệm Coloured Petri nets. Để minh hoạ cho hướng tiếp cận mô hình và kiểm chứng WSNs bằng CPNs, chúng tôi sử dụng một WSN, với topology được mô tả trong Hình 4.1, như là một ví dụ xuyên suốt các phần còn lại của bản báo cáo này Mạng cảm ứng không dây trên bao gồm năm cảm biến và năm kênh truyền thuộc về bốn loại thành phần trên một WSN (cảm biến nguồn, cảm biến trung gian, cảm biến đích, và kênh truyền) Đường tròn kép thể hiện một cảm biến nguồn, đường tròn tô đậm thể hiện một cảm biến đích, và đường tròn đơn thể hiện một cảm biến trung gian.
Cạnh có hướng nối hai đường tròn thể hiện kênh truyền giữa hai cảm biến tương ứng Cấu hình thông số của WSN được đặc tả trong Bảng 4.1 Ở đây, chúng tôi cấu hình thông số giống nhau cho các thành phần cùng loại Cảm biến đích thường là cảm biến hoặc máy tính có cấu hình mạnh nên chúng tôi thiết lập kích thước bộ đệm và kích thước hàng đợi của nó giá trị đều là 10000 (rất lớn so với cảm biến nguồn và cảm biến trung gian) Chú ý, hàng "Số lượng gói tin" thể hiện số gói tin tối đa mà cảm biến nguồn có thể sinh ra.
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 29 s 1 s 2 s 3 s 4 s 5
Hình 4.1: Topology của WSN ví dụ.
Bảng 4.1: Cấu hình thông số của WSN trong Hình 4.1.
Mô hình CPN đề xuất
Dựa trên đặc điểm của một WSN, chúng tôi phân biệt hai loại thành phần tổng quát là: cảm biến và kênh truyền Mỗi một loại thành phần trên có hành vi có thể mô hình bằng CPNs.
Chúng tôi chia cảm biến thành ba loại bao gồm cảm biến nguồn, cảm biến trung gian, và cảm biến đích Hành vi của mỗi loại cảm biến như sau:
• Cảm biến nguồn sinh gói tin và gửi những gói tin này đến kênh truyền kết nối với nó.
• Cảm biến trung gian và đích xử lý các gói tin ở nội tại bên trong chúng, cụ thể là chúng chuyển gói tin từ bộ đệm qua hàng đợi.
Một thành phần kênh truyền có các hành vi như sau:
• nhận các gói tin gửi từ các cảm biến
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 30
• gửi (truyền dẫn) gói tin tới các cảm biến
Dựa trên những nội dung trình bày, mô hình dựa trên CPN của một WSN bao gồm bảy mô-đun Hình 4.2 mô tả phân cấp mô-đun của mô hình đề xuất Mô-đun
"Top" là mô-đun chính (không có cạnh tới) Nó được chia ra hai mô-đun con là "Initialisation" và "Processing" Mô-đun "Initialisation" có nhiệm vụ khởi tạo marking ban đầu cho các places của toàn bộ mô hình Mô-đun "Processing" bao gồm bốn mô-đun con là "Generate Packet", "Internal Process", "Receive Packet", và "Transmit Packet" tương ứng với các tác vụ chính của các thành phần trong WSN.
Hình 4.2: Phân cấp mô-đun của mô hình đề xuất.
Hình 4.3 mô tả mô-đun tổng quát nhất là mô-đun "Top" Mô-đun này bao gồm hai substitution transitions "initialise" và "process" (liên kết tương ứng với hai mô-đun "Initialisation" và "Processing"), place "network" (chứa thông tin ban đầu của mạng), và hai places "sensors" và "channels" Khai báo của các colour sets được dùng trong mô-đun "Top" (và trong toàn bộ mô hình) được thể hiện trong Hình 4.4 Các khai báo trên được viết dưới dạng cú pháp của ngôn ngữ CPN-ML [42] Chúng tôi chia các colour sets thành hai loại: (a) colour sets mô tả thông số của các thành phần trong WSN và cấu trúc topology của WSN và (b) colour sets mô tả thông số của toàn bộ WSN.
Chi tiết của các colour sets loại (a) như sau:
• Colour set "SENSOR_TYPE" là một colour set kiểu liệt kê với ba giá trị
"Source", "Intermediate", và "Sink" tương ứng với ba loại cảm biến nguồn, trung gian, và đích.
• Colour set "SENSOR_PARAM" bao gồm tám trường giá trị mô tả thông số thiết lập và trạng thái của một cảm biến Các trường giá trị này là "typ"
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 31
Hình 4.3: Mô-đun tổng quát "Top".
(loại cảm biến), "buf" (số lượng gói tin hiện tại trong bộ đệm), "queue" (số lượng gói tin hiện tại trong hàng đợi), "pmax" (số lượng gói tin tối đa mà một biến nguồn có thể sinh ra – trường giá trị này chỉ có ý nghĩa đối với cảm biến nguồn), "sending_rate" (tốc độ gửi gói tin của một cảm biến),
"processing_rate" (tốc độ xử lý gói tin của một cảm biến), "buf_size" (kích thước bộ đệm – số gói tin tối đa có thể chứa trong bộ đệm), và "queue_size"
(kích thước hàng đợi – số gói tin tối đa có thể chứa trong hàng đợi).
• Colour set "CHANNEL_PARAM" bao gồm ba trường giá trị mô tả thông số thiết lập và trạng thái của một kênh truyền Ba trường giá trị này là
"channel_buf" (số lượng gói tin hiện tại trong bộ đệm của kênh truyền),
"trans_rate" (tốc độ truyền dẫn gói tin), và "channel_buf_size" (kích thước của bộ đệm kênh truyền).
• Colour set "SENSOR" được định nghĩa như là tích của colour set "INT"
(biểu thị định danh của một cảm biến) và "SENSOR_PARAM" (biểu thị trạng thái của một cảm biến).
• Colour set "CHANNEL" đại diện cho một kênh truyền và nó được định nghĩa như là tích của ba colour sets sau: colour set "INT" (biểu thị định danh của cảm biến đi của kênh truyền), colour set "CHANNEL_TO_PARTS" (biểu thị danh sách các thông tin còn lại của kênh truyền), và colour set "INT"
(biểu thị định danh của kênh truyền) Colour set "CHANNEL_TO_PARTS" được định nghĩa như là một danh sách mà mỗi phần tử lại là tích của hai colour sets "CHANNEL_PARAM" (biểu thị thông số và trạng thái của kênh
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 32 truyền) và "INT" (biểu thị định danh của cảm biến đến của kênh truyền).
Lý do tại sao colour set "CHANNEL_TO_PARTS" được định nghĩa như vậy sẽ được giải thích trong các phần tiếp theo Ví dụ, kênh truyền s 1 −s 2 có thể được biểu diễn bởi giá trịchannel được định nghĩa như sau:
T ype[channel] =CHANNEL; channel = (1,[({channel_buf = 0, trans_rate= 3, channel_buf_size= 5},2)],1) Chi tiết các colour sets loại (b) như sau:
• Colour set "CHANNEL_MODE" là một colour set kiểu liệt kê thể hiện chế độ mạng được hỗ trợ trong mô hình đề xuất bao gồm "Unicast" và
"Broadcast" Trong nghiên cứu này, chúng tôi chưa xem xét đến chế độ
• Colour set "NETWORK" bao gồm bốn trường giá trị biểu diễn trạng thái của toàn mạng WSN bao gồm: "channel_mode" (biểu thị chế độ mạng),
"net_sensors" (danh sách các cảm biến), và "net_channels" (danh sách các kênh truyền). c o l s e t SENSOR_TYPE = with S o u r c e | I n t e r m e d i a t e | S i n k ; c o l s e t SENSOR_PARAM = r e c o r d typ :SENSOR_TYPE ∗ b u f : INT ∗ queue : INT ∗ pmax : INT ∗ s e n d i n g _ r a t e : INT ∗ p r o c e s s i n g _ r a t e : INT ∗ b u f _ s i z e : INT ∗ q u e u e _ s i z e : INT ; c o l s e t CHANNEL_PARAM = r e c o r d c h a n n e l _ b u f : INT ∗ t r a n s _ r a t e : INT ∗ c h a n n e l _ b u f _ s i z e
: INT ; c o l s e t SENSOR = p r o d u c t INT ∗ SENSOR_PARAM; c o l s e t CHANNEL_TO_PARTS = l i s t ( p r o d u c t CHANNEL_PARAM ∗ INT ) c o l s e t CHANNEL = p r o d u c t INT ∗ CHANNEL_TO_PARTS ∗ INT ; c o l s e t CHANNEL_MODE = with U n i c a s t | B r o a d c a s t ; c o l s e t NET_SENSORS = l i s t SENSOR ; c o l s e t NET_CHANNELS = l i s t CHANNEL; c o l s e t NETWORK = r e c o r d channel_mode :CHANNEL_MODE ∗ n e t _ s e n s o r s :NET_SENSORS ∗ n e t _ c h a n n e l s : NET_CHANNELS;
Hình 4.4: Khai báo các colour sets dùng trong mô hình CPN đề xuất.
Hình 4.5 thể hiện giá trị của hằng "iniNetwork" được gán là marking khởi tạo của place "network" trong mô-đun "Top" Giá trị này được thiết lập dựa trên các thông số trong Bảng 4.1 Cảm biến đích (s 5 ) được thiết lập kích thước bộ đệm là10000 (buf_size = 10000), kích thước hàng đợi là 10000 (queue_size = 10000)
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 33 vì cảm biến đích thường là máy tính hoặc cảm biến có cấu hình mạnh Khai báo valiniChannelM ode=Broadcast;chỉ ra rằng WSN đang xét ở chế độ broadcast.
Người mô hình có thể dễ dàng thay đổi giá trị này theo yêu cầu của anh ta. val i n i S e n s o r s = [ ( 1 , { typ = S o u r c e , b u f = 0 , queue = 0 , pmax = 6 , s e n d i n g _ r a t e = 3 , p r o c e s s i n g _ r a t e = 5 , b u f _ s i z e = 5 , q u e u e _ s i z e = 5 } ) , ( 2 , { typ = I n t e r m e d i a t e , b u f
= 0 , queue = 0 , pmax = 0 , s e n d i n g _ r a t e = 3 , p r o c e s s i n g _ r a t e = 5 , b u f _ s i z e = 5 , q u e u e _ s i z e = 5 } ) , ( 3 , { typ = I n t e r m e d i a t e , b u f = 0 , queue = 0 , pmax = 0 , s e n d i n g _ r a t e = 3 , p r o c e s s i n g _ r a t e = 5 , b u f _ s i z e = 5 , q u e u e _ s i z e = 5 } ) , ( 4 , { typ = I n t e r m e d i a t e , b u f = 0 , queue = 0 , pmax = 0 , s e n d i n g _ r a t e = 3 , p r o c e s s i n g _ r a t e = 5 , b u f _ s i z e = 5 , q u e u e _ s i z e = 5 } ) , ( 5 , { typ = Sink , b u f = 0 , queue = 0 , pmax = 0 , s e n d i n g _ r a t e = 3 , p r o c e s s i n g _ r a t e = 5 , b u f _ s i z e = 1 0 0 0 0 , q u e u e _ s i z e = 1 0 0 0 0 } ) ] ; val i n i C h a n n e l s = [ ( 1 , [ ( { c h a n n e l _ b u f = 0 , t r a n s _ r a t e = 3 , c h a n n e l _ b u f _ s i z e = 5 } , 2 ) ] , 1 ) , ( 1 , [ ( { c h a n n e l _ b u f = 0 , t r a n s _ r a t e = 3 , c h a n n e l _ b u f _ s i z e = 5 } , 3 ) ] , 2 ) , ( 2 , [ ( { c h a n n e l _ b u f = 0 , t r a n s _ r a t e = 3 , c h a n n e l _ b u f _ s i z e = 5 } , 4 ) ] , 3 ) , ( 3 , [ ( { c h a n n e l _ b u f
= 0 , t r a n s _ r a t e = 3 , c h a n n e l _ b u f _ s i z e = 5 } , 4 ) ] , 4 ) , ( 4 , [ ( { c h a n n e l _ b u f = 0 , t r a n s _ r a t e = 3 , c h a n n e l _ b u f _ s i z e = 5 } , 5 ) ] , 5 ) ] ; val i n i C h a n n e l M o d e = B r o a d c a s t ; val i n i N e t w o r k = { channel_mode = iniChannelMode , n e t _ s e n s o r s = i n i S e n s o r s , n e t _ c h a n n e l s = i n i C h a n n e l s }
Hình 4.5: Giá trị của hằng "iniNetwork" được gán là marking khởi tạo của place "network".
Mô-đun "Initialisation" có mục đích là tách biệt và chuyển đổi thông tin từ place
Mô hình CPN với ngữ nghĩa đồng thời
Trong một WSN, các cảm biến có thể thực hiện các tác vụ đồng thời sau: sinh gói tin (thu thập thông tin), xử lý gói tin nội tại, và gửi gói tin; trong khi các kênh truyền đồng thời nhận và truyền dẫn gói tin [15] Hơn thế nữa, một thành phần
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 42 fun g u a r d _ t r a n s m i t ( to_s_id : INT , c _ l i s t : CHANNEL_TO_PARTS) : BOOL = case c _ l i s t o f n i l => f a l s e
| head : : t a i l => i f (#2 head = to_s_id ) then (#c h a n n e l _ b u f (#1 head ) > 0 ) e l s e g u a r d _ t r a n s m i t ( to_s_id , t a i l ) fun d e c r e a s e _ c h a n n e l _ b u f ( c : CHANNEL_PARAM) : CHANNEL_PARAM = l e t val n _ t r a n s m i t t e d = min(#c h a n n e l _ b u f c ,# t r a n s _ r a t e c ) in
{ c h a n n e l _ b u f = #c h a n n e l _ b u f c − n _ t r a n s m i t t e d , t r a n s _ r a t e = #t r a n s _ r a t e c , c h a n n e l _ b u f _ s i z e = #c h a n n e l _ b u f _ s i z e c } end ; fun t r a n s m i t _ f r o m ( to_s_id : INT , c _ l i s t : CHANNEL_TO_PARTS) : CHANNEL_TO_PARTS = case c _ l i s t o f n i l => n i l
| head : : t a i l => i f (#2 head = to_s_id ) then ( d e c r e a s e _ c h a n n e l _ b u f (#1 head ) ,#2 head ) : : t a i l e l s e head : : t r a n s m i t _ f r o m ( to_s_id , t a i l ) fun i n c r e a s e _ s e n s o r _ b u f ( s_param : SENSOR_PARAM, c : CHANNEL_PARAM) : SENSOR_PARAM = l e t val n _ t r a n s m i t t e d = min(#c h a n n e l _ b u f c ,# t r a n s _ r a t e c ) in
{ typ = #typ s_param , b u f = #b u f s_param + n _ t r a n s m i t t e d , queue = #queue s_param , pmax = #pmax s_param , s e n d i n g _ r a t e = #s e n d i n g _ r a t e s_param , p r o c e s s i n g _ r a t e = # p r o c e s s i n g _ r a t e s_param , b u f _ s i z e = #b u f _ s i z e s_param , q u e u e _ s i z e = #q u e u e _ s i z e s_param} end ; fun t r a n s m i t _ t o ( to_s_id : INT , s_param : SENSOR_PARAM, c _ l i s t : CHANNEL_TO_PARTS) : SENSOR_PARAM = case c _ l i s t o f n i l => s_param
| head : : t a i l => i f (#2 head = to_s_id ) then i n c r e a s e _ s e n s o r _ b u f ( s_param ,#1 head ) e l s e head : : t r a n s m i t _ t o ( to_s_id , s_param , t a i l )
Hình 4.20: Khai báo các hàm dùng trong mô-đun "Transmit Packet".
(cảm biến hoặc kênh truyền) trong WSN có thể hoạt động độc lập với các thành phần khác Vì vậy, các tác vụ của cảm biến và kênh truyền trong một WSN nên được thực thi đồng thời, tức là cùng được thực thi tại một một thời điểm Điều này được gọi là tính đồng thời của WSNs.
Như đã thảo luận trong Chương 1, mô hình hướng CPN với ngữ nghĩa đồng thời là cần thiết để mô tả WSNs trong thực tế Bởi vì một binding element đại diện cho một tác vụ của một thành phần trong WSN, một số binding elements khả hoạt động của mô hình CPN tại một markingM bất kỳ cần được xảy ra đồng thời Về mặt lý thuyết, mô hình CPN thể hiện tính đồng thời bằng cách định nghĩa một ngữ nghĩa mới gọi là ngữ nghĩa đồng thời (concurrent semantic) cho phép thực thi một số binding elements khả hoạt động một cách đồng thời [10] Bộ các binding elements khả hoạt động có thể xảy ra đồng thời được gọi là một step Các binding elements trong một step phải đôi một không được xung đột (conflict) với nhau Nhưng về mặt hiện thực, công cụ CPN Tools cũng như các công cụ Petri nets khác đều không hiện thực ngữ nghĩa đồng thời Thay vào đó, chúng hiện thực ngữ nghĩa tuần tự (sequential semantic) – có nghĩa là chỉ có một binding element
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 43 trong số các binding elements khả hoạt động ở một marking có thể được thực thi và sự lựa chọn binding element nào để thực thi là bất định Cách hiện thực trên dễ dàng hơn so với việc hiện thực ngữ nghĩa đồng thời, và trong bài toán đạt tới được (reachability) thì kết quả giữa hai ngữ nghĩa là tương đương (một marking đạt tới được theo ngữ nghĩa đồng thời thì cũng sẽ đạt tới được theo ngữ nghĩa tuần tự) Tuy nhiên, không gian trạng thái của mô hình theo ngữ nghĩa tuần tự có quá nhiều trạng thái trung gian so với mô hình theo ngữ nghĩa đồng thời Nhận định này phù hợp với các kết quả được trình bày trong [15] Hơn thế nữa, trong bài toán phát hiện tắc nghẽn, sử dụng ngữ nghĩa tuần tự có thể dẫn tới những kết quả giả tạo không phù hợp với thực tế của WSNs Xem chi tiết hơn ví dụ minh hoạ trong Chương 5.
Chúng tôi đề xuất một ngữ nghĩa đồng thời cho mô hình CPN để thể hiện tính đồng thời của WSNs Tiếp theo, chúng tôi sẽ trình bày định nghĩa hình thức của ngữ nghĩa đồng thời này.
Cho EBE ={ebe i } (i= 1, n) là tập tất cả binding elements khả hoạt động ở marking M của mô hình CPN (đã trình bày trong Mục 4.1, tạm gọi là mô hình tuần tự) Mỗi một binding element khả hoạt động đại diện cho một tác vụ có thể xảy ra của một thành phần trong WSN Bởi vì các thành phần của WSN có thể vận hành một cách đồng thời, một số binding elements của EBE có thể xảy ra đồng thời Tuy nhiên, ở chế độ unicast, một cảm biến phải chọn chỉ một kênh truyền trong số các kênh truyền kết nối tới nó để gửi gói tin đi Tương ứng, các binding elements khả hoạt động của transition "receive packet" trong mô-đun
"Receive Packet" có cùng một cảm biến đi thì đôi một không thể thực thi đồng thời Vì vậy, chúng tôi định nghĩa một tập hợp gọi là unicast-set thể hiện ràng buộc trên của chế độ unicast unicast-set được định nghĩa trong Định nghĩa 4.1. Định nghĩa 4.1 (unicast-set) Một unicast-set U là một tập tất cả binding ele- ments khả hoạt động (enabled) {(t 1 , b 1 ), ,(t m , b m )};m≥1 thoả mãn:
1 U ⊆EBE;2 t i ="receive packet" với∀i∈ {1,2, , m};3 b i (f rom_s_id) = b j (f rom_s_id) with ∀i, j ∈ {1,2, , m};4 vàU là một tập loại trừ lẫn nhau, tức là việc xảy ra của bất kỳ tập con các binding elements U 0 ⊂U nào đều dẫn tới một marking mà ở đó một số binding elements (t j , b j )∈/ U 0 là không khả hoạt động (disabled).
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 44
Chúng tôi chia EBE thành hai nhóm Nhóm thứ nhất bao gồm tất cả tập unicast-sets rời nhau U 1 , ,U m (m ≥ 0) của EBE, có nghĩa là U i ∩U j = ∅ với
∀i, j ∈ {1, , m};i 6= j Nhóm thứ hai được gọi là N C bao gồm tất cả binding elements còn lại của EBE, tức là N C = EBE \(
U i ) N C là một tập không xung đột và tất cả binding elements khả hoạt động của nó có thể xảy ra đồng thời Tiếp theo chúng tôi định nghĩa khái niệm w-step (phân biệt với khái niệm step trong lý thuyết CPNs) như trong Định nghĩa 4.2. Định nghĩa 4.2(w-step) Mộtw-stepW của mộtEBE là một tập tất cả binding elements khả hoạt động thoả mãn:
(t i , b i ))với(t i , b i )∈U i Tập tất cả w-steps có thể có của mộtEBE được ký hiệu là W S Số lượng phần tử của W S được xác định bởi:
Ngữ nghĩa đồng thời của chúng tôi dựa trên Định lý 4.1 và Định lý 4.2. Định lý 4.1 Cho Y là một w-step ở marking M.Y là một tập không xung đột, tức là các phần tử củaY đôi một không xung đột.
Chứng minh Cho (t i , b i ) và (t j , b j ) là hai binding elements khả hoạt động phân biệt của Y Không mất tính tổng quát, giả sử (t i , b i ) xảy ra trước (t j , b j ) và đạt tới marking mới M 1 Trong mô hình tuần tự, khi một binding element xảy ra, các tokens không bị mất đi mà chỉ làm thay đổi giá trị bên trong của chúng Vì vậy, (t j , b j )vẫn thỏa mãn ràng buộc về tài nguyên (tokens).
Cho to và to 1 là các tokens của place "sensors" ở các markings tương ứng M và M 1 , sao cho to −−−→ (t i ,b i ) to 1 Xem xét điều kiện guard, nếu (t j , b j ) không kết với to 1 thì (t j , b j ) vẫn khả hoạt động (enabled), ngược lại tất cả các trường hợp có thể xảy ra là:
• t i ="generate packet" hoặct i ="internal process" vàt j ="receive packet".
Bởi vì (t j , b j ) là khả hoạt động, nên G(t j )hb j i M =true tức là(#queue to >
0) = true Do (#queue to 1 ) = (#queue to) + inc với inc > 0, ta có(#queue to 0 >0) =true tức làG(t j )hb j iM 1 =true.
Chương 4 Mô hình mạng cảm ứng không dây bằng Coloured Petri nets 45
• t i = "receive packet" và t j = "transmit packet" Ta có, G(t j )hb j i M = true tức là(#channel_buf to > 0) =true.(#channel_buf to 1 ) = (#channel_buf to)+ incvới inc >0, do đó(#channel_buf to 1 >0) =truetức là G(t j )hb j iM 1 true.
• t i ="transmit packet" và t j ="internal process" Ta có, G(t j )hb j iM =true tức là (#buf to > 0) = true Bởi vì (#buf to 1 ) = (#buf to) + inc với inc >0, ta có (#buf to 1 >0) =true tức là G(t j )hb j i M 1 =true.
Tất cả các trường hợp vừa xét trên đều chỉ ra rằng việc xảy ra của binding element(t i , b i )không làm ảnh hưởng đến tính khả hoạt động của binding element (t j , b j ) Từ đó, chúng ta có thể kết luận rằng Y là tập không xung đột. Định lý 4.2 Cho Y là một w-step ở marking M Các binding elements củaY có thể xảy ra một cách tuần tự (từng cái một) theo bất kỳ thứ tự nào và marking cuối cùng đạt tới là duy nhất.
Tìm kiếm tắc nghẽn
Để dễ dàng tìm kiếm tắc nghẽn, chúng tôi điều chỉnh mô hình tuần tự và mô hình đồng thời Chúng tôi thêm vào mỗi mô hình một transition tên là "congestion".
Transition này lấy danh sách tất cả cảm biến và kênh truyền tương ứng từ hai places "sensors" and "channels" Sau đó nó xử lý trên thông tin có được để lấy về danh sách các cảm biến và kênh truyền xảy ra nghẽn – nếu danh sách lấy về là rỗng thì tắc nghẽn không xảy ra, ngược lại tức là có tắc nghẽn xảy ra Một cảm biến (kênh truyền) là tắc nghẽn nếu bộ đệm của nó bị quá tải (có nghĩa là số lượng gói tin hiện tại trong bộ đệm lớn hơn kích thước của bộ đệm) Trong nghiên cứu này, chúng tôi chỉ tập trung vào việc xác định một WSN có xảy ra tắc nghẽn hay không Vì vậy, khi một điểm nghẽn được tìm thấy, toàn bộ mô hình sẽ
Chương 5 Phát hiện tắc nghẽn trên mạng cảm ứng không dây 52 ngừng hoạt động Chúng tôi hiện thực giả định trên bằng cách cấu hình mô hình CPN thoả mãn khi transition "congestion" xảy ra ở đây sẽ không có bất kỳ một binding elements là khả hoạt động ở marking mới (marking mới khi đó là marking
"chết") Khi đó, vấn đề phát hiện tắc nghẽn được rút giảm về vấn đề reachability – cụ thể là vấn đề reachability của transition "congestion".
Chúng tôi sử dụng mã dưới dạng ngôn ngữ ASK-CTL như trong Hình 5.1 để kiểm chứng tính đạt tới được của transiton "congestion" trên hai mô hình (tuần tự và đồng thời) Quá trình kiểm chứng được thực hiện dựa trên công cụ ASK-CTL [43] là một công cụ kiểm tra mô hình CTL được xây dựng trong CPN Tools Dòng 1 trong Hình 5.1 là câu lệnh kích hoạt công cụ ASK-CTL Dòng 3 có nhiệm vụ giản lược thông tin trên các cạnh của không gian trạng thái Ở đây chúng ta chỉ cần quan tâm đến tên của transition thực thi trên mỗi cạnh Các dòng 5 - 11 là hàmCongestion có chức năng tìm kiếm tắc nghẽn Chức năng của hàm Congestion được thể hiện thông qua việc kiểm chứng công thức ASK-CTL CongestionASKCT Lf ormula.
Hình 5.1: Mã ASK-CTL dùng để phát hiện tắc nghẽn.
Hình 5.2a trình bày kết quả tìm kiếm tắc nghẽn trên mô hình đồng thời của WSN trong Hình 4.1 ở chế độ broadcast Kết quả thu được bao gồm một giá trị luận lý thể hiện tắc nghẽn có xảy ra hay không (it=f alsechỉ ra rằng có tắc nghẽn trong khiit =true chỉ ra là không có tắc nghẽn), định danh của cạnh chuyển tới trạng thái nghẽn tức cạnh tương ứng với transition "congestion" (violate= 91), và số lượng trạng thái đã duyệt qua trên không gian trạng thái (visitedStates= 91). Ở đây, một trạng thái được duyệt qua được hiểu là một cạnh được duyệt qua.
Từ kết quả phát hiện tắc nghẽn ban đầu như trên, chúng tôi tiếp tục sử dụng các hàm sẵn có của CPN Tools để lấy thêm thông tin hữu ích hơn Hình 5.2b mô tả kết quả chỉ ra rằng tắc nghẽn xảy ra ở cảm biếns 4
Chương 5 Phát hiện tắc nghẽn trên mạng cảm ứng không dây 53
Hình 5.2: Kết quả phát hiện tắc nghẽn trên mô hình đồng thời: (A) Kết quả ban đầu (B) Kết quả chi tiết hơn.
Tương tự, Hình 5.3a mô tả kết quả tìm kiếm nghẽn trên mô hình tuần tự của WSN trong Hình 4.1 ở chế độ broadcast Hình 5.3b chỉ ra rằng tắc nghẽn xảy ra ở kênh truyền s 1 −s 2 và kênh truyềns 1 −s 3
Hình 5.3: Kết quả phát hiện tắc nghẽn trên mô hình tuần tự: (A) Kết quả ban đầu (B) Kết quả chi tiết hơn.
Chúng ta hãy cùng xem xét hai kết quả phát hiện tắc nghẽn trên hai mô hình tuần tự và đồng thời Kết quả phát hiện nghẽn ở mô hình tuần tự là giả (không phù hợp trong thực tế) Lý do vì không gian trạng thái của mô hình tuần tự có quá nhiều trạng thái trung gian, những trạng thái trung gian này không thể hiện trạng thái thực của WSN Hình 5.4 mô tả không gian trạng thái một phần và cô đọng của mô hình tuần tự Một marking (node) được đại diện bởi một hình chữ nhật tròn góc Nội dung chứa bên trong mỗi node bao gồm (theo thứ tự từ trái sang phải): hàng đợi của cảm biến s 1 , bộ đệm của kênh truyền s 1 −s 2 , bộ đệm của kênh truyền s 1 −s 3 , bộ đệm của cảm biếns 2 , hàng đợi của cảm biến s 2 , bộ đệm của cảm biếns 3 , hàng đợi của cảm biến s 3 , bộ đệm của kênh truyền s 2 −s 4 ,bộ đệm của kênh truyềns 3 −s 4 , bộ đệm của cảm biếns 4 Node được tô kín bằng màu xám thể hiện một trạng thái mà ở đó tắc nghẽn xảy ra Trong khi đó, kết quả
Chương 5 Phát hiện tắc nghẽn trên mạng cảm ứng không dây 54 phát hiện nghẽn của mô hình đồng thời hoàn toàn khớp với hành vi thực tế của WSN Hình Figure 5.5 mô tả không gian trạng thái một phần và cô đọng của mô hình đồng thời Nội dung chứa bên trong mỗi node bao gồm (theo thứ tự từ trái sáng phải): hàng đợi của cảm biến s 1 , bộ đệm của kênh truyền s 1 −s 2 , bộ đệm của kênh truyền s 1 −s 3 , bộ đệm của cảm biếns 2 , hàng đợi của cảm biến s 2 , bộ đệm của cảm biếns 3 , hàng đợi của cảm biến s 3 , bộ đệm của kênh truyền s 2 −s 4 , bộ đệm của kênh truyềns 3 −s 4 , bộ đệm của cảm biếns 4 Node được tô kín bằng màu xám thể hiện một trạng thái mà ở đó tắc nghẽn xảy ra.
Hình 5.4: Không gian trạng thái một phần và cô đọng của mô hình tuần tự.
Hình 5.5:Không gian trạng thái một phần và cô đọng của mô hình đồng thời.
Sinh phản ví dụ
Phản ví dụ (counter example) là một khái niệm cơ bản trong Kiểm tra mô hình.
Nó thể hiện một số thông tin giúp cho việc chẩn đoán lỗi Trong ngữ cảnh phát hiện nghẽn, chúng ta xây dựng một phản ví dụ ngắn nhất – có nghĩa là tìm một chuỗi liên tiếp các sự kiện (firing transition) xảy ra ngắn nhất từ một trạng thái
Chương 5 Phát hiện tắc nghẽn trên mạng cảm ứng không dây 55
(marking) ban đầu đến một marking chứa một cạnh ra mà ở đó điều kiện luận lý không được thoả mãn Điều kiện luận lý trên được định nghĩa là không có sự xảy ra của transition "congestion".
Chúng tôi sử dụng một số hàm sẵn có của công cụ CPN Tools thao tác trên không gian trạng thái để sinh phản ví dụ Một tính năng của công cụ CPN Tools, gọi là String Representation Option [44], được sử dụng để hiển thị phản ví dụ ở dạng tiện lợi nhất Hình 5.6 mô tả một phản ví dụ của mô hình đồng thời trong Mục 5.1 khi phát hiện tắc nghẽn xảy ra Mỗi dòng của kết quả thể hiện danh sách thông tin các tác vụ thực sự xảy ra đồng thời tại một thời điểm, mỗi tác vụ cách nhau bằng dấu phẩy Thông tin của một tác vụ bao gồm tên của transition (tương ứng với tên tác vụ) và thành phần của WSN thực thi tác vụ đó Ví dụ, generate(s1)biểu thị rằng cảm biến s 1 thực thi tác vụ sinh gói tin, và transmit(s1−s2) biểu thị rằng kênh truyền s 1 −s 2 thực thi tác vụ truyền dẫn gói tin tới cảm biến s 2
Hình 5.6: Phản ví dụ của mô hình đồng thời ở Mục 5.1.
Kết quả thí nghiệm
Chúng tôi tiến hành thí nghiệm trên một tập các WSNs với số lượng cảm biến, kênh truyền (thể hiện hiện topology) khác nhau Cách thức thí nghiệm cụ thể như sau Đầu tiên, xây dựng các mô hình đồng thời cho các WSNs Các WSNs có hai tham số biến đổi là số lượng cảm biến và số lượng gói tin Sau đó tiến hành phát hiện tắc nghẽn trên mô hình đồng thời này Trong quá trình kiểm chứng để phát hiện tắc nghẽn, số trạng thái phải duyệt qua cũng sẽ được lưu lại Ngoài ra, chúng tôi cũng tính toán kích thước của không gian trạng thái đầy đủ sinh ra của mỗi mô hình Bảng 6.1 biểu thị cấu hình thông số chung cho các WSNs dùng trong thí nghiệm.
Bảng 6.1: Cấu hình thông số chung cho các WSNs dùng trong thí nghiệm.
Bảng 6.2 trình bày kết quả thí nghiệm phát hiện tắc nghẽn trên mô hình đồng thời của WSNs Các WSNs được xem xét ở chế độ broadcast Các cột #sensor và #packets thể hiện số lượng cảm biến (trong khoảng từ 1 tới 100) và số lượng gói tin tương ứng của một WSN; các cột #nodes and #arcs thể hiện số lượng nodes và cạnh của không gian trạng thái; cột result thể hiện kết quả phát hiện nghẽn (true chỉ ra không có tắc nghẽn trong khi f alse chỉ ra có tắc nghẽn); và
Chương 6 Kết quả thí nghiệm 57
#visitedarcsthể hiện số lượng số lượng cạnh phải duyệt qua trong quá trình kiểm chứng.
Từ kết quả thí nghiệm, chúng tôi rút ra một số nhận xét như sau Đầu tiên, số lượng nodes của không gian trạng thái bằng với số lượng cạnh Điều này hoàn toàn hợp lý bởi vì mô hình đồng thời là tất định ở chế độ broadcast (tức là mỗi node chỉ có 1 cạnh ra) Thứ hai, khi số lượng gói tin tăng lên (tải dữ liệu tăng lên) làm cho tắc nghẽn xảy ra sớm hơn (số lượng cạnh phải duyệt qua giảm xuống).
Nhận xét trên phù hợp với kết quả được nêu ra trong [23].
Hiện tại, số lượng cảm biến của một WSN có thể tiến hành phân tích vẫn bị giới hạn ở 100, nhưng nếu kết hợp với các kỹ thuật rút giảm không gian trạng thái thích hợp được đề nghị trong Chương 7, chúng tôi có thể tăng đáng kể số lượng cảm biến Điều này mở ra một hướng phát triển hứa hẹn trong công việc tương lai.
Chương 6 Kết quả thí nghiệm 58
Bảng 6.2: Kết quả thí nghiệm phát hiện tắc nghẽn trên mô hình đồng thời của WSNs.
Mạng Không gian trạng thái Phát hiện tắc nghẽn
#sensors #packets #nodes #arcs result #visited arcs
Modeling and Analysing Boolean Networks by Coloured Petri Nets
Introduction
Boolean networks (BNs) [1] are frequently used to model the dynamics of biological processes such as gene regulation or signal transduction An important long-term behavior that can be obtained from such models is the minimal trap sets of states which are also called attractors [2].
While Boolean networks have been applied successfully in modeling real world regulatory networks [2], they have a num- ber of shortcomings such as the explosion of Boolean states, the lack of supporting tools, and not coping well with incon- sistency and incompleteness in real data [3] To overcome these problems, many approaches [1, 3], based on Petri nets, have been proposed However, even those approaches also suffers from various drawbacks when one considers finding attractors In [3], some concerns are raised about the issues of consuming resources for the Boolean functions transfor- mation, the overlarge size and high complexity of the previ- ously proposed models and the lack of supporting tools for analysing state space to detect complex attractor In addi- tion, dividing two different models for synchronous and asyn- chronous behaviours of the same BN also introduces inconve- nience for further analysis.
This urges us to consider other advanced kinds of Petri nets, Coloured Petri nets (CPNs) [4] CPNs provide pa- rameterized and compact representations of complex bio- logical systems and have been applied widely for biological modeling [5] Backed by a formal mathematical foundation, CPNs offers an effective means to model and analyse Boolean networks, which can overcome the drawbacks of other ap- proaches In this paper, we discuss using CPNs for modeling of Boolean networks and detection of attractors on the CPN- modelled BN.
Recently, variety of tools 1 have already been developed to provide modeling and analysing Coloured Petri nets CPNTools 2 is the most popular tool among them It can inves- tigate the behavior of the modeled system using simulation,and verify properties by means of state space methods and model checking Therefore, we use CPN Tools to implement our approach.
Preliminaries
In a Boolean network, each gene is represented as a Boolean variable, i.e a gene can be either active (1) or inactive (0).
There are three main types of BNs [2]:
Synchronous Boolean networks (SBNs) consist of a set of Boolean variables X = { X 1 , , X n } and a set of transition functions F = { f 1 , , f n } , one for each variable These tran- sition functions map an input of the Boolean variables in
X to a Boolean value (0 or 1) Let Boolean vector x(t) =
(x 1 (t), , x n (t)) be the state of the network at time t Then, the successor state x(t+1) is defined as x(t+1) = T sync (x(t)) with T sync = (T 1 , , T n ) and T i (x) = f i (x), i.e all functions are applied simultaneously.
Asynchronous Boolean networks (ABNs) also consist of components as SBNs, but at each point of time t, only one function f i ∗ ∈ F is chosen randomly, and the correspond- ing variable is updated The successor state is calculated by applying the chosen function to the current state, i.e. x(t + 1) = T async (i ∗ ) (x(t)) where the asynchronous state transi- tion function T async (i ∗ ) = (T 1 (i ∗ ) , , T n (i ∗ ) ) is defined as follows:
Probabilistic Boolean networks (PBNs) allow having more than one transition function per variable in X Each function in F has a probability of being chosen Formally,
{ (f n1 , p n1 ), , (f nk n , p nk n ) }} where k i is the number of alternative transition functions for variable X i , and p ij is the probability that function f ij is chosen for variable i, with P k i j=1 p ij = 1 Let f ij ∗ i be chosen function of variable X i The successor state is calculated by applying a synchronous update: x(t + 1) = T prob (N) (x(t)) where
1 https://www.informatik.uni-hamburg.de/TGI/PetriNets/tools/complete_db. html 2 http://cpntools.org/
The 31st International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC 2016)
Figure 1: (a) A simple cycle (b) A complex attractor (c) A (c) steady-state attractor.
In BNs, identifying recurrent cycles of states so-called at- tractors [2] is a particular interest Attractors are linked to phenotypes The analysis of attractors could provide new in- sights into the origins of cancer There are three well-known types of attractors:
Simple cycles are loops of states, and any state in a cycle is reached again after a fixed number of successive state tran- sitions (the cycle length) Formally, x(t) = x(t+l) for a cycle length l A simple cycle is depicted in Panel (a) of Figure 1.
Complex or loose attractors are formed by overlapping sim- ple cycles A complex attractor is a set of states in which all state transitions lead to another state in the set, and each state can reach to all another states in the set Panel (b) of Figure 1 shows an example of a complex attractor A simple cycle is a special complex attractor.
Steady-state attractors are attractors that consist of only one state All transitions from this state result in the state itself Panel (c) of Figure 1 shows a example of a steady-state attractor.
Coloured Petri nets (CPNs) [4, 5] are a modeling language which combines the strengths of Petri nets with the expressive power of functional programming languages In CPNs, tokens are distinguished by the "color" instead of only the "black" one Moreover, arc expressions, an extended version of arc weights, specify which tokens can flow over the arcs Guards that are Boolean expressions define additional constraints on enabling transitions.
Let EXP [5] be the set of expressions that comply with a predefined syntax, which are used as arc expressions, guards, etc Before expressions are evaluated to values, the variables in the expressions must get assigned values, which is called binding Besides, a multiset is a set in which there can be several occurrences of the same token Let S M S be the set of all multisets over S There is the formal definition of CPNs.
Definition 1: Let a tuple h P, T, F, Σ, c, g, f, m 0 i be a Coloured Petri net where:
• P is a finite, nonempty set of places.
• T is a finite, nonempty set of transitions.
• F is a finite set of directed arcs.
• Σ is a finite set of color sets Each color set is a finite set.
• c : P → Σ is a color function that assigns to each place p ∈ P a color set c(p) ∈ Σ.
• g : T → EXP is a guard function that assigns to each transition t ∈ T a guard expression of the Boolean type.
• f : F → EXP is an arc function that assigns to each arc a ∈ F an arc expression of a multiset type c(p) M S , where p is the place connected to the arc a.
• m 0 : P ∈ EXP is an initialization function that assigns to each place p ∈ P an initialization expression of a multiset type c(p) M S
Modeling Boolean Networks by
3.1 Modeling Synchronous and Asynchronous Boolean Networks
In order to illustrate our approach, we use 3-node sub- network [6] as a straight case study Figure 2 depicts 3-node sub-network formed by the nodes (genes) CIS, Ca 2+ c , and Ca 2+ ATPase with the corresponding state transition graph obtained from the asynchronous model The binary numbers in each node represent the states of the 3-node system in the order CIS, Ca 2+ c , and Ca 2+ ATPase, and a directed edge between two states indicates that the second state can be ob- tained from the first after a time step The four nodes whose symbols have a grey background form a strongly connected component (SCC) of the state transition graph The node whose symbols have a red border form a steady state of the state transition graph.
Figure 2: 3-node sub-network (a) The Boolean functions (b) governing the state of the nodes in the sub-network (b) The state transition graph of the network given in (a) obtained from the asynchronous model.
The proposed approach to modeling a BN by CPNs can be summarized by the following procedures.
Figure 3: Coloured Petri net model of 3-node sub-network.
Net components mapping: It maps genes to places and boolean functions to transitions Place s1, s2, and s3 stand
440 for gene CIS, Ca 2+ c , and Ca 2+ ATPase respectively Transition t1, t2, and t3 stand for boolean function f1, f2, and f3 respectively There is a transition t in the net, which stands for all boolean function (synchronous case).
Listing 1: Declarations of CPN of 3-nodes sub-network.
Standard priorities val BN_TYPE = 0;
Variable declarations var cis: BOOL ; var cac: BOOL ; var caatp : BOOL ; var cis1 : BOOL ; var cac1 : BOOL ; var caatp1 : BOOL ;
Function declarations fun f1(cis ,cac , caatp ) = cac fun f2(cis ,cac , caatp ) = cis andalso (not caatp ) fun f3(cis ,cac , caatp ) = cac
Arcs identification: It identifies arcs between places and transitions based on behaviours of the BN See Figure 3 for more details.
Defining declarations: It defines net declarations, e.g., color sets, variables, constants, and functions Variable cis, cac, and caatp stand for gene CIS, Ca 2+ c , and Ca 2+ ATPase respectively Variable cis1, cac1, and caatp1 are used in output arc expressions Function declarations represent boolean functions of 3-node sub-network in syntax of CPN- ML [7] Herein, we declare a constant BN_TYPE in Stan- dard priorities segment This constant denotes whether type of Boolean Network is synchronous (BN_TYPE = 1) or asyn- chronous (BN_TYPE = 0).
Color assignment: It assigns color sets to places and ex- pressions to arcs Each place, which corresponding with a gene, is assigned to color set BOOL Expressions of input arcs are assigned to variables corresponding with connected nodes, e.g., expression of input arc from s1 to t is cis (stands for gene CIS) Assigning of expressions of output arcs is per- formed in the same way, e.g., expression of output arc from t to s1 is cis1.
Defining guards: It defines guards for transitions Each transition ti (i = 1,2,3) is enabled iff the BN is asyn- chronous Thus all transition ti are defined with guard ex- pression [BN_TYPE = 0] In the same way, transition t is defined with guard expression [BN_TYPE = 1].
Code segment implementation: It implements code seg- ment for transitions Output variables of code segment are variables on output arcs of the transition.
Initial marking configuration: It defines initial marking of the CPN model to generate all possible initial state of the modeled BN (a BN has n genes, there are 2 n possible states).
To obtain it, we add some places and transitions to the model as place sou1, sou2, sou3, and control; transition gen and assign multisets into the added places.
Finally, the full CPN model of 3-node sub-network is de- picted in Figure 3 Both synchronous and asynchronous BN are expressed in one model Evidently, the given model is more compact and succinct than the models in [1,3].
In order to illustrate our approach, let us consider an example PBN (see Example 1 in [8]).
Example 1: Suppose we are given a PBN consisting of three genes V = (x 1 , x 2 , x 3 ) and the function sets F =
Table 1: The truth table of the PBN in Example 1. x 1 x 2 x 3 f 1 (1) f 2 (1) f 1 (2) f 1 (3) f 2 (3)
F 3 = { f 1 (3) , f 2 (3) } Let the functions and their probabilities be given by Table 1.
We apply the proposed modeling method of SBNs and ABNs to model PBNs Figure 4 depicts a proposed CPN model for the PBN of Example 1 In this model, places g1, g2, g3 stand for gene x 1 , x 2 , x 3 ; place s1, s2, s3 stand for function sets of gene x 1 , x 2 , x 3 Place sou1, sou2, sou3 are used to generate all possible initial markings Variable listFunction stands for the list of functions and variable rateFunction stands for the list of corresponding probabil- ities Variable prob is used to store the probability of each combination of transition functions.
Figure 4: Coloured Petri net model of PBN in Example 1.
Variable prob will appear in arcs of the state space (SCC- graph) Therefore, the state space is like a Markov chain.
Then we can calculate the state transition matrix of the PBN.
This matrix will be use for the analysis phase.
Attractor detection using CPN Tools
4.1 Attractor detection in Synchronous and Asynchronous Boolean Networks
There are two basic kinds of attractors needed to be de- tected on a BN, which are steady-state attractor and com- plex attractor Steady-state attractors consist of only one state and can be detected by verifying the CTL formula of
AG(s → AXs) A complex attractor is a set of states in which all state transitions lead to another state in the set, and each state in the set can be reached from all other states in the set A complex attractor is equivalent to a Strongly Connected Component (SCC) with no outgoing arcs, which can be detected by some built-in functions supported by the CPN Tools.
Note: all detecting functions are followed the syntax of CPN-ML code Before evaluating these CPN-ML codes, we must enter State Space Tool and calculate the SCC-graph.
The evaluation of CPN-ML code is refereed in [9].
4.2 Attractor detection in Probabilistic Boolean Networks
In a state transition matrix, the rows and the columns corre- spond to the initial states and successor states respectively.
Each entry of the matrix is the probability of a state tran- sition In the CPN model (see Figure 4), state transition matrix A is calculated using the appropriate code segment implementation depicted in Listing 2.
Listing 2: State transition matrix calculation. fun getRate (i): real = case ( ArcToBE i) of
| _ => 0.0 fun getSumRate ( arcs ): real = case arcs of nil => 0.0
| head :: tail => getRate ( head ) + getSumRate ( tail ) fun getTransitionElem (row , col ): real = getSumRate ( Arcs (row + 1, col + 1)) fun getTransitionColRe (col , n, i): real list = if (i > n) then [] else getTransitionElem (i, col) :: getTransitionColRe (col , n, i + 1) fun getTransitionCol (col , n): real list
= getTransitionColRe (col , n, 1) fun getTransitionMatrixRe (n, i) : ( real list ) list = if (i > n) then [] else getTransitionCol (i, n) :: getTransitionMatrixRe (n, i + 1) fun getTransitionMatrix (n): ( real list ) list
We introduce a vector D t to hold the probability of each state to be reached after t transitions (number of iterations) and the probabilities in D t sum up to one The initial vec- tor D 0 determines the probability of a state to be chosen as a initial state Usually, all states have equal initial proba- bilities (in this case, D 0 = [ 1 8 , , 1 8 ]) We can compute the probabilities after the next transition by: D t+1 = D t × A.
If the difference between D t and D t+1 is sufficiently small (passed under threshold epsilon), then the computation can be stopped Let t ∗ be the stopped iteration.
The states in D t ∗ that have a probability greater than zero after many iterations are called absorbing or irreducible.
The absorbing states correspond to steady-state attractors, and the irreducible states correspond to complex attractors in Boolean networks.
We define two kinds of attractors with their probabilities as follows Probabilistic steady-state attractor is a tuple (s, p), where s is a state which has at least one transition from it result in the state itself and has a probability p (in D t ∗ ) being greater than zero Probabilistic complex attractor is a tuple (l, p), where l is a list of states (e.g l = [l 1 , , l k ]) and l is a SCC-node in the SCC-graph of the model p is calculated by the following equation This equation is followed the proba- bility addition rule, since irreducible probability of each node in a SCC-node is independent. p = X k i=1
By the previous discussion, probabilistic attractors can be detected based on D t ∗ and the SCC-graph.
Conclusion
In this paper, we have discussed modeling and analysing of Boolean networks First, we have proposed a method to model a Boolean network into a Coloured Petri net Next, we have analysed the state space to detect various types of attractors Especially, Probabilistic Boolean networks have been also considered One of the future works is to automate the modeling and the attractor detection process That mean from a Boolean network with its configuration, it is possible automatically generate a corresponding CPN model This model also includes some CPN-ML code to detect attractors.
It is significant to apply the proposed approach to large-scale Boolean networks.
This research is funded by Ho Chi Minh City University of Technology under grant number TSÐH-2015-KHMT-56.
[1] C Chaouiya, E Remy, P Ruet, and D Thieffry, “Quali- tative modelling of genetic networks: from logical regula- tory graphs to standard petri nets,” in Applications and Theory of Petri Nets 2004 Springer, 2004, pp 137–156.
[2] M Hopfensitz, C Müssel, M Maucher, and H A Kestler,
“Attractors in boolean networks: a tutorial,” Computa- tional Statistics, vol 28, no 1, pp 19–36, 2013.
[3] L J Steggles, R Banks, and A Wipat, “Modelling and analysing genetic networks: From boolean networks to petri nets,” in Computational Methods in Systems Biol- ogy Springer, 2006, pp 127–141.
[4] K Jensen, L M Kristensen, and L Wells, “Coloured petri nets and cpn tools for modelling and validation of concurrent systems,” International Journal on Software Tools for Technology Transfer, vol 9, no 3-4, pp 213–
[5] F Liu and M Yang, “Compositional colored petri net ap- proach to multiscale modeling for systems biology,” Inter- national Journal of Modeling, Simulation, and Scientific Computing, vol 5, no 04, p 1450017, 2014.
[6] A Saadatpour, I Albert, and R Albert, “Attractor anal- ysis of asynchronous boolean models of signal transduc- tion networks,” Journal of theoretical biology, vol 266, no 4, pp 641–656, 2010.
[7] S Christensen and T B Haagh, “Design/cpn overview of cpn ml syntax,” University of Aarhus, vol 3, 1996.
[8] I Shmulevich, E R Dougherty, S Kim, and W Zhang,
“Probabilistic boolean networks: a rule-based uncertainty model for gene regulatory networks,” Bioinformatics, vol 18, no 2, pp 261–274, 2002.
[9] K Jensen, S Christensen, and L M Kristensen, “Cpn tools state space manual,” Department of Computer Sci- ence, Univerisity of Aarhus, 2006.
International Journal of Applied Information Systems (IJAIS) ùÊĂ ISSN : 2249-0868 Foundation of Computer Science FCS, New York, USA
Volume 11 - No 7, December 2016 - www.ijais.org
using Coloured Petri Nets
Giang Trinh Khanh Le Tam Bang Quan Tram Thang Bui Tho Quan
Hochiminh City University of Technology Hochiminh City, Vietnam
Congestion in Wireless Sensor Networks (WSNs for short) causes not only packet loss and but also leads to excessive energy consumption Therefore, congestion needs to be detected as well as controlled in order to prolong system lifetime.
There are two streams to concern congestion detection including simulation-based and model-based Following the second stream, formal modelling techniques are used for analysis of WSNs Coloured Petri nets (CPNs for short) that combines Petri nets with programming languages is a powerful modelling technique This paper presents a CPN-based approach for formal modelling and congestion detection of WSNs The proposed model describes parameters and behaviours of a WSN Then the congestion detection problem is reduced to a reachability problem on the state space of the CPN-based model Moreover, the CPN-based model uses the hierarchical modelling capability of CPNs, including different levels of abstraction (sub-modules).
This helps easily handling and extending the model.
In reality, WSN components (sensors and channels) can execute a number of concurrent operations This is called concurrency of WSNs The CPN-based model is extended to express the concurrency, thus improving the congestion detection results.
Wireless Sensor networks, Congestion detection, Concurrency architecture, Petri nets, Coloured Petri nets
A Wireless Sensor Network (WSNs for short) is a collection of hundreds or thousands of sensor nodes (sensors for short).
Sensors are characterised as cheap, low energy consuming, with limited memory and processing capabilities [1] Basically, sensors in a WSN can communicate with one another using WiFi signals There are three types of sensors: source, sink and intermediate These sensors can be connected in unicast, multicast, or broadcast mode, each of which specifies whether certain pairs of sensors can exchange information or not If two sensors can communicate, a channel is established between them Information on sensors and channels form the topology of a WSN.
WSNs have distributed on different applications such as military target tracking and surveillance, biomedical health monitoring [2] Although convenient, using WSNs raises several challenges since their constraints must be handled (e.g energy consumption, transmission rate, memory, location sensing, unreliable communications, population density) Checking whether a WSN satisfies certain constraints is a challenging issue A difficult task called congestion handling has attracted much attention [3, 4, 5, 6] The task relates to constraints verification and includes congestion detection and congestion mitigation [3] shows that congestion occurs if buffer overload, i.e the rate of incoming packets is large than its processing This paper focuses on congestion detection based on buffer overload.
Nowadays, there are two main approaches to address congestion detection including simulation-based [7, 8] and model-based [4].
In the first case, a simulator is used to mimic the operations of the WSN, measure the performance, and check congestion occurs or not Widely used simulators include ns-2 [7] and Omnet++
[8] In these, a WSN is considered as a network with sensors, channels and their activity (protocols) The activity of protocols in network is programmed based on the help of simulator frameworks For example, in Omnet++, the mf framework was used first, and then changed to the inet framework.
In the second case, the model-based approach shows two immediate advantages against simulator approaches:
(1) alleviates the dependence on the simulator framework since the WSN is modelled at a higher level of abstraction, which only includes sensors and channels Thus, the WSN model is always the same, whatever the framework being used.
(2) verifies the properties by a logic formula via model checking techniques while simulators must be done by programming, thus this approach may define all scenarios.
Formal modelling techniques have proved the advantages for analysis of WSNs To the best of our knowledge, [4] is the sole framework so far supports both modelling and congestion detection of WSNs by Petri nets However, [4] used Place/Transition nets which is classical Petri nets with limited modelling powerful, thus existing following drawbacks First, parameters of a sensor is expressed by variables embedded in the analysis tool Second, the semantics of WSN operations are expressed by using code program associated to transitions.
These code are in form of C# language, thus forcing the human modeller must get meanings of both Petri nets and C# language.
Moreover, the human modeller also difficultly maps components of the modelled PN to corresponding parts of these code These drawbacks force us remodel WSN by using other advanced kinds of Petri nets, Coloured Petri nets (CPNs for short) [9] CPNs that combines Petri nets with programming languages is a powerful modelling technique CPNs also has been applied widely for modelling and analysis of complex systems, especially networks [9, 10, 11, 12, 13] It provides parameterised representations which allow easily keeping and handling all parameters of WSN components without interaction to code on every transition.
Therefore, this paper focuses on using CPNs for modelling of Wireless Sensor networks and detection of congestion on the CPN modelled WSN Such model has the following objectives:
International Journal of Applied Information Systems (IJAIS) ùÊĂ ISSN : 2249-0868 Foundation of Computer Science FCS, New York, USA
Volume 11 - No 7, December 2016 - www.ijais.org
—representing all WSN components and their operations;
—defining a clear operation semantics of the modelled CPN;
—supporting an easy method to detect congestion.
In reality, the sensor node executes a number of concurrent operations: generating packets (capturing information), processing, and sending packets; while the channel concurrently receives and transmits packets [14] Moreover, a component (sensor or channel) can operate independently with each others.
So operations of sensors and channels in a WSN should be performed concurrently This is called concurrency of WSNs Since all tools supporting Petri nets implemented only sequential semantic of firing rule, it is too difficult to express the concurrency of WSNs on the CPN modelled WSN Therefore, the model is extended by changing semantic of firing rule This makes behaviour of the model becomes more realistic, thus improving the congestion detection results.
CPN Tools 1 is the most popular and powerful tool for constructing and analysing CPNs Especially, it supports timed colour set, hierarchical net It can investigate the behaviour of the modelled system using simulation It can also verify properties by means of state space methods and model checking [15] Therefore, CPN Tools is used to implement the proposed approach.
First, we consider generally some network modelling approaches based on Petri nets.
Petri nets is used to model a LAN switched network architecture [16] This model includes three components (switches, servers, and clients) and interaction between these components The influence of the switch buffer size is verified The rate of packets loss on the quality of the transmission is also considered [17] uses Stochastic Petri nets to model and analyse ad-hoc wireless networks.
Then, we consider particularly modelling of WSNs based on Petri nets.
There are many approaches which have used PNs and its extensions to model and analyse protocols in WSNs Coloured Petri nets (CPNs) that is an extension of PNs is a powerful modelling technique In [18], a CPN model is presented for modelling and performance evaluation of a medium access control protocol in WSNs named sensor-medium access control protocol (S-MAC) The proposed model for this protocol uses hierarchical CPNs (HCPNs), which extends CPNs with modules.