By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,795 Members | 1,660 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,795 IT Pros & Developers. It's quick & easy.

finding shortest path

P: 4
I am developing a program using VB.NET that will accept a start and end
location (2 list boxes), the system then will generate the shortest path to reach the end point.
for your information i got a code in C and succesfully translated it into vb.net. however this code had fix the length during the declaration. what i want to do now is keep the distances in database (sql server) and during calculation it'll retrieve data from database.i had create the database in sql server. the problem now is how to start the calculation. Anyone here have idea on doing this or some code examples that can share it with me. how could i edit these code into something like that. please help me since i am new with this.

Thanks in advance.

below is the code i had translated from C to vb.net. i want to get the output just like the code velow. ikindly please guide and help me.


Expand|Select|Wrap|Line Numbers
  1. Public Class WebForm1
  2. Inherits System.Web.UI.Page
  3.  
  4. Public Const VERTEXNUM As Integer = 4
  5. Public Const HUGE As Integer = 32000
  6. Public Shared vertices() As String = {"Bukit Bintang", "China Town", "Chow Kit", "Istana Negara"}
  7.  
  8. Public Shared edges(,) As Double = {{0, 0.9, 2.1, 3.1}, {0.9, 0, 2.2, 1.4}, {2.1, 2.2, 0, 3.4}, {3.1, 1.4, 3.4, 0}}
  9.  
  10.  
  11. Public visited(VERTEXNUM) As Integer
  12. Public curMinCost As Integer = HUGE
  13.  
  14. Public curMinHamNum As Integer = 0
  15. Public currentRoute(VERTEXNUM) As Integer
  16.  
  17. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  18.  
  19. main()
  20.  
  21. End Sub
  22.  
  23.  
  24. Public Function main() As Integer
  25.  
  26. Dim start As Integer = 0
  27. Dim j As Integer
  28.  
  29.  For j = 0 To VERTEXNUM - 1
  30.  
  31. If (j <> start) Then
  32. findRoute(start, j, edges(start, j), 0)
  33. End If
  34. Next j
  35.  
  36.  
  37. TextBox1.Text &= "lowest cost hamiltonian cycle: " & curMinHamNum & " w/ cost " & curMinCost & Environment.NewLine
  38.  
  39. 'changing line as follows will allow all 7 lines to be printed in WinForms application
  40.  
  41. Return 0
  42.  
  43. End Function
  44.  
  45.  
  46. Public Sub findRoute(ByVal start As Integer, ByVal current As Integer, ByVal costSoFar As Integer, ByVal numVisited As Integer)
  47.  
  48. Dim j As Integer
  49. currentRoute(numVisited) = current
  50.  
  51.  
  52.  
  53. If (current = start) Then
  54. If (numVisited = VERTEXNUM - 1) Then
  55. foundHamiltonian(start, costSoFar + edges(current, start))
  56. End If
  57. Else
  58. visited(current) = 1
  59. For j = 0 To VERTEXNUM - 1
  60.  
  61. If (visited(j) = 0) Then
  62. findRoute(start, j, costSoFar + edges(current, j), numVisited + 1)
  63. End If
  64. Next j
  65. visited(current) = 0
  66.  
  67. End If
  68.  
  69. End Sub
  70.  
  71. Public Sub foundHamiltonian(ByVal start As Integer, ByVal cost As Integer)
  72.  
  73. Dim j As Integer
  74. Static hamNum As Integer = 0
  75.  
  76. hamNum = hamNum + 1
  77.  
  78. TextBox1.Text &= "#:" & hamNum & " " & vertices(start)
  79.  
  80. For j = 0 To VERTEXNUM - 1
  81.  
  82. TextBox1.Text &= "->" & vertices(currentRoute(j))
  83. Next j
  84.  
  85. TextBox1.Text &= "costs " & cost & Environment.NewLine
  86.  
  87. If (cost < curMinCost) Then
  88. curMinCost = cost
  89. curMinHamNum = hamNum
  90. End If
  91.  
  92. End Sub
  93.  
  94. End Class
Oct 5 '07 #1
Share this Question
Share on Google+
5 Replies


kenobewan
Expert 2.5K+
P: 4,871
Still unsure where the problem lies, you are having trouble using foundHamiltonian?
Oct 5 '07 #2

P: 4
what i mean is...i had kept the distance and edges in database. right now is i want to adjust the code just like mapping system. there will be start and end location user could select ( 2 list boxes)..and then once calculate button is clicked...system will run the code. it different from what i do now since the code above i set the distance and vertices in the code, not in the database.
how could i adjust the code that could integrate with the sql database created? i wish to get the output same as the code that i paste above. please help me with this
Oct 6 '07 #3

kenobewan
Expert 2.5K+
P: 4,871
If you are going to use a database, then you have use a connection and queries. Here is a good place to start with a connection string.
Oct 6 '07 #4

P: 4
i have a question here.i want to increase the number of location(vertexnum) involve to 15. firstly i up the number of location to 5. but the output doesnt show up. what should i change instead of the value of VERTEXNUM, edges and vertices?
Oct 7 '07 #5

P: 4
i have a question here.i want to increase the number of location(vertexnum) involve to 15. firstly i up the number of location to 5. but the output doesnt show up. what should i change instead of the value of VERTEXNUM, edges and vertices?
Oct 7 '07 #6

Post your reply

Sign in to post your reply or Sign up for a free account.