Modified LEACH Protocol with GWO Optimization in WSN

$0.00

Total downloads: 172

This MATLAB code improves the LEACH protocol for energy consumption minimization in WSN. We have used GWO optimization algorithm for this purpose. The new cluster head is elected with minimum intracluster distance, minimum energy consumption and the maximum number of nodes under its influence.

This repository contains :

  • MATLAB code for modified LEACH with GWO optimization

Note: The free version of this code has a limited 5 trials and few protected files. Once the 5 trials are completed, the code will be deleted and MATLAB will be closed.

Download Test
 Discuss Code

Description

  • We selected LEACH (Low-energy adaptive clustering hierarchy) scheme for the minimization of energy consumption.
  • We proposed a GWO optimization algorithm to minimize the LEACH protocol objective function as written in equation 3.
  • Initialized the random position of the grey wolves in GWO algorithm with limits equal to cluster head formation.
  • The cluster head selection is not efficient or optimal in LEACH, so we used a Metaheuristic algorithm called Grey Wolf Optimization (GWO) to select cluster head.
  • The energy consumption of the sensor node is minimized by GWO optimized LEACH environment.
A wireless sensor network (WSN) is used to monitor physical or environmental conditions. It consists of several sensors nodes that monitor the temperature, humidity, and light parameters. The received information is passed through the WSN to the base station. In WSN all the sensor nodes are powered by the battery which consumes high energy for the data transmission. This energy consumption can be reduced by using hierarchical approaches. We selected LEACH (Low-energy adaptive clustering hierarchy) scheme for the minimization of energy consumption.

Thesis Statement

LEACH[1] improves energy efficiency and increases the lifetime of the network. The clusters are formed in the LEACH scheme in which distributed sensor nodes are placed in a group. The sensor node has maximum residual energy selected as the cluster head (CH). All the cluster nodes transmit data to CH, and then CH is forwarded through the other CHs or directly to the base station. The cluster head selection procedure is not optimal in the LEACH scheme. So we proposed GWO optimization algorithm for the optimal selection of CH in the LEACH protocol.

Improved LEACH

LEACH is a MAC protocol implemented with clustering and a simple routing protocol in WSN. The key function of LEACH is to minimize the energy consumption necessary to form clusters to increase the lifetime of WSN. Most of the sensor nodes transmit to the cluster head in the LEACH protocol. The cluster head compresses the received sensor nodes’ data and forwarded it to the sink node (Base Station). The remaining nodes of the clusters communicate with the cluster head in the TDMA (Time Division Multiplexing Access) manner as per CH generated scheduled [1].

The working of LEACH is divided into two phases. The first phase is the setup phase in which clusters are formed in WSN. The second phase is known as a steady phase in which information or data is transferred to the sink. The cluster head selection phase and clustering phase are the key parts of the LEACH protocol. Each sensor node is having threshold energy as per the formulation

In equation 1, p is cluster head percentage in all nodes, r is the round and G is the set of non-selected cluster head nodes.

The energy model is followed by LEACH protocol with the two-channel model; free space (d2) for single hope path and multipath fading (d4) for the multihop path. So the energy consumption of l bit packets over distance d is estimated as

Where efs = free space energy loss, emp = multipath fading loss, d= distance between source and destination node, d0= crossover distance =square root of (efs/emp). The energy variable depends on the node distance, so via optimizing node distance, we can minimize the energy consumption at every sensor node in WSN.

GWO optimized LEACH

An objective function is necessary for the optimization algorithm. It must satisfy the condition and constraints of the design network. As per equation 2 the energy depends on the distance of sensor nodes, so the objective function shows the relationship between energy and distance variable. Equation 3 shows the fitness function of the LEACH protocol

Here a1 and a2 are the tradeoff factors, and their fixed value is considered as 0.4. The objective function shows the energy consumption with respect to the node distance.

The MATLAB code for the objective function on LEACH optimization is written below. This is a generalized function and can be used with any optimization technique. For full details, you can download the product here.

%%This function is called in each iteration and defines the objective to
%% minimize for cluster head selection
%%
function objval=objectiveFcn(nodeTable,x,nodes,clusterno,nodepos,sinknode)

clusterheadpos=nodepos(x,:);
sink=sinknode;  % sink node
%% calculate the distance of each clusterhead from each node
for ii=1:clusterno
    % every CH to each node
    dist(ii,:) = sqrt((clusterheadpos(ii,1).*ones(100,1)-nodepos(:,1)).^2+...
                                      (clusterheadpos(ii,2).*ones(100,1)-nodepos(:,2)).^2);
    % base Station to every CH
    CHdistance(ii)=pdist([sink;clusterheadpos(ii,:)],'euclidean');  
end
for ii=1:nodes
     [D(ii),idx(ii)]=min(dist(:,ii));
end

%% energy residual after each cluster head to sink node communication
CHenergy=CHtoSinkEnergy(nodeTable,CHdistance,nodes,clusterno,x);

%% energy residual after each cluster head to sensor node communication
for ii=1:clusterno
    clusternodeID=nodeTable.nodeID(idx==ii);
    nodedistance=D(idx==ii);
    Clusternodes=numel(nodedistance);
    if Clusternodes~=0
    [NodeEnergy,~,~,~]=nodetoCHEnergy(nodeTable,nodedistance,Clusternodes,clusternodeID);
    nodeTable.energy(clusternodeID)= NodeEnergy;
    end
end
%% objval calculation
alpha1=0.4;
alpha2=0.4;
for ii=1:clusterno
    nodedistance=D(idx==ii);
    FirstTerm(ii)=alpha1*(sum(nodedistance)/numel(find(idx==ii)));
    secondTerm(ii)=alpha2*(sum(nodeTable.energy(idx==ii))/CHenergy(ii));
    thirdTerm(ii)=(1-alpha1-alpha2)*(1/numel(find(idx==ii)));
    addTerms(ii)=FirstTerm(ii)+secondTerm(ii)+thirdTerm(ii);
end
objval=mean(addTerms);
end

We proposed a GWO optimization algorithm to minimize the LEACH protocol objective function as written in equation 3. The GWO is a Meta-heuristic optimization algorithm developed in 2010.

A GWO optimized STATCOM TWO KUNDUR AREA SYSTEM  MATLAB code is available at free-thesis.com

We developed a MATLAB script of the GWO algorithm to optimize the above mention objective function. GWO is inspired by the food searching behavior of grey wolves. The wolves are attacks in a group and the best position of any wolf can provide the best solution. We call the objective function in GWO script and get the optimal or best solution in terms of the consumption energy of sensor nodes. The position of the grey wolves updated the position of the cluster head of LEACH protocol.

The objective function written in equation 3 is minimized by the GWO algorithm. The position of wolves allocates the position of the cluster head in each cluster. The position of wolves has been updated the position of cluster heads are also changed.

GWO optimized LEACH

Figure 1 Architecture of GWO optimized LEACH module @free-thesis.com

Implementation

  • We create a geographical area of 100*100 in the MATLAB 2018a. The sensor nodes are randomly placed in that area.
  • Initialize the parameters of LEACH protocol like Initial Energy, Number of Nodes, rounds in LEACH, energy for transferring/receiving of each bit, transmit amplifier free space/multipath energy, aggregation energy, and the packet length. Consider 5% of the total nodes as clusters. So, among 100 nodes 5 clusters are formed using LEACH protocol.
  • Initialized the random position of the grey wolves in GWO algorithm with limits equal to cluster head formation. Among the 100 nodes, 5 cluster heads are selected.
  • Optimized the objective function value which is given in equation 2 and computed the best fit solution in terms of residual energy. Calculate the objective function value for each wolf in each iteration and save the output.
  • Update the best position of wolves as per the GWO algorithm and estimate the best fitness value of the objective function in the next iteration.
  • All the process is repeated until the final iteration is finished. We obtained the minimum value of the objective function in terms of energy and distance.
  • So the efficient LEACH protocol is achieved by GWO algorithm. The residual energy is reduced in LEACH protocol via an optimal selection of cluster head.

Figure 2 WSN network generated for 100 nodes placed randomly

Code Overview

Code Overview free-thesis

This code generates and compares the performance of two different wireless sensor network (WSN) clustering techniques, namely Grey Wolf Optimization (GWO) and LEACH. The code generates a random WSN with a predetermined number of nodes, geographical region limits, and sink node position. The performance of the clustering techniques is evaluated through the amount of energy remaining in the nodes and the number of packets delivered to the sink node.

The code is implemented in MATLAB and consists of several functions that are called from the main script. The script performs the following actions:

  • Create a directory to store the results.
  • Generate a random WSN based on the number of nodes, geographical region limits, and sink node position.
  • Implement the GWO optimization algorithm to select the cluster heads.
  • Evaluate the performance of the GWO algorithm by calculating the remaining energy of the nodes and the number of packets delivered to the sink node.
  • Implement the LEACH clustering algorithm.
  • Evaluate the performance of the LEACH algorithm by calculating the remaining energy of the nodes and the number of packets delivered to the sink node.
  • Save the workspace.

The code uses the following input parameters:

rounds: the number of rounds for the clustering algorithms to execute.

Nodes: an array that specifies the number of nodes in the WSN.

X: an array that specifies the geographical region limits for the X coordinates.

Y: an array that specifies the geographical region limits for the Y coordinates.

clusterno: the number of clusters in the WSN.

The code outputs the following results:

GWO_REenergy: an array that stores the remaining energy of the nodes after executing the GWO algorithm.

GWO_Alivenodes: an array that stores the number of alive nodes after executing the GWO algorithm.

GWO_packets: an array that stores the number of packets delivered to the sink node after executing the GWO algorithm.

GWO_Packetdrop: an array that stores the number of packets dropped after executing the GWO algorithm.

LEACH_REenergy: an array that stores the remaining energy of the nodes after executing the LEACH algorithm.

LEACH_Alivenodes: an array that stores the number of alive nodes after executing the LEACH algorithm.

LEACH_packets: an array that stores the number of packets delivered to the sink node after executing the LEACH algorithm.

LEACH_packetdrop: an array that stores the number of packets dropped after executing the LEACH algorithm.

The main script is divided into several sections that are described below:

Creating a directory to store the results

This section creates a directory to store the results of the clustering algorithms. The name of the directory is generated based on the current time.

d=num2str(clock);
d(isspace(d))=[];
if ~exist('Results','dir')
    mkdir('Results')
end
mkdir(['Results/',d])

Generating a random WSN

This section generates a random WSN based on the input parameters. The nodes’ positions are assigned randomly, and the sink node’s position is fixed.

rounds=500; % number of rounds
%Nodes=20:20:100; % WSN Nodes number
Nodes=100;
X=[1, 100]; % geographical region limits for X coordiantes
Y=[1, 100]; % geographical region limits for Y coordiantes
clusterno=5;

for nodeloop=1:length(Nodes) % loop of various number of nodes
    nodes=Nodes(nodeloop);

    up=nodes;
    low=X(1);
    nodepos=X(1)+(X(2)-X(1)).*rand(nodes,2); % nodes position, assigned randomly
    sinknode=[X(2)/2,Y(2)];
end

GWO optimization algorithm

This section implements the GWO optimization algorithm to select the cluster heads. The algorithm iterates for a predetermined number of rounds, and the cluster heads’ positions are updated in each round.

    initEnergy=0.5;                 %Initial Energy
    nodeTable.energy=initEnergy.*ones(1,nodes)';
    nodeTable.nodeID=[1:nodes]';
    nodeTable.dead=zeros(1,nodes)';
    nodeTable.Alive=ones(1,nodes)';
    nodeTable.status=repmat('S',nodes,1);  % assign status to each node
    nodeTable_GWO=nodeTable;
    packets_delivered=[];
    for ii=1:rounds
        display(['round: ',num2str(ii)])
        display(['GWO is iterating for nodes = ', num2str(nodes)])
        % GWO optimization
        [~,clusterheadPos{nodeloop}(ii,:),iterval(ii,:)]=GWO(nodeTable_GWO,clusterno,nodes,nodepos,up,low,sinknode);
    %     [iterval(ii,:),clusterheadPos{nodeloop}(ii,:)]=abc(nodeTable_ABC,clusterno,nodes,nodepos,up,low,sinknode);

        % results evaluation
        [REenergy_GWO(ii),deadnodeNo_GWO(ii),nodeTable_GWO,Packetdrop_GWO(ii)]=resultsEval(...
                                    nodeTable_GWO,clusterheadPos{nodeloop}(ii,:),nodes,clusterno,nodepos,sinknode);
        if REenergy_GWO(ii)<0

GWO algorithm evaluation

This section evaluates the performance of the GWO algorithm by calculating the remaining energy of the nodes and the number of packets delivered to the sink node.

LEACH clustering algorithm

This section implements the LEACH clustering algorithm. The algorithm iterates for a predetermined number of rounds.

LEACH algorithm evaluation

This section evaluates the performance of the LEACH algorithm by calculating the remaining energy of the nodes and the number of packets delivered to the sink node.

Saving the workspace

This section saves the workspace to a .mat file.

Conclusion

In this work, we minimize the energy consumption of sensors in the Wireless Sensor Network (WSN). The configuration of the WSN environment is done as per the LEACH (Low-energy adaptive clustering hierarchy) protocol due to efficient energy and network lifetime. In LEACH protocol the distributed sensor nodes are placed in a group or cluster. A sensor node of the cluster is selected as the cluster head which has maximum residual energy. The cluster head selection is not efficient or optimal in LEACH, so we used a Metaheuristic algorithm called Grey Wolf Optimization (GWO) to select cluster head. The energy consumption of the sensor node is minimized by GWO optimized LEACH environment.

Published Paper similar to this work

  1. Agrawal, Deepika, Muhammad Huzaif Wasim Qureshi, Pooja Pincha, Prateet Srivastava, Sourabh Agarwal, Vikram Tiwari, and Sudhakar Pandey. “GWO‐C: Grey wolf optimizer‐based clustering scheme for WSNs.” International Journal of Communication Systems 33, no. 8 (2020): e4344.
  2. Sharawi, Marwa, and Eid Emary. “Impact of grey wolf optimization on WSN cluster formation and lifetime expansion.” In 2017 Ninth International Conference on Advanced Computational Intelligence (ICACI), pp. 157-162. IEEE, 2017.
  3. Indrapandi, A., and S. Rizwana. “Energy Efficient Cluster based Data Aggregation using GWO Optimization with SPFA Technique for Wireless Sensor Networks.” Solid State Technology 63, no. 6 (2020): 24069-24083.
  4. Pratha, S. Jaya, V. Asanambigai, and S. R. Mugunthan. “Grey wolf optimization based energy efficiency management system for wireless sensor networks.” (2021).

References

  1. Jiang, Shuyu. “LEACH Protocol Analysis and Optimization of Wireless Sensor Networks Based on PSO and AC.” In 2018 10th International Conference on Intelligent Human-Machine Systems and Cybernetics (IHMSC), vol. 2, pp. 246-250. IEEE, 2018.
  2. Beiranvand, Zahra, Ahmad Patooghy, and Mahdi Fazeli. “I-LEACH: An efficient routing algorithm to improve performance & to reduce energy consumption in Wireless Sensor Networks.” In The 5th Conference on Information and Knowledge Technology, pp. 13-18. IEEE, 2013.
  3. Mann, Palvinder Singh, and Satvir Singh. “Improved artificial bee colony metaheuristic for energy-efficient clustering in wireless sensor networks.” Artificial Intelligence Review51, no. 3 (2019): 329-354.
  4. Hatta, N.M & Zain, Azlan & Sallehuddin, Roselina & Abd. Rahim, Shayfull Zamree & Yusoff, Yusliza. (2018). Recent studies on optimisation method of Grey Wolf Optimiser (GWO): a review (2014–2017). Artificial Intelligence Review. 10.1007/s10462-018-9634-.

96 reviews for Modified LEACH Protocol with GWO Optimization in WSN

  1. hamdi.karim (verified owner)

    thanx

  2. hamdi.karim (verified owner)

    thanx

  3. thiyagarajan.n-1218 (verified owner)

    nice

  4. thiyagarajan.n-1218 (verified owner)

    goood

  5. saeideh (verified owner)

    I need this code to do my thesis in order to compare its result with my own method. I hope you accept my request.

  6. saeideh (verified owner)

    good

  7. nikhil.saini (verified owner)

    h

  8. nikhil.saini (verified owner)

    h

  9. nikhil.saini (verified owner)

    h

  10. nikhil.saini (verified owner)

    h

  11. nikhil.saini (verified owner)

    h

  12. nikhil.saini (verified owner)

    h

  13. sujin.kumar (verified owner)

    good platform

  14. sujin.kumar (verified owner)

    good

  15. harsimran.singh (verified owner)

    Brilliant

  16. bryan.raj (verified owner)

    .

  17. saranya.gunasekar (verified owner)

    good

  18. saranya.gunasekar (verified owner)

    good

  19. scelalcelik (verified owner)

    ZUPER

  20. anass.ess (verified owner)

    tnx

  21. anass.ess (verified owner)

    tnx

  22. saranya.gunasekar (verified owner)

    GOOD

  23. upanshu.srivastava (verified owner)

    Good

  24. upanshu.srivastava (verified owner)

    Good

  25. soustab10 (verified owner)

    nice

  26. Drwang151002 (verified owner)

    good

  27. Drwang151002 (verified owner)

    good

  28. sagar.verma-6850 (verified owner)

    Thanks

  29. sagar.verma-6850 (verified owner)

    Thanks

  30. repshika.pradhan (verified owner)

    loved it

  31. repshika.pradhan (verified owner)

    loved it

  32. repshika.pradhan (verified owner)

    loved it

  33. seyed mohammad.alamolhodaie (verified owner)

    It is very good

  34. prashant.kulkarni-0716 (verified owner)

    EXCELLENT CODE

  35. prashant.kulkarni-0716 (verified owner)

    EXCELLENT

  36. dholariya.romit (verified owner)

    good

  37. upanshu.srivastava-4940 (verified owner)

    ok

  38. thiyagarajan.n-1218 (verified owner)

    good

  39. lyxfree (verified owner)

    thankx

  40. lyxfree (verified owner)

    thankx

  41. lyxfree (verified owner)

    thankx

  42. tunde.iyaomolere (verified owner)

    great

  43. y.s (verified owner)

    sdadaasda

  44. y.s (verified owner)

    sdadaasda

  45. dhivya.k (verified owner)

    good

  46. dhivya.k (verified owner)

    good

  47. dhivya.k (verified owner)

    very good

  48. adcadf.af (verified owner)

    top

  49. dimple.k (verified owner)

    Good

  50. papu.k (verified owner)

    good

  51. raghvi.khandelwal (verified owner)

    please provide at the earliest

  52. arthi.m (verified owner)

    good

  53. dhivya.k (verified owner)

    good

  54. dhivya.k (verified owner)

    excelent

  55. dhivya.k (verified owner)

    good

  56. dhivya.k (verified owner)

    good

  57. keerthana.r (verified owner)

    good

  58. keerthana.r (verified owner)

    good

  59. keerthana.r (verified owner)

    good

  60. indhu.k (verified owner)

    nice

  61. BLESSINA (verified owner)

    Very useful code sharing, highly trustable sight.

  62. nirmala (verified owner)

    na

  63. chakkor (verified owner)

    thank you

  64. baghouri (verified owner)

    Thanks

  65. repshika.pradhan (verified owner)

    thankyou

  66. a.g (verified owner)

    nice

  67. sowmya.r (verified owner)

    Very good resources

  68. manishshukla8840 (verified owner)

    Good but more item and different items

  69. manishshukla8840 (verified owner)

    na

  70. manishshukla8840 (verified owner)

    na n

  71. manishshukla8840 (verified owner)

    na n

  72. manishshukla8840 (verified owner)

    ZGoog theme but all topics was not covered in this portal

  73. bladepiit (verified owner)

    good

  74. bladepiit (verified owner)

    good

  75. seham (verified owner)

    good

  76. seham (verified owner)

    good

  77. seham (verified owner)

    good

  78. seham (verified owner)

    good

  79. abdul.fofanah (verified owner)

    good

  80. jayati.vaish (verified owner)

    good

  81. jayati.vaish (verified owner)

    good

  82. jayati.vaish (verified owner)

    good

  83. sowmya.r (verified owner)

    Very nice work.

  84. sachin.divekar (verified owner)

    Nice work

  85. 1512767365@qq.com (verified owner)

    GOOD

  86. 1512767365@qq.com (verified owner)

    GOOD

  87. tunde.iyaomolere (verified owner)

    Great

  88. tunde.iyaomolere (verified owner)

    Great

  89. 1512767365@qq.com (verified owner)

    6666

  90. bladepiit (verified owner)

    please share the code to bladepiit@gmail.com

  91. bagoes (verified owner)

    ok

  92. yang.le (verified owner)

    wrong code.The objective function is false

  93. yang.le (verified owner)

    why you share the wrong code

  94. krishna.b (verified owner)

    gud

  95. karthikeyan.sakthivel (verified owner)

    Thank yu

  96. caixin123 (verified owner)

    good

Only logged in customers who have purchased this product may leave a review.

No more offers for this product!