|
|
||
CS 603 - Wireless Sensor SystemsSpring 2004HW6
Let n be a random integer between 10 and 1000. Given a network of n motes uniformly distributed in a grid region of size 15m X 15m, our goal is to develop an efficient distributed algorithm to count the number of live motes in the network. Use a random number generator, local to each mote, to simulate failures of motes (i.e., generate a random number z between 0 and 100, if z is smaller than 13, then assume that mote fails and put it to sleep, otherwise the mote is live and participates in the counting algorithm. Start by randomly selecting a node to be the sink. The sink will flood a request to count live motes. Live motes will send a reply back upon the receipt of the count request and the sink will then count the total number of unique replies received. During the initial deployment setup, you may assume that motes know their coordinates on the 2-d grid region, i.e. x=(x1,y1) and y=(x2,y2). However, do not use this information in your counting algorithms, i.e., your algorithms should be oblivious of the geographical IDs of motes other than to identify uniqueness. Print the total number of replies received by the sink, the time from start to finish for the counting algorithm, and the count of live motes in the network. Can your algorithm also count the total number of messages communicated? Following additional questions must be answered and should help you in thinking about the counting problem and your solution(s) in more depth. Would there be any collisons? Would there be congestion? Can you devise techniques to avoid the collisions and/or congestion? Is there a need to use multihop routing algorithm? Are your algorithms dependent on the density of motes in the region - If so what are the dependencies and how you would address these if they cause any inefficiencies? Can your algorithms handle ad-hoc addition/removal of motes - if not, what changes might be necessary to truly support ad-hoc nature of sensor network deployment? How about mobility of motes? What would happen if the deplyment region is very large? Are your algorithms scalable? Be creative in your design and come up with an efficient implementation. Make sure your program runs on TOSSIM/TinyViz. More details as discussed in class and/or to be discussed in class.
|