2013-08-28 3 views
0

Я занимаюсь разработкой веб-сайта для размещения секции в компании, и я застрял на следующую необходимости:ASP Классического выбор лучшего маршрута

компания имеет несколько филиалов и каждый из них имеют различные маршруты для отправки сообщения ,

Для Exemple Я думаю, как следующее:

Unit 1 отправить только блок 2, который посылает только на блок 3, ...

Так что, если я хочу, чтобы отправить кое-что из блока 1 к узлу 6, он должен пройти через устройство 2, 3, 4 и 5. до этого я был в состоянии сделать с кодом, который я хочу, но ниже:

<% 
origem = int(request.querystring("origem")) 
destino = int(request.querystring("destino")) 
codcorrespondencia = int(request.querystring("codcorrespondencia")) 

set rs = server.CreateObject("ADODB.Recordset") 
set rs2 = server.CreateObject("ADODB.Recordset") 

base = destino 
caminho = base 

do while not base = origem 
rs.open "select * from ESCALAS where codunidade_post = " & base, conexao 

    if not rs.fields("codunidade") = origem then 
     do while not rs.eof 
     rs2.open "select * from ESCALAS where codunidade_post = " & rs.fields("codunidade"), conexao 
      if not rs2.eof then 
      escalacao = int(rs.fields("codunidade")) & " - " & base & "; " & escalacao 'novas linhas 
      base = int(rs.fields("codunidade")) 
      end if 
     rs2.close 

     rs.movenext 
     loop 
    else 
    escalacao = rs.fields("codunidade") & " - " & base & "; " & escalacao 'novas linhas 
    base = origem 
    end if 
rs.close 
caminho = base & "," & caminho 
loop 

response.Write(escalacao) 
%> 

но, если следующая ситуация происходит:

блок 1 до 2, от 2 до 3, от 4 до 5, от 4 до 6 и от 5 до 6

выбирает код для отправки от 4 до 5 и от 5 до 6, вместо того, чтобы прямо от 4 до 6.

Как мой код может стать умным и выбрать самый короткий путь?

Для тестирования я положил var ESCALACAO. Это показывает мне способ выбора кода.

ответ

0

Похоже, вам нужно реализовать алгоритм кратчайшего пути, чтобы найти оптимальный маршрут для ваших сообщений, поскольку у вас есть несколько маршрутов от 4 до 6 (прямой 4-> 6 и непрямой 4-> 5-> 6).

См. Shortest Path Problem в Википедии.

Смежные вопросы