Giter Site home page Giter Site logo

realife-brahmin / wsu-convex-nonlinear-nonsmooth-analysis-and-optimization Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 90.63 MB

Convex, Nonsmooth, Nonlinear Optimization Solver and Problems

Julia 92.83% Python 4.87% MATLAB 2.30%
constrained-optimization derivative-based-optimization derivative-free-optimization genetic-algorithm linesearch nelder-mead-simplex optimization-algorithms quadratic-programming quasi-newton-method trust-region-methods

wsu-convex-nonlinear-nonsmooth-analysis-and-optimization's Introduction

MATH 564: Convex and Nonlinear Optimization and MATH 565: Nonsmooth Analysis and Optimization

Prof. Thomas Asaki | Fall 2023 and Spring 2024

Julia implementations for the two courses at Washington State University, Pullman.

This repo contains a solver in julia , and different types of optimization problems to solve for.

Projects as part of the two courses:

  • Parameter Estimation (Estimating DampedSHM parameters)
  • Functional Estimation (Estimating a function which minimizes drag force)
  • Signal Denosing (Fitting a curve to data, choosing between abiding smoothness of curve or accuracy of fitting)
  • Neural Network Training (Detecting Liver Disease in a dataset of patients based on 10 features)
  • Minimum Time Trajectory (for a 2D Speed Matrix, and given points A and B on the plane, compute the trajectory minimizing the time of travel)
  • Final Project (Computing the optimal placement of a receiver, given the location of several transmitters)
  • Derivative Free Optimization Methods (implementation of Genetic Algorithm and Nelder Mead Simplex Method)
  • Equality Constrained Quadratic Programming (detecting location of fire based on some boundary constraints which can be expressed as an ECQP)
  • Active Set Quadratic Programming (finding optimal locations for substations in various communities to minimize electric transmission losses)

LineSearch/TrustRegion Methods Used:

  • Gradient Descent
  • Quasi Newton BFGS
  • Projected Gradient Conjugate Gradient Method
  • Note: Conjugate Gradient Descent Method hasn't been supported in a while, and has issues.
  • Note: SR1 based Trust Region Method implementation has been indefinitely paused, in favour of more urgent tasks.

Heuristic Methods Available:

  • Genetic Algorithm
  • Nelder Mead Simplex Algorithm

Space Sampling Methods Available:

  • Halton Sequence Sampling
  • Latin Hypercube Sampling

Step-selection Algorithms Used:

  • Strong Wolfe + Bisection Interpolation
  • Armijo + Backtracking (support removed, always use Strong Wolfe henceforth

wsu-convex-nonlinear-nonsmooth-analysis-and-optimization's People

Contributors

realife-brahmin avatar

Stargazers

 avatar

Watchers

 avatar

wsu-convex-nonlinear-nonsmooth-analysis-and-optimization's Issues

Scripts for non-working algorithms can be archived.

Algos like Conjugate Gradient and Trust Region, which really need a re-write based on my Dict() based data structures can be shelved. I'll get back to rewriting them after the semester perhaps, or never, but at least my src/ will be less cluttered.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.