Skip to content

Commit 508483a

Browse files
committed
start cleaning up the code and benchmarks
1 parent ebc0af1 commit 508483a

5 files changed

Lines changed: 17 additions & 18 deletions

File tree

docs/src/custom_benchmarks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ AbstractBenchmark
1818
|------|----------|
1919
| `AbstractBenchmark` | Static, single-stage optimization (e.g. shortest path, portfolio) |
2020
| `AbstractStochasticBenchmark{true}` | Single-stage with exogenous uncertainty (scenarios drawn independently of decisions) |
21-
| `AbstractStochasticBenchmark{false}` | Single-stage with endogenous uncertainty (not yet used) |
21+
| `AbstractStochasticBenchmark{false}` | Single-stage with endogenous uncertainty |
2222
| `AbstractDynamicBenchmark{true}` | Multi-stage sequential decisions with exogenous uncertainty |
2323
| `AbstractDynamicBenchmark{false}` | Multi-stage sequential decisions with endogenous uncertainty |
2424

docs/src/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Where:
3232

3333
## Package Overview
3434

35-
**DecisionFocusedLearningBenchmarks.jl** provides a comprehensive collection of benchmark problems for evaluating decision-focused learning algorithms. The package offers:
35+
**DecisionFocusedLearningBenchmarks.jl** provides a collection of benchmark problems for evaluating decision-focused learning algorithms. The package offers:
3636

3737
- **Standardized benchmark problems** spanning diverse application domains
3838
- **Common interfaces** for creating datasets, statistical models, and optimization algorithms

docs/src/using_benchmarks.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ All data in the package is represented as [`DataSample`](@ref) objects.
1515
| `x` | any | Input features (fed to the statistical model) |
1616
| `θ` | any | Intermediate cost parameters |
1717
| `y` | any | Output decision / solution |
18-
| `context` | `NamedTuple` | Solver kwargs spread into `maximizer(θ; sample.context...)` |
19-
| `extra` | `NamedTuple` | Non-solver data (scenario, reward, step, …) never passed to the solver |
18+
| `context` | `NamedTuple` | Solver kwargs spread into `maximizer(θ; sample.context...)` |
19+
| `extra` | `NamedTuple` | Non-solver data (scenario, reward, step, …), never passed to the solver |
2020

2121
Not all fields are populated in every sample. For convenience, named entries inside
2222
`context` and `extra` can be accessed directly on the sample via property forwarding:

src/Argmax/Argmax.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ $TYPEDSIGNATURES
6060
6161
Return an argmax maximizer.
6262
"""
63-
function Utils.generate_maximizer(bench::ArgmaxBenchmark)
63+
function Utils.generate_maximizer(::ArgmaxBenchmark)
6464
return one_hot_argmax
6565
end
6666

src/Utils/interface.jl

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ Abstract type interface for benchmark problems.
66
# Mandatory methods to implement for any benchmark:
77
Choose one of three primary implementation strategies:
88
- Implement [`generate_instance`](@ref) (returns a [`DataSample`](@ref) with `y=nothing`).
9-
The default [`generate_sample`](@ref) then applies `target_policy` if provided.
10-
- Override [`generate_sample`](@ref) directly when the sample requires custom logic. In this case,
9+
The default [`generate_sample`](@ref) forwards the call directly; [`generate_dataset`](@ref)
10+
applies `target_policy` afterwards if provided.
11+
- Override [`generate_sample`](@ref) directly when the sample requires custom logic.
1112
[`generate_dataset`](@ref) applies `target_policy` to the result after the call returns.
1213
- Override [`generate_dataset`](@ref) directly when samples cannot be drawn independently.
1314
@@ -40,20 +41,18 @@ function generate_instance(bench::AbstractBenchmark, rng::AbstractRNG; kwargs...
4041
end
4142

4243
"""
43-
generate_sample(::AbstractBenchmark, rng::AbstractRNG; target_policy=nothing, kwargs...) -> DataSample
44+
generate_sample(::AbstractBenchmark, rng::AbstractRNG; kwargs...) -> DataSample
4445
4546
Generate a single [`DataSample`](@ref) for the benchmark.
4647
47-
**Framework default** (when [`generate_instance`](@ref) is implemented):
48-
Calls [`generate_instance`](@ref), then applies `target_policy(sample)` if provided.
48+
**Default** (when [`generate_instance`](@ref) is implemented):
49+
Calls [`generate_instance`](@ref) and returns the result directly.
4950
50-
Override directly (instead of implementing [`generate_instance`](@ref)) when the sample
51-
requires custom logic. In this case, [`generate_dataset`](@ref) applies `target_policy`
52-
after the call returns.
51+
Override this method when sample generation requires custom logic. Labeling via
52+
`target_policy` is always applied by [`generate_dataset`](@ref) after this call returns.
5353
"""
54-
function generate_sample(bench::AbstractBenchmark, rng; target_policy=nothing, kwargs...)
55-
sample = generate_instance(bench, rng; kwargs...)
56-
return isnothing(target_policy) ? sample : target_policy(sample)
54+
function generate_sample(bench::AbstractBenchmark, rng; kwargs...)
55+
return generate_instance(bench, rng; kwargs...)
5756
end
5857

5958
"""
@@ -63,8 +62,8 @@ Generate a `Vector` of [`DataSample`](@ref) of length `dataset_size` for given b
6362
Content of the dataset can be visualized using [`plot_data`](@ref), when it applies.
6463
6564
By default, it uses [`generate_sample`](@ref) to create each sample in the dataset, and passes any
66-
keyword arguments to it. If `target_policy` is provided, it is applied to each sample after
67-
[`generate_sample`](@ref) returns.
65+
keyword arguments to it. `target_policy is applied if provided, it is called on each sample
66+
after [`generate_sample`](@ref) returns.
6867
"""
6968
function generate_dataset(
7069
bench::AbstractBenchmark,

0 commit comments

Comments
 (0)