Random Generation of bi-directional Graphs in Omnet :: Khyber.ORG

پښتو :: پښتانه :: پښتونخواه :: پښتونوالی

Random Generation of bi-directional Graphs in Omnet, Omar Usman
Published in Khyber.ORG on Wednesday, July 4 2012 (http://www.khyber.org)

New Additions

[an error occurred while processing this directive]

From Archives

په مکه معظمه کښ مسجد الحرام
وګورئي داسې نوره انځورونه (اوله پاڼه) . . . نور

Dolat Zai : Iranica , Daniel Balland

Dolatzai is the ethnic name common among the eastern Pashtun on both sides of the Durand Line. The different tribal units bearing the name do not seem to be connected with one another. They are found in four different geographical locations, three on the Pakistani side of the boundary and one in Afghanistan. . . . Read More

د جرمني په مرکز برلین ښار کې د نورو ګڼو ښوونیزو مرکزونو ترڅنګ دری لوی پوهنتونونه: د برلين تخنيکي پوهنتون، د برلين آزاد پوهنتون او د برلين آمبولټ پوهنتون فعالیت کوي. د برلین تخنیکي پوهنتون ډېری تخنیکي څانګې لري او د نړۍ له بېلابېلو هېوادونو محصلين په کې زده کړه کوي. زموږ ۲۴ کسیز ټیم چې د افغانستان له بېلابېلو اتو پوهنتونونو څخه راغلي یو، . . . نور

دغريبۍ ايوارډ ، ليک::ډاکټر افتخار على فګار

پښتو ژبه زمامور پښتو ژبه زما ښائست ،پښتو ژبه زما پيژندګلو غرض دا چې پښتوژبه زماهرڅه هرڅه ده ځکه چې په دازما مورنۍ ژبه ده ځکه خو ماډيره ګرانه ده . دپښتو ژبې سره چې دچا څه قسم هم تعلق دے هغه زما ورور زما دسترګو تور زما زړۀ ټکور دے هم دغسې دپښتو عاشقانو کښې زما يو پښتون ورور . . . نور

پښتو په انټرنېټ کې ، عجب خان غمخور

عبدالهادي حيران صېب زه د ډېر د نزدې نه پېژنم. زما په فکر هغه يؤ ښۀ ليکوال، تر څۀ حده ژورنالست او شاعر دى. خو ماته دا پته نۀ وه چې حيران صيب په برېښنائي موضوعاتو کې هم پوهه لري او ليکل پرې کولاى شي. همدا وجه وه چې کله ما "پښتو په . . . نور

Mir Afzal Khan , Nadeem Yaqub

Mir Afzal Khan, one of the most influential politicians the NWFP has ever had, epitomized the blend of feudal and capitalistic politics in the Frontier Province. He belonged to a family, which wielded influence even across the western borders of the country. His father, Sarfraz Khan, had married the grand-daughter of Amir Dost Mohammad Khan, the Afghan ruler who posed a serious challenge to British empire in India. . . . Read More

Random Generation of bi-directional Graphs in Omnet

Omar Usman

Publishing Date: Wednesday, July 4 2012

The Omnet usman.html manual has code for generation of random topologies. The type of network generated can contain uni-directional, or bi-directional edges. Usually, people working with networks require generation of bi-directional graphs only. What you will see here is a small hack to the Omnet Engine, which can enable you to do that. (Note: I am not an expert on Omnet so most probably there is another simpler way of doing this. If you do, please leave a comment).

The files you need to modify are:

  1. src/sim/distrib.cc
  2. include/distrib.h
  3. src/sim/nedfunctions.cc

Modifications to distrib.cc

You need to create a new function (runiform). What this does is that it retains the random number generated from a previous call to uniform(). The random number is generated every 2-calls.

double runiform(int rng) {
static int r = 0;
static double l = 0;
if(r%2 == 0) l = uniform(0,1);
return l;

Modifications to distrib.h

Just one line to be modified here:

SIM_API double runiform(int rng=0);

Modifications to nedfunctions.cc

The current usman.html manual (July 4, 2012) shows a different way of doing this. The code in the manual is not consistent with what I found in the source (4.2.2). You need to add the following code to where the other continuous random variate generation code is present.

"quantity runiform(int rng?)",
"Retains the value generated from a previous call to uniform()",
int rng = argc==2 ? (int)argv[1] : 0;
return cNEDValue(runiform(rng), argv[0].getUnit());

Compilation and Usage

If you have already compiled omnet once, you can simply run make and compile the engine again. When complete, fire up your editor and open your .NED file. You can now generate bi-directional graphs using the following code from the manual (which is adopted to this hack):

module RandomGraph {
int count;
double connectedness; // 0.0 submodules:
node[count]: Node {
connections allowunconnected:
for i=0..count-1, for j=0..count-1 {
node[i].out[j] --> node[j].in[i]
if i<j && runiform() > connectedness;
node[j].out[i] --> node[i].in[j]
if i<j && runiform() > connectedness;

Comments powered by Disqus

Random Generation of bi-directional Graphs in Omnet, Omar Usman
Published in Khyber.ORG on Wednesday, July 4 2012 (http://www.khyber.org)