Main Changes
364 Thanks K-Suzuki-Jij
Organized all C++ test cases by directory.
Changes apply to `sample_hubo` only. To take advantage of these changes, specify a dictionary for `hubo` interactions. If `cimod.BinaryPolynomialModel` is specified, the previous unoptimized code will run.
- Optimized `sample_hubo` for especially small-sized problems.
- Parallelized for `num_reads`.
- Mixed string and integer indices can now be handled. For example, `hubo={(1,2), -1, ("a", 2): 3.0}` can be handled.
Minor Changes
- As an `updater`, the heat bath method can now be selected in addition to the Metropolis method (k-local is also available but not optimized for speed).
- As a `random_number_engine`, Mersenne Twister (32-bit/64-bit) can now be selected in addition to Xorshift. This random number engine is used for initializing spins/binary configurations and calculating transition probabilities. Note that spin/binary variables are sequentially updated.
- As a `temperature_schedule`, linear cooling can now be selected in addition to geometric cooling.
Destructive changes in this PR.
- `schedule: Optional[list]` has been deprecated. Temperature schedules cannot be given as a list.
- `initial_state: Optional[Union[list, dict]]` has been deprecated. The initial state is randomly selected. You can get the same result every time by fixing the seed.
- `reinitialize_state: Optional[bool]` has been deprecated. If num_reads is 2 or more, a new initial state is randomly generated for each sampling.
If you want to continue using the above features, you can use `_sample_hubo_old`.
Build system was fixed
Thanks 29rou