TODOs

Filename: docs/src/index.md

  • Title: Add a simple example in the code above

    Line 76 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/docs/src/index.md [offset: 3305]

Filename: docs/src/background/abstractions.md

  • Title: Reference the solve and solve_qumo functions.

    Line 37 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/docs/src/background/abstractions.md [offset: 1651]

  • Title: Provide direct conversion from p-QUMO to QUMO.

    Line 45 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/docs/src/background/abstractions.md [offset: 2165]

Filename: ext/CUDAExt/engine.jl

  • Title: Have to adapt the following heuristic to the specific hardware.

    Line 39 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/ext/CUDAExt/engine.jl [offset: 1120]

    Notes: return cld(6.0e7 * problem.Size^(-1.381), 1)

end

Filename: ext/JuMPExt/attributes.jl

  • Title: This should be AOC's version instead!

    Line 96 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/ext/JuMPExt/attributes.jl [offset: 3014]

    Notes: MOI.get(::Optimizer, ::MOI.SolverVersion) = AOC.VERSION

Filename: scripts/optimize.jl

  • Title: Read input file and process; log result

    Line 182 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/scripts/optimize.jl [offset: 4601]

    Notes: error("Processing of input files is not implemented yet")

Filename: src/precompile.jl

  • Title: Precompile common cases

    Line 6 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/precompile.jl [offset: 116]

Filename: src/qubo.jl

  • Title: Greedy heuristic in GPU

    Line 6 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/qubo.jl [offset: 59]

    Notes: The code below implements a very simple greedy heuristic for QUBO problems. The heuristic is used for benchmarking purposed (e.g., what a very naive algorithm can do). The implementation is CPU-based. Ideally, we would like to implement a GPU-based version of the algorithm.

  • Title: Consider the choice of embedding the linear terms in the diagonal of the QUBO matrix

    Line 12 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/qubo.jl [offset: 381]

    Notes: The current implementation embeds the linear terms in the diagonal of the QUBO matrix. This is a common practice. However. it may lead to usability issues and confusion. We may need to reconsider this choice in the future.

Filename: src/Algorithms/enhanced_random.jl

  • Title: Add unit tests for the methods in EnhancedRandom

    Line 16 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/Algorithms/enhanced_random.jl [offset: 509]

Filename: src/FileFormats/qio.jl

  • Title: Document the QIO file format.

    Line 8 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/FileFormats/qio.jl [offset: 152]

    Notes: This is a custom JSON format that describes Ising and PUBO problems.

Filename: src/Solver/core.jl

  • Title: Improve the estimate of the rate of iterations

    Line 253 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/Solver/core.jl [offset: 9933]

    Notes: =# maxpossibleiterations = 4*ceil(Int, remainingtime * estimateiterationspersec)

Filename: src/Solver/estimators.jl

  • Title: Improve heuristics for computing optimal batch size.

    Line 91 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/Solver/estimators.jl [offset: 2316]

  • Title: Identify the best number of CPU threads to use for each architecture.

    Line 129 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/Solver/estimators.jl [offset: 3985]

    Notes: =#

Filename: src/Solver/results_stats.jl

  • Title: We are computing twice. The problem is that the first attempts outputs all iterations

    Line 114 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/Solver/results_stats.jl [offset: 3993]

Filename: src/api/api.jl

  • Title: Some CPUs now support Float16 and BFloat16.

    Line 53 of /home/runner/work/AOCoptimizer.jl/AOCoptimizer.jl/src/api/api.jl [offset: 1538]

    Notes: if T === Float16 || T === BFloat16 @warn "Computing with Float16 or BFloat16 on the CPU is not supported. Switching to Float32." if linear !== nothing linear = Float32.(linear) end return Float32, Float32.(matrix), nothing, linear end