Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Програмний засіб знаходження найкоротших шляхів в графі

Реферат Програмний засіб знаходження найкоротших шляхів в графі





Graph [i] .Title; .aGraph [i] .visible=this.aGraph [i] .Visible;

}

//потім підготувати вершіни.aVertex=new VertexSerialization [this.aVertex.Count]; (int i=0; i lt; tns.aVertex.Length; i ++)

{. aVertex [i]=new VertexSerialization () ;. aVertex [i] .colorR=this.aVertex [i] .Color.R; .aVertex [i] .colorG=this.aVertex [i] .Color.G; .aVertex [i] .colorB=this.aVertex [i] .Color.B; .aVertex [i] .deleted=this.aVertex [i] .Deleted; .aVertex [i]. description=this.aVertex [i] .Description; .aVertex [i] .enabled=this.aVertex [i] .Enabled; .aVertex [i] .selected=this.aVertex [i] .Selected; .aVertex [i].title=this.aVertex [i] .Title; .aVertex [i] .visible=this.aVertex [i] .Visible; .aVertex [i] .x=this.aVertex [i] .X; .aVertex [i ] .y=this.aVertex [i] .Y; .aVertex [i] .iGraph=this.aVertex [i] .iGraph;

}

//і, нарешті підготувати р? бра.aEdge=new EdgeSerialization [this.aEdge.Count]; (int i=0; i lt; tns.aEdge.Length; i ++)

{. aEdge [i]=new EdgeSerialization () ;. aEdge [i] .colorR=this.aEdge [i] .Color.R; .aEdge [i] .colorG=this.aEdge [i] .Color.G; .aEdge [i] .colorB=this.aEdge [i] .Color.B; .aEdge [i] .deleted=this.aEdge [i] .Deleted; .aEdge [i]. description=this.aEdge [i] .Description; .aEdge [i] .enabled=this.aEdge [i] .Enabled; .aEdge [i] .selected=this.aEdge [i] .Selected; .aEdge [i].title=this.aEdge [i] .Title; .aEdge [i] .visible=this.aEdge [i] .Visible; .aEdge [i] .srcvertex=this.aEdge [i] .srcVertex; .aEdge [i ] .destvertex=this.aEdge [i] .destVertex; .aEdge [i] .weight=this.aEdge [i] .Weight;

}

//і не забути зберегти ширину і висоту транспортної мережі

tns.width=this.Width; .height=this.Height;

}




ДОДАТОК Е


Опції для здійснення пошуку в глибину


//багатопотоковий пошук в шірінуvoid tbfs (object p)

{_ count ++;// збільшуємо кількість запущених потоковt=(ptbfs) p; .current_pathV.Push (t.start);// в стеку лежить шлях, а шлях ми починаємо з

стартовою вершіниv;// номер поточної вершини=t.current_pathV.Peek ();// дізнаємося номер поточної вершини (v == t.finish)

{

//якщо дійшли до фінальної вершини

lock (locker)

{(t.current_weight lt; best_weight)

{_ weight=t.current_weight; _path=new Stack lt; int gt; (t.current_pathV); _ pathE=new Stack lt; int gt; (t.current_pathE);

}

}

//якщо дійшли до фінальної вершини

}

{

//якщо ж ми не дійшли ще до фінальної вершини

//йти з цієї вершини в усі інші по черзі

foreach (int iE in tn.aVertex [v] .iEdge)

{vv;// один з варіантів, куди можна піти

if (tn.aEdge [iE] .srcVertex == v)=tn.aEdge [iE] .destVertex;=tn.aEdge [iE] .srcVertex;

if (t.current_pathV.Contains (vv) == true)//туди йти не можна, ми там вже

були;// і далі можна цю вершину не обраховують (tn.aVertex [vv] .Enabled == false)//в неї йти не можна, вона

заблокована;// і далі можна цю вершину не обраховують (tn.aEdge [iE] .Enabled == false)//по цьому ребру йти не можна, воно

заблоковане;// і далі можна цю вершин не обсчітиватьw=tn.aEdge [iE] .Weight;// вага того ребра по якому ми можемо

піти

lock (locker)

{(t.current_weight + w gt; best_weight)//є легші шляхи

continue;// і далі можна цю вершину не обраховують

} tr;// чи потрібна пересадка для потрапляння в наступну

//вона потрібна якщо вершини належать різним транспортним мережам

if (tn.aVertex [v] .iGraph!=tn.aVertex [vv] .iGraph)=1;=0; (t.current_transfer + tr gt; numericUpDownTransfer.Value)//є більш

короткі шляхи

continue;// і далі можна цю вершину не обраховують

ptbfs tt=new ptbfs () ;. current_pathV=new Stack lt; int gt; (t.current_pathV) ;. current_pathE=new Stack lt; int gt; (t.current_pathE);

//йти в цю вершину

//tt.current_pathV.Push (vv);// покласти в стек вершіну.current_pathE.Push (iE);// покласти в стек ребро

//йти в цю вершину

//перерахувати показники

tt.curren...


Назад | сторінка 20 з 24 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Пошук вершини в графі між двома заданими вершинами
  • Реферат на тему: Шизофренія. Лікувати, не можна хворіти
  • Реферат на тему: Коли працювати можна менше ...
  • Реферат на тему: Вправи, якими можна виміряти рівень розвитку координаційних здібностей