## 1 Introduction  
Recent improvements in hardware electronics technology have enabled manufacturers to develop low cost, low power and small size sensors [1; 2; 3]. Hundreds and thousands of these sensors are deployed as wireless sensor networks (WSNs) serving many applications based on the specific requirements of each one [4; 5; 6]. Nowadays, there are many applications of sensor networks covering different fields such as agriculture, medicine, military, environment monitoring, intrusion detection, motion tracking, machine malfunction, and many others [2]. Sensors can be deployed to continuously report environmental data for long periods of time.  
In general, a wireless sensor network is a collection of static nodes with sensing, computation, and wireless communication capabilities [2]. Using mobile nodes as ferries to collect data from sensors in a WSN can improve the performance by increasing the lifetime of such a WSN and by maintaining coverage of the entire area. Ferries are mobile elements that are used to carry data and control information over distance to base stations or to a data center enabling more intelligent decisions to be made. They can also be used to connect isolated islands in WSNs. In addition, ferries can be used to resolve issues related to hidden nodes and the coverage of holes in a WSN which might have resulted from deployed fixed sensor nodes which have run out of energy.  
In this paper, we propose a mobile ferry algorithm based on our previous published work, the Node Ranking Clustering Algorithm (NRCA) [7; 8; 9]. Using NRCA, the decision of selecting cluster heads in a WSN is based on their residual energy, their distance from the base station and an energy threshold that is used to replace cluster-heads. In this paper, the decision of selecting cluster heads is based on their residual energy and their distance from the ferry's path composed of checkpoints (CPs). The checkpoint positions will be initially decided by deploying a virtual grid on the field and placing a checkpoint in the center of each grid. The checkpoints will then be changed based on the number of its attached cluster heads. The Travel Salesman Problem (TSP) will be used to find a Hamilton cycle to decide the path of the ferry. Checkpoints will represent the vertices and the distance between them will represent the edges. A cost function will be used to decide on which vertices will be visited first such that the overall cost will be minimized. Since TSP is NP hard [10; 11] when the number of stops to make is larger than 4, a genetic algorithm will be used to choose the sequence of checkpoints to be visited. The main contribution of this algorithm is in finding an optimum (in terms of consumed overall energy and roundtrip travelling time) random path for the ferry to follow to collect data from the sensor network.  
The rest of the paper is organized as follows: in Section 2, a survey on related work is summarized. Our proposed data collecting algorithm is described in Section 3. In Section 4, performance evaluation in terms of the network lifetime of the proposed algorithm is shown using different criteria. Finally, Section 5 concludes the paper.