Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

Sobol' and Halton sequences should start with 0 #953

@tupui

Description

@tupui

QMC sequences should starts with 0. Both Halton and Sobol' don't start with 0. This is also reflected the the sampling examples.

For Sobol' I've seen that you don't return the plain Sobol' sequence (which is accessible as a hidden method). IMO this is confusing and not really explained in the doc. Still, when asking for the first point of the sequence _sobol(..., 1) it should return [0, ...].

An even more concerning point is that by default you skip an arbitrary number of points in the sequence. This is wrong. Sobol' sequence follows a power of 2 logic. If you forget even 1 point (like the first point 0), the sequence is unbalanced and the convergence rate is deteriorated. And if you decide to skip 128 points for instance, then you can only sample 128 points afterwards the sequence is again unbalanced.

We are currently in the process of merging low discrepancy sequences (and LHS) into scipy (scipy/scipy#10844) and had this discussion with experts on the matter. You could either fix the zero and the skipping here or rely on this new scipy.stats.qmc submodule when it's merged.

Also, I don't get why Sobol' is not the default option (with scrambling) for gp_minimize.

PS. In the doc there is a misspell, it should be Sobol' and not Sobol.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions