Skip to content

Commit 5f2ccca

Browse files
committed
cleanup + fix tests
1 parent ed01c45 commit 5f2ccca

21 files changed

+182
-293
lines changed

src/DecisionFocusedLearningBenchmarks.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ using .Utils
6262

6363
# Interface
6464
export AbstractBenchmark, AbstractStochasticBenchmark, AbstractDynamicBenchmark, DataSample
65-
export AbstractEnv, get_seed, is_terminated, observe, reset!, step!
65+
export AbstractEnvironment, get_seed, is_terminated, observe, reset!, step!
6666

6767
export Policy, run_policy!
6868

src/DynamicAssortment/DynamicAssortment.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function Utils.generate_maximizer(b::DynamicAssortmentBenchmark)
7272
end
7373

7474
function Utils.generate_environment(
75-
::DynamicAssortmentBenchmark, instance::Instance, rng::AbstractRNG
75+
::DynamicAssortmentBenchmark, instance::Instance, rng::AbstractRNG; kwargs...
7676
)
7777
seed = rand(rng, 1:typemax(Int))
7878
return Environment(instance; seed)

src/DynamicAssortment/policies.jl

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,3 @@ function greedy_policy(env::Environment)
1919
maximizer = generate_maximizer(env.instance.config)
2020
return maximizer(prices(env))
2121
end
22-
23-
function run_policy(env::Environment, episodes::Int; first_seed=1, policy=expert_policy)
24-
dataset = []
25-
rev_global = Float64[]
26-
for i in 1:episodes
27-
rev_episode = 0.0
28-
CommonRLInterface.reset!(env; seed=first_seed - 1 + i, reset_seed=true)
29-
training_instances = []
30-
while !CommonRLInterface.terminated(env)
31-
S = policy(env)
32-
features = CommonRLInterface.observe(env)
33-
push!(training_instances, DataSample(; x=features, y_true=S))
34-
reward = CommonRLInterface.act!(env, S)
35-
rev_episode += reward
36-
end
37-
push!(rev_global, rev_episode)
38-
push!(dataset, training_instances)
39-
end
40-
return mean(rev_global), rev_global, dataset
41-
end

src/DynamicVehicleScheduling/DynamicVehicleScheduling.jl

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,17 @@ include("static_vsp/parsing.jl")
2525
include("static_vsp/solution.jl")
2626
include("static_vsp/plot.jl")
2727

28-
# dynamic environment
29-
include("environment/instance.jl")
30-
include("environment/state.jl")
31-
include("environment/scenario.jl")
32-
include("environment/environment.jl")
33-
include("environment/plot.jl")
28+
include("instance.jl")
29+
include("state.jl")
30+
include("scenario.jl")
31+
include("environment.jl")
32+
include("plot.jl")
3433

35-
include("algorithms/prize_collecting_vsp.jl")
36-
include("algorithms/anticipative_solver.jl")
37-
38-
include("learning/features.jl")
39-
include("learning/2d_features.jl")
34+
include("maximizer.jl")
35+
include("anticipative_solver.jl")
4036

37+
include("features.jl")
4138
include("policy.jl")
42-
# include("policy/abstract_vsp_policy.jl")
43-
# include("policy/greedy_policy.jl")
44-
# include("policy/lazy_policy.jl")
45-
# include("policy/anticipative_policy.jl")
46-
# include("policy/kleopatra_policy.jl")
47-
48-
include("maximizer.jl")
4939

5040
"""
5141
$TYPEDEF
@@ -84,7 +74,7 @@ function Utils.generate_dataset(b::DynamicVehicleSchedulingBenchmark, dataset_si
8474
end
8575

8676
function Utils.generate_environment(
87-
::DynamicVehicleSchedulingBenchmark, instance::Instance, rng::AbstractRNG
77+
::DynamicVehicleSchedulingBenchmark, instance::Instance, rng::AbstractRNG; kwargs...
8878
)
8979
seed = rand(rng, 1:typemax(Int))
9080
return DVSPEnv(instance; seed)

src/DynamicVehicleScheduling/algorithms/prize_collecting_vsp.jl

Lines changed: 0 additions & 128 deletions
This file was deleted.

src/DynamicVehicleScheduling/learning/features.jl renamed to src/DynamicVehicleScheduling/features.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,20 @@ end
4040
function compute_features(env::DVSPEnv)
4141
return compute_features(env.state, env.instance)
4242
end
43+
44+
function get_features_meanTimeToRequests(state::DVSPState, instance::Instance)
45+
quantiles = [0.5]
46+
a = instance.static_instance.duration[state.location_indices, 2:end]
47+
quantileTimeToRequests = mapslices(x -> quantile(x, quantiles), a; dims=2)
48+
return quantileTimeToRequests
49+
end
50+
51+
function compute_2D_features(state::DVSPState, instance::Instance)
52+
timeDepotRequest = state.state_instance.duration[:, 1][state.is_postponable]
53+
quantileTimeToRequests = get_features_meanTimeToRequests(state, instance)[state.is_postponable]
54+
return hcat(timeDepotRequest, quantileTimeToRequests)'
55+
end
56+
57+
function compute_2D_features(env::DVSPEnv)
58+
return compute_2D_features(env.state, env.instance)
59+
end

src/DynamicVehicleScheduling/learning/2d_features.jl

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)