2011-01-06 5 views
2

Ich bin neu in der gesamten verteilten Systemwelt. Ich brauche Hilfe, wie man einen Cluster auf dieser Umgebung bildet und auch entscheidet, welcher der Cluster der Cluster ist. Ich möchte überspannenden Baum verwenden, um die Knoten mit der höchsten Energie als CH zu wählen. Wenn CH ausgewählt wird, sollten alle anderen Knoten ihre Informationen an CH senden und CH an die Basisstation (den roten Knoten) senden.Wie man einen Cluster bildet und Cluster-Header in dieser Umgebung wählt?

Das Problem ist, ich weiß nicht, wie der Algorithmus sein sollte. Hier ist ein Algorithmus Ich habe versucht

Clustering-Algorithmus

  • jede Stunde zu tun, Knoten einen Spanning Tree starten, um die Knoten zu finden, die die meiste Energie enthält
  • Wenn ein Knoten, die eine „Suche“ Nachricht erhalten :

    -compare die Energie jeden Knoten links, wenn die Energie vom Sender niedriger als selbst ist. Antwort mit eigener ID. Wenn die Energie vom Sender höher ist als sie selbst. Antworten mit der ID Absender und geben es an den anderen Nachbarn

  • Wenn ein Knoten seine eigene ID empfängt, machen es selbst Clusterkopf
  • Wenn andere Knoten kennt die Cluster-Kopf wählen hat Startinformation zu senden Header clustern

Environment:

Es sei angenommen, dass dies ein Router-Netzwerk

Die Zahl ist, Energieleistung jeder Knoten

Der rote Knoten ist die Basisstation.

alt text

+0

Wenn Sie uns nicht sagen, was mit dem Algorithmus, den Sie ausprobiert haben, nicht stimmt, ist es schwer zu wissen, was Sie wollen. –

+0

Ich glaube nicht, dass er weiß, wie der Algorithmus aussieht, er braucht vielleicht einige Ideen, um mit dem Entwurf zu beginnen. –

+0

@Nick Fortescue: Mein Algorithmus klingt nicht gut. Ich muss ein Flussdiagramm und einen Pseudocode in diese Umgebung zeichnen. Ich werde versuchen zu erklären, was ich nicht herausfinden kann. Hier ein Beispiel: * A hat Energie 15 und B hat Energie 7 * Wenn A eine Suchnachricht an B senden. B vergleiche die Energie von sich selbst und A. In diesem Fall hat A mehr Energie als B, also antwortet B ID von A. * Wenn A die Nachricht erhalten, macht es sich einen Cluster-Header, aber wie steht es mit Knoten C, D, E? vielleicht haben sie mehr Energie als A @msvalvadores: Genau, brauche ich etwas Hilfe mit dem Denken oder wie Sie den Algorithmus wählen würden – TrieuBui

Antwort

0

Ihr Algorithmus ist fast perfekt, das einzige, was fehlt, ist die Information über den Durchmesser des Netzes.

Der Durchmesser eines Netzwerks ist der Abstand der beiden am weitesten entfernten Knoten des Netzes. Jetzt

, wir bezeichnen Ihren Algorithmus, Routine A und der Durchmesser des Netzes diam (G). Bevor wir fortfahren, lasst uns zustimmen, dass es trivial ist zu beweisen, dass ein einfacher Flooding-Algorithmus, der an einem beliebigen Knoten des (verbundenen) Netzwerks beginnt, diam (G) -Runden benötigt, um jeden Knoten des Netzwerks zu erreichen.

Zuerst müssen wir davon ausgehen, dass der Knoten mit der höchsten Energie einzigartig ist (dh. Kein anderer Knoten mit der gleichen Menge an Energie vorhanden ist).

Wenn jeder Knoten vorher den Durchmesser des Netzwerkes kannte, dann würde das Problem sehr leicht gelöst werden, wir rufen nur Routine A für Diam (G) Runden auf und danach hat nur ein Knoten eine Nachricht, die identisch mit seiner eigenen ID ist und dass der Knoten setzt seine variable Führer-wahr und dann flutet das Netzwerk mit dem „Führer gewählt, und es ist mir“ -Meldung.

-1
Cluster Form 
{ 
In each cluster 
If(Energy==…..) 
{ 
Energy= ……..; 
Send (CH_ID,CLUSTER_ID_CH) 
} 
If(Node_ CLUSTER _ID_CH== CLUSTER_ID_CH) 
    { 
send Join_Message(NODE_ID,CH_ID) 
//when receving Join_Messag 
CH send (TDMA) 
} 
}** 


for more information send me to [email protected] 
Verwandte Themen