دانلود پایان نامه ارشد با موضوع protected، public، import

دانلود پایان نامه ارشد

سازي مي کند
SensorMobilityModel: يک کلاس مشتق شده از کلاس drcl.inet.mac.MobilityModel مي باشد که امکان جابجاي نود هدف را فراهم مي آورد
SensorNodePositionTracker : موقعيت همه نودها را نگهداري مي کند و مشخص مي کند که چه نودهايي در شعاع ارتباطي يک نود هدف قرار دارند .
* کلاسهاي مربوط به کانال حسگري
SeneorChannel : يک کانال حسگري را پياده سازي مي کند.
SensorNodeChannelContract : پروتکل وقرارداد بين SensorChannel و SensorPhy را مشخص مي نمايد.
* کلاسهاي مربوط به مدل باطري
BattaryBase : يک کلاس پايه مجرد براي انواع مختلف باطري ها است که پورتها و انواع باطري ها را تعريف مي کند
BatteryTable : کلاسي است که يک جدول تعريف مي کند که ظرفيت يک باطري را به صورت يک تابع از مقدار جاري اش مشخص مي نمايد .
BatteryCoinCell : کلاسي است که از BatteryBase مشتق گرديده است وباطري سلولي coin را پياده سازي مي کند.
BatteryLinr : يک کلاس مشتق شده از BatteryBase که باطري Linr را پياده سازي مي کند.
BatteryContract : قرارداد بين مدل باطري و مدلهاي راديو و CPU را تعريف مي کند.
* کلاسهاي مربوط به مدل CPU
CPUBase : يک کلاس پايه مجرد براي انواع مختلف CPU ها است .
CPUAvr : از کلاس CPUBase مشتق مي گردد. که مقادير مناسب براي حالتهاي فعال ، بي کار ، خواب و خاموش را مشخص مي کند .
* کلاسهاي مربوط به مدل راديويي
RadioBase : يک کلاس پايه مجرد براي انواع مختلف مدلهاي راديويي است.
RadioSimple : از کلاس RadioBase مشتق شده است که مقادير مناسب مد ارسال و دريافت را تامين مي نمايد.
* کلاسهاي مربوط به پشته پروتکل حسگر
SensorPhy : اين کلاس از کانال حسگري سيگنال توليد شده توسط يک نود هدف را دريافت مي کند و بر اساس فاصله تا نود هدف قدرت سيگنال دريافتي را مشخص مي کند. و اگر از مقدار مشخصي کمتر نبود به لايه هاي بالاتر ارسال مي نمايد . که البته نود مبدا اطلاعات مي تواند نودهاي حسگر همسايه نيز باشند.
SensorAgent : لايه حسگري را پياده سازي مي نمايد که از لايه فيزيکال حسگر ، سيگنالها را دريافت مي کند و به لايه کاربرد مي فرستد و جهت ارسال اطلاعات از نود حسگر عکس اين عمل انجام مي گيرد .
:SensorAgentPhyContract قرارداد و پروتکل بين SensorPhy و SensorAgent را تعريف مي کند .
* کلاسهاي مربوط به لايه کاربرد
SensorApp : اگر اين کلاس در پشته پروتکل نود حسگر مورد استفاده قرار گيرد ، داده ها را از SensorAgent دريافت نموده و به لايه ميان افزار ارسال مي کند .
SensorAppAgentContract : قرارداد بين sensorAgent و SensorApp را تعريف مي نمايد
* کلاسهاي ميان افزار بين پشته پروتکل حسگر و پشته پروتکل بي سيم
WrielessAgent : اگر در يک پشته پروتکل يک نود حسگر تعريف گردد، داده هايي که بايد به توده سينک ارسال شوند را ازSensorApp دريافت نموده و در قالب SensorPacket به پشته پروتکل بي سيم ارسال مي کند تا SensorPacket از کانال بي سيم به سمت نود سينک ارسال شوند. .
SensorAppWirelessAgentContract : پروتکل بين WirelessAgent و SensorApp را تعريف مي کند.
مجتمع نمودن پشته پروتکل حسگري با پشته پروتکل بي سيم :
براي ايجاد مدل عملي حسگر ما بايد پشته پروتکل حسگري را با پشته پروتکل بي سيم مجتمع نماييم، که اين تجمع با کلاسهاي SensorApp و WirelessAgent که قبلاً توضيح داده شدند انجام مي گيرد. ما همچنين در پشته پروتکل بي سيم از پروتکلهاي زير استفاده مي کنيم :
لايه شبکه: پروتکل (drcl.inet.protocol.aodv.AODV) AODV
لايه MAC : (drcl.inet.mac.Mac-802-11)Mac 802.11
لايه فيزيکي : drcl.inet.mac.WirelessPhy
کانال بي سيم : drcl.inet.mac.Channal
8-2-2- نصب و اجرا
همانگونه که عنوان گرديد J-sim يک نرم افزار مبتني بر جاوا است. بنابراين جهت استفاده از آن بايد ابتدا کامپايلر جاوا (JDK) بر روي سيستم نصب باشد. و جهت راحتي کار با J-sim بايد يک محيط IDE جاوا مثل NetBeans يا IntelliJ نيز نصب گردد. اگر IntelliJ نصب شود در قسمت تنظيمات آن بايد مسير نصب JDK وارد شده تا قادر به اجراي فايلهاي جاوا باشد.(شکل 8-3)

شکل ‏8-3 : تنظيم jdk در نرم افزار J-Sim

حال مي توان يک پروژه جاوا بر اساس فايلهاي source نرم افزار J-sim ايجاد نمود. و پروژه را اجرا کرد. پس از اجراي J-sim پنجره نشان داده شده در شکل8-4 ظاهر خواهد شد. جهت اجراي اسکريپت دلخواه در اين پنجره از منوي file گزينه Open را انتخاب کرده و سپس در کادر ظاهر شده فايل Tcl مورد نظر را در جهت اجرا انتخاب مي نماييد.

شکل ‏8-4 : اجراي نرم افزار J-Sim
8-3- پياده سازي الگوريتم خوشه بندي پيشنهادي
در فصل سوم يک روش خوشه بندي مبتني بر آتوماتاهاي يادگير معرفي گرديد. جهت ارزيابي روش ارائه شده و مقايسه با ديگر روشهاي خوشه بندي، اين روش و روشهاي مورد مقايسه، با استفاده از شبيه ساز J-Sim پياده سازي شده و برنامه هاي مربوطه اجرا گرديدند. در اين قسمت فايلها و کدهاي مربوطه به روش خوشه بندي پيشنهادي شرح داده مي شود.
جهت پياده سازي روش پيشنهادي در نرم افزار J-Sim در فولدر sensorsim يک پکيج جديد با نام LaClustering ايجاد گرديده است. که اين پکيج شامل چندين کلاس مي باشد. که معادل با هر کلاس يک فايل همنام با آن ايجاد گرديده است. فايلهاي مربوطه عبارتند از:
LaClusteringApp.java
LearningAutomataLaClustering.java
LaClusteringSinkApp.java
LaClusteringWirelessAge.java
LaGetClusteringPack.java
LaClusteringSchPacket.java
LaClusteringPacket.java
LaClusteringJoinPacket.java
LaClusteringDataPacket.java
LaClusteringChangePacket.java
که چند تا از از مهمترين آنها معرفي مي گردند:
* فايل LaClusteringApp.java :
اين فايل، فايل اصلي ارائه الگوريتم پيشنهادي مي باشد. اين کلاس از کلاس SensorApp مشتق گرديده است. که کدهاي مهم مربوط به اين فايل را در شکل 5-8 مشاهده مي نماييد.

* package drcl.inet.sensorsim.LaClustering;
*
* import drcl.comp.Port;
* import drcl.comp.ACATimer;
* import drcl.inet.mac.EnergyContract;
* import drcl.inet.data.RTKey;
* import drcl.inet.data.RTEntry;
* import drcl.inet.contract.RTConfig;
* import drcl.inet.sensorsim.SensorApp;
* import drcl.inet.sensorsim.SensorPacket;
* import drcl.inet.sensorsim.SensorAppWirelessAgentContract;
* import drcl.inet.sensorsim.SensorAppAgentContract;
* import drcl.data.DoubleObj;
* import drcl.net.Packet;
* import drcl.inet.mac.EnergyModel;
* import java.util.Random;
* import java.util.Vector;
*
* public class LaClusteringApp extends SensorApp implements drcl.comp.ActiveComponent
* {
* Random generator = new Random();
* protected Vector neighbors = new Vector(); //used to keep all neighbors
* private double energy ;
* protected Vector clusterChoices = new Vector(); //used to keep CH neighbors
* protected Vector joinedNodes = new Vector(); //used to keep track of the IDs of each sensor in the cluster (called clusterNodes in NS2 implementation)
* protected Vector CHData = new Vector();
* protected Vector joinedList = new Vector();
* protected Vector nextHopList = new Vector();
* protected int chCount;
* protected double maxEnergy;
* protected int maxNeighbor;
* protected double weightEnergy;
* protected double weightUniform;
* protected int maxClusterSize;
*
* protected double firstProbCH = 0.5;
* protected double a = 0.1;
* protected double b = 0.2;
*
* public static final int LA_CLUSTER_PACKET = 0;
* public static final int DATA_CLUSTER_PACKET = 1;
* public static final int JOIN_CLUSTER_PCKET = 2;
* public static final int SCH_CLUSTER_PACKET = 3;
* public static final int GET_CLUSTER_PACKET = 4;
* public static final int CHANGE_CLUSTER_PACKET = 5;
* public static final int ACK_CLUSTER_PACKET = 6;
* public static final int NEXTHOP_CLUSTER_PACKET = 7;
* public static final int DATA_TO_NEXTHOP_PACKET = 8;
* public static final int ACK_SCH_PACKET = 9;
* public static final int YOU_CLUSTER_PCKET = 10;
*
* public LearningAutomataLaClustering laClustering;
*
* protected double sendTime =0.2;
* protected double threshEnergy = 0.1;
* protected double threshClusterEnergy = 0.4;
* protected double wakeUpPeriod = 0.1;
*
* public int TOTAL_ROUND_LEARNING = 0;
* protected double memberProb = 0.8;
* protected double periodTime = 25;
*
* protected static int totalBSPackets = 0;
* protected static int clusterHop = 3;
* protected int itterCount;
* protected boolean recvADV = false;
* protected long nextHopID;
* protected double[] nextHopLoc;
*
* public LaClusteringApp()
* {
* super();
* this.myPos = new double[3];
* this.sinkPos = new double[3];
* this.neighborPos = new double[3];
* this.itterCount = 0;
* this.sink_nid = 0;
* this.setSinkLocation(0.0,0.0,0.0); //set the sink’s location to the default(0,0,0)
* this.sensorDEAD = false; //mark the sensor as being alive
* laClustering = new LearningAutomataLaClustering();
* laClustering.setFirstProbCH(firstProbCH);
* laClustering.chooseState();
* }
* /********************************************************************************************/
* public void addNeighbor(LaClusteringApp LaClusteringApp_){
* LaClusteringApp.neighbor neighbor_ = new LaClusteringApp.neighbor(LaClusteringApp_.getNid(),
* LaClusteringApp_.myPos, LaClusteringApp_.getEnergy(),LaClusteringApp_.getState());
* neighbors.add(neighbor_);
* neighborCounts++;
* }
* /********************************************************************************************/
* public int getState(){
* return laClustering.getState();
* }
*
* /********************************************************************************************/
* double neighborAverageEnergy(){
* double total_ = getEnergy();
* for(int i=0; i * total_ += ((neighbor)neighbors.get(i)).getEnergy();
* }
* return (total_ / (neighbors.size() + 1));
* }
* /********************************************************************************************/
* public double clusterAverageEnergy(){
* double total_ = getEnergy();
* double avg;
* for(int i=0; i * total_ += ((neighbor)joinedList.get(i)).getEnergy();
* }
* avg = total_ / (joinedList.size() + 1);
* return avg;
* }
* /********************************************************************************************/
* public int getmemCount(){
* memCount = joinedList.size();
* return memCount;
* }
* /********************************************************************************************/
* boolean isMaxNeighbor(){
* double nMax = neighbors.size();
* for(int i=0; i * if(((neighbor)neighbors.get(i)).getNeighborCounts() > nMax)
* return false;
* }
* return true;
* }
* /********************************************************************************************/
* boolean isMaxEnergy(){
* double enMax = getEnergy();
* for(int i=0; i * if(((neighbor)neighbors.get(i)).getEnergy() > enMax)
* return false;
* }
* return true;
* }
*
* /********************************************************************************************/
* public void validateState(){
* double energyP = 0, nCountP = 0, cCountP = 0 , rewardP;
* if(getEnergy() neighborAverageEnergy())
* energyP = 1;
* else
* energyP

پایان نامه
Previous Entries دانلود پایان نامه ارشد با موضوع سلسله مراتب Next Entries منبع پایان نامه درباره خرید مجدد، قصد خرید مجدد، تصویر برند