[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Алгоритм Форда-Беллмана на PHP
razerblade
Помогите пожалуйста необходимо решить задачу а именно сделать php файл который содержал в себе алгоритм форда-беллмана и смог решить ниже поставленную задачу


Дан ориентированный или неориентированный граф G со взвешенными рёбрами. Длиной пути назовём сумму весов рёбер, входящих в этот путь. Требуется найти кратчайшие пути от выделенной вершины s до всех вершин графа.

Полусаеться надо ввести кол-во вершин графа,нажать далее и там должна будет появиться матрица смежности(какую пользователь сам потом будет заполнять).а после матрицы надо будет вставить вот этот алгоритм:
$k=1;
for($i=1;$i<=$n;$i++){
{x[$i]=$a[1][$i]}
while(k!=n){
$y[$s]=$x[$s];
for($i=1;$i<=$n;$i++){
if($y[$s]>$x[$i]+$a[$i][$s]){
$y[$s]=$x[$i]+$a[$i][$s];
}
}
for($i=1;$i<=$n;$i+1){
{x[$s]=$y[$s]}
}
$k=$k+1;
}
тут ещё есть пояснение
Обозначим через МинСт(1,s,к) наименьшую стоимость проезда из 1 в s менее чем с k пересадками. Тогда выполняется такое соотношение:

МинСт (1,s,k+1) = наименьшему из чисел МинСт(1,s,k) и МинСт(1,i,k) + a[i][s] (i=1..n)

Как отмечалось выше, искомым ответом является МинСт(1,i,n) для всех i=1..n.

k:= 1;

for i := 1 to n do begin x[i] := a[1][i]; end;

{инвариант: x[i] := МинСт(1,i,k)}

while k <> n do begin

| for s := 1 to n do begin

| | y[s] := x[s];

| | for i := 1 to n do begin

| | | if y[s] > x[i]+a[i][s] then begin

| | | | y[s] := x[i]+a[i][s];

| | | end;

| | end

| | {y[s] = МинСт(1,s,k+1)}

| | for i := 1 to n do begin x[s] := y[s]; end;

| end;

| k := k + 1;

end;

(а это этот же алгоритм переписанный на php
$k=1;
for($i=1;$i<=$n;$i++){
{x[$i]=$a[1][$i]}
while(k!=n){
$y[$s]=$x[$s];
for($i=1;$i<=$n;$i++){
if($y[$s]>$x[$i]+$a[$i][$s]){
$y[$s]=$x[$i]+$a[$i][$s];
}
}
for($i=1;$i<=$n;$i+1){
{x[$s]=$y[$s]}
}
$k=$k+1;
}
)

Главное,чтобы после введённого кол-ва вершин графа нажимаем далее и выводится матрица смежности,а после неё вставить алгоритм в код.

Властелины php помогите начинающему решить данную задачу




Спустя 11 минут, 51 секунда (25.09.2010 - 17:53) sergeiss написал(а):
В чем именно проблема? Вставить этот алгоритм в скрипт или сам алгоритм?

Спустя 15 минут, 35 секунд (25.09.2010 - 18:09) razerblade написал(а):
Проблема в том что бы работало, а у меня пытаюсь, пытаюсь не выходит.
Так как опыта и знаний в данной сфере маловато(

Передо мной мной поставлена задача чтобы после введённого кол-ва вершин графа нажимаем далее и выводится матрица смежности,(какую пользователь сам потом будет заполнять)а после неё вставить алгоритм в код.

Поэтому проблема во первых во мне, потому что полу нуб(
А из первого вытекает 2ая проблема которая заключается в том что не могу полностью правильно написать работоспособный скрипт, который выполнял бы поставленную задачу.

Знатоки если кто может помочь мне если не трудно напишите листинг с работающим скриптом, который все что нужно в задаче делает.
Ато я уже а прострации так как замучался а сдавать надо скоро=(((

Вознаграждение за умственный труд гарантирую
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.