class TTP
- TTP
- Reference
- Object
Defined in:
ttp-inst/ttp.crttp-inst/ttp/ttp-evaluation.cr
ttp-inst/ttp/ttp-io.cr
ttp-inst/ttp/ttp-sol-validation.cr
Constructors
Class Method Summary
-
.load(filename : String)
Lee el archivo de instancia y regresa el objeto que la representa.
Instance Method Summary
-
#acc_wgt(sol : Thief)
Peso acumulado en cada parada del recorrido
- #cities : Array(City)
-
#cities_wgt(plan : Plan)
Peso de los objetos seleccionados en cada ciudad
-
#dist(row, col)
Cálculo de la distancia
-
#distance(sol : Thief)
Calcula la distancia total del recorrido
- #edge_type : String
-
#fitness(sol : Thief)
Función objetivo del TTP , debe maximizarse, representa la ganancia final de vender los objetos recolectados y pagar la renta de transportarlos por el tiempo que toma recorrer la ruta especificada.
-
#fitness_errors(fit : String, thief : String, tp_separator = " ", lmnt_separator = ",")
Validación del resultado de fitness se compara el valor
fit
frente al cálculo. - #items : Array(Item)
- #kp_type : String
- #mn_vel : Float64
- #mx_vel : Float64
- #mx_wgt : Int32
- #name : String
- #ncities : Int32
- #nitems : Int32
- #nu : Float64
-
#plan_errors(str : String, separator = ",")
Plan validation
-
#profit(plan : Plan)
Ganancia que se obtiene por la suma del valor de los objetos recolectados.
-
#rem_dist(sol : Thief)
Distancia faltante para terminar el recorrido en cada paso.
-
#rem_dist_at_city(sol : Thief)
Distancia faltante para terminar el recorrido en cada ciudad
- #rratio : Float64
-
#thief_errors(str : String, tp_separator = " ", lmnt_separator = ",")
Validación de una solución
-
#time(sol : Thief)
Tiempo que tarda en visitarse las ciudades del recorrido, el tiempo se ve afectado por los objetos seleccionados, entre mayor peso se lleve mas lento se recorre.
-
#tour_errors(str : String, separator = ",")
Tour validation
-
#wgt(sol : Thief)
Extra --------------------------------------------------------------------- Calcula el peso total de la recolección de objetos
Constructor Detail
Class Method Detail
Lee el archivo de instancia y regresa el objeto que la representa.
El formato del archivo esperado es :
________________________________________________________________
| PROBLEM_NAME: a280-TTP |
| KNAPSACK_DATA_TYPE: uncorrelated |
| DIMENSION: 280 |
| NUMBER_OF_ITEMS: 279 |
| CAPACITY_OF_KNAPSACK: 25437 |
| MIN_SPEED: 0.1 |
| MAX_SPEED: 1 |
| RENTING_RATIO: 7.76 |
| EDGE_WEIGHT_TYPE: CEIL_2D |
| NODE_COORD_SECTION (INDEX, X, Y): |
| 1 100 200 |
| ... |
| ITEMS_SECTION (INDEX, PROFIT, WEIGHT, ASSIGNED_NODE_NUMBER): |
| 1 788 971 2 |
| ... |
|________________________________________________________________|
Instance Method Detail
Peso acumulado en cada parada del recorrido
w[0]=wgt
| w[1]=w[0]+wgt
| | w[-1]=w[-2]+wgt
t[0] -> t[1] -> ... -> t[-1]
Función objetivo del TTP , debe maximizarse, representa la ganancia final de vender los objetos recolectados y pagar la renta de transportarlos por el tiempo que toma recorrer la ruta especificada.
dz
F(Ξ,Π) = Σ p + ρ Σ --------
p∈Π z∈Ξ v(w(z))
Validación del resultado de fitness se compara el valor fit
frente al cálculo. Se considera correcto si son iguales empleando una
tolerancia de 0.001
.
Plan validation
- Items must be represented with 0 or 1
- The plan must have the same number of items as the instance
- The total weight of selected items must be <= to the capacity
Returns a flag with the errors found in the plan
Ganancia que se obtiene por la suma del valor de los objetos recolectados.
Distancia faltante para terminar el recorrido en cada paso.
d[0]= -------------------------------| rem_dist[0]
d[1]= ----------------------| rem_dist[1]
d[-2]--------------| rem_dist[-2]
d[-1]= -----| rem_dist[-1]
[0] -> [x] -> ... -> [x] -> [0]
0 1 -1
Distancia faltante para terminar el recorrido en cada ciudad
d[t[0]] -----------------------------| rem_dist_at_city[tour[0]]
d[t[1]] --------| rem_dist_at_city[tour[1]]
d[t[-2]] ---------------------| rem_dist_at_city[tour[-2]]
d[t[-1]] -------------| rem_dist_at_city[tour[-1]]
[0] -> [x] -> ... -> [x] -> [0]
0 1 -1
Validación de una solución
str es una cadena de texto que representa a la solución con la forma
"1,2,3,4 0,0,0,1,0,1"
en donde tp_separator
separa el recorrido del plan de recolección y
lmnt_separator
separa cada elemento del plan y del recorrido.
Un plan válido debe cumplir las siguientes caracteristicas
- La cadena de texto debe tener el recorrido seguido por el plan de recolección
- Las ciudades deben visitarse una sola vez (sin repetición).
- El recorrido debe tener la cantidad de ciudades correcta para la instancia
- El recorrido debe iniciar en la ciudad '1'
- Las ciudades deben ser representadas en el rango
(1 .. #ciudades)
- El peso total de los objetos seleccionados debe ser menor o igual que la capacidad
- El plan de recolección debe tener la cantidad de objetos correcta para la instancia
- Los objetos a recolectar deben ser representados con '1' (seleccionado) o '0' (ignorado).
Tiempo que tarda en visitarse las ciudades del recorrido, el tiempo se ve afectado por los objetos seleccionados, entre mayor peso se lleve mas lento se recorre.
tour[0] -> ... -> tour[i] -> ... -> tour[-1]
tour.size - 1
tiempo = Σ tiempo ir de tour[i] a tour[i+1] con peso w[i]
0
Tour validation
- Each city must be visited once and only once
- The tour must have the same number of items as the instance
- The tour must start from the city '1'
- Cities must be represented with ids form
(1 .. ncities )
Returns a flag with the errors found in the plan
Extra --------------------------------------------------------------------- Calcula el peso total de la recolección de objetos