Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- end
- for i = 0:n-1
- for j = i+1:n
- costmatrix[i+1, j] = f[i+1] + c[i+1]*Dmatrix[i+1,j]
- end
- end
- ########################Variables
- x = [0, 0, 0, 0]
- y = [0, 0, 0, 0]
- current = 1
- optimale = zeros(Int32, n)
- for i = 1:n
- optimale[i] = -1
- end
- ########################Calculations functions
- function foo(costs, size)
- if(size == 1)
- return costs[1,1]
- else
- minimal = 9999999
- for i = 1:size
- newmatrix = zeros(Int32, size-i, size-i)
- for j = 1:size-i
- for k = 1:size-i
- a = i+j
- b = i+k
- newmatrix[j,k] = costs[a, b]
- end
- end
- if(size-i == 0)
- if(minimal > costs[1,i])
- minimal = costs[1,i]
- end
- else
- if(minimal > costs[1,i] + foo(newmatrix, size-i))
- minimal = costs[1,i] + foo(newmatrix, size-i)
- end
- end
- end
- return minimal
- end
- end
- function getSumOfPath(matrix, size, path)
- sum = 0
- i = 2
- sum = matrix[1, path[1]]
- while path[i] != -1 && i < size
- sum = sum + matrix[i+1, path[i]]
- i = i + 1
- end
- return sum
- end
- function getPathFromCost(targetedCost, costs, size)
- testedPath = zeros(Int32, n)
- correctPath = zeros(Int32, n)
- for l = 1:size
- correctPath[l] = -1
- end
- for i = 1:size
- for l = 1:size
- testedPath[i] = -1
- end
- for j = 1:size-i
- testedPath[j] = i+j
- println(testedPath[j])
- end
- if(getSumOfPath(costs, size, testedPath) == targetedCost)
- println(getSumOfPath(costs, size, testedPath))
- correctPath = testedPath
- end
- end
- return correctPath
- end
- ########################Calculate and print results
- solveTime = @elapsed (minCost = foo(costmatrix, n))
- lolPath = [2, 4, -1, -1]
- lolSize = 4
- getPathFromCost(minCost, costmatrix, n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement