**Begin** |

Calculate the number of neighbor of ; |

**If** *num_neighbour *= 0 **then** |

Active neighbor node with probability ; |

**If** *num_neighbour *= 1 **then** |

**If** target and node in the same region **then** |

* *Active this node and its neighbor node with probability ; |

**Else** |

* *Active neighbor node with probability ; |

**If** *num_neighbour* ≥ 2 **then** |

**If** there are nodes in and respectively **then** |

* ***If** target in **then** |

* *Active one node in and respectively; |

* *Active one or two node in randomly; |

* ***Else** |

* *Similar to the target in ; |

**Else** **If** there are nodes in but not in **then** |

* ***If** target in ** then** |

* ***If** the motion of target trends to **then** |

* *Active node inand closest the target; |

* ***Else ** |

* *Active neighbor with probability ; |

* ***Else ** |

* *Active one node in and respectively; |

* ***Else ** |

* *Similar to the target in but not in ; |