39 lines
795 B
Odin
39 lines
795 B
Odin
package main
|
|
|
|
import "core:math/rand"
|
|
import "core:fmt"
|
|
import "base:runtime"
|
|
|
|
main :: proc() {
|
|
// Choose problem
|
|
problem_type := "feature_selection" // or "knapsack"
|
|
|
|
// state := rand.create(RANDOM_SEED)
|
|
// context.random_generator = runtime.default_random_generator(&state)
|
|
|
|
problem: Problem
|
|
switch problem_type {
|
|
case "knapsack":
|
|
if !load_knapsack_data() {
|
|
fmt.eprintln("Failed to load knapsack data")
|
|
return
|
|
}
|
|
problem = knapsack_problem()
|
|
|
|
case "feature_selection":
|
|
if !load_feature_data() {
|
|
fmt.eprintln("Failed to load feature data")
|
|
return
|
|
}
|
|
split_dataset()
|
|
precompute()
|
|
problem = feature_selection_problem()
|
|
|
|
fmt.println("=== Baseline (All Features) ===")
|
|
baseline := run_baseline()
|
|
fmt.printfln("RMSE: %.4f\n", baseline)
|
|
}
|
|
|
|
run_ga(problem)
|
|
}
|