Knapsack problem/Bounded: Difference between revisions

Line 3,138:
Solution of the task using genetic algorithm.
 
<lang R>library(tidyverse)
library(tidyverse)
library(rvest)
library(rgenoud)
Line 3,158 ⟶ 3,157:
total_value= sum(task_table$value * x)
total_weight= sum(task_table$weight * x)
ifelse(total_weight <= 400, total_value, -(400-total_weight)^2)
}
 
Line 3,168 ⟶ 3,167:
evolution= genoud(fn= fitness,
nvars= nrow(allowed),
max= TRUE,
hardpop.generation.limitsize= FALSE10000,
wait.generations= 100,
solution.tolerance= 1,
data.type.int= TRUE,
Domains= allowed)
 
# Solution
cat("Weight:", sum(task_table$weight * evolution$par), "dag", "\n")
cat("Value: ", evolution$value, "\n")
cat("Weight:", sum(task_table$weight * evolution$par), "dag", "\n")
data.frame(item= task_table$items, pieces= as.integer(solution)) %>%
filter(solution> 0)</lang>
Line 3,183 ⟶ 3,180:
{{out}}
<pre>
WeightValue: 399 dag1010
ValueWeight: 396 990dag
item pieces
1 map 1
Line 3,200 ⟶ 3,197:
13 socks 1
</pre>
 
 
=={{header|Racket}}==