Final Report

Basic Info

Name: Eeshan Gupta (eeshan9815)

Proposal: Guaranteed Root Finding and Global Optimization with Intervals (link)

Mentor: David Sanders (dpsanders)

Organization: NumFOCUS (Julia)

Category: Package

Major repositories for the work: IntervalConstraintProgramming.jl, IntervalRootFinding.jl, IntervalOptimisation.jl, IntervalArithmetic.jl

Pull Requests

Tasks Related PRs Status
Interval Constraint Propagation using a Tape IntervalConstraintProgramming.jl#97 Open
Recording getindex to make gradients work IntervalConstraintProgramming.jl#100 Open
Fix deprecations for Julia 0.7 IntervalConstraintProgramming.jl#101 Open
Global Optimisation IntervalOptimisation.jl#9 Open
Interval Newton Method for one dimension IntervalRootFinding.jl#39 Merged
Robustness and efficiency for newton1d IntervalRootFinding.jl#50 Merged
System of Linear Equations IntervalRootFinding.jl#67 Merged
Solvers for Quadratic Interval Equations IntervalRootFinding.jl#68 Merged
Automatic evaluation of slope expansions IntervalRootFinding.jl#69 Merged
Slope Interval Newton method IntervalRootFinding.jl#73 Open
Automatic evaluation of multidimensional slope IntervalRootFinding.jl#76 Open
Linear Hull IntervalRootFinding.jl#79 Open
Multidimensional Interval Newton Method IntervalRootFinding.jl#81 Open
Fix deprecations and upgrade to 0.7 IntervalRootFinding.jl#89 Open
extended_div IntervalArithmetic.jl#111 Merged
abs2 IntervalArithmetic.jl#101 Merged
Bug in extended_div IntervalArithmetic.jl#146 Merged
Set Operations IntervalArithmetic.jl#154 Merged
Hashing for Intervals IntervalArithmetic.jl#161 Merged
Interoperability between IntervalBox and SVector IntervalArithmetic.jl#166 Merged

Blog Posts

Blog posts summarizing the work done during the entire period.

  1. Getting Selected and First Two Weeks
  2. Weeks 3 and 4
  3. Coding Phase-II
  4. Coding Phase-III

Future Work

  • Integrate the global optimisation into JuMP since it’s the standard for Mathematical Optimisation in Julia
  • Improve constrained optimisation using John Conditions
  • Rewrite IntervalConstraintProgramming using Cassette and follow the development cycle of Capstan
  • Keep maintaining everything implemented until now, and finding new algorithms to improve the performance and robustness
  • Integrate ICP into IntervalRootFinding and make root finding more efficient

Acknowledgements

I would like to thank Dr. David P. Sanders for mentoring me throughout the project, and for his incredible patience and support.

My code builds upon

Shoutout to the entire Julia community for being awesome and amazingly helpful!

Written on August 13, 2018