Isaac Klickstein
  • github
  • linkedin

Some Useful Resources

These are open source software, libraries, and tools that I have found to be incredibly useful throughout my graduate studies.

Links and Descriptions

  • igraph

    A comprehensive graph theory library written in C with interfaces in Python and R. Many of the graph theoretic work I have done has relied on the ability to create many random graphs, analyze these graphs, and manipulate them. Writing the code to perform these tasks would have taken more hours than I can count so igraph has been a real time saver. Not to mention the API is intuitive and only takes a couple of days before you are writing code to perform complex tasks.

  • Ipopt

    Constrained optimization problems arose throughout my research from finding unstable fixed points in large nonlinear dynamical systems to solving discretized optimal control problems. A fast NLP solver with an intuitive interface was necessary. Matlab's 'fmincon' could not cut it speed-wise. Instead, Ipopt, developed by Coin-OR, has become my workhorse for solving all the NLPs I encounter. Ipopt's benefits include great documentation, detailed control over all algorithmic parameters, simple intuitive API, interfaces for Matlab and Python, and competitive speeds when compared with top of the line commercial optimization software like snopt and knitro.

  • ADOL-C

    Derivatives of complex vector valued functions arise often in optimization as well as the LOCS routine discussed in my paper "Locally Optimal Control of Complex Networks". Analytically computing the Jacobian or Hessian of complex functions is prone to error, and computing them symbolically is computationally expensive in both storage and execution. Also, numerical differentiation necessarily contains errors. Instead, 'automatic differentiation' ( read more at Wikipedia ) provides an alternative to both symbolic differentiation and numerical differentiation. Especially useful is an out-of-the-box interface with Ipopt so that ADOL-C provides the required computations of the gradient, Jacobian, and Hessian requested by Ipopt's algorithm.

  • PSOPT

    Optimal control is the intersection of dynamical systems, the calculus of variations, and optimization. Powerful analytic tools allow one to derive the set of necessary conditions a control signal must satisfy to be optimal. Unfortunately, the analytic tools leave one with a usually intractable two point boundary value problem (with notable exception LQR). Instead, one can discretize the BVP into a system of algebraic equations, thus converting the Optimal Control Problem (OCP) into a Nonlinear Programming problem (NLP). PSOPT is a library with the tools to perform the necessary discretization, and an interface to Ipopt to solve the resulting NLP. PSOPT also contains many auxiliary tools such as a RK45 ODE solver, mesh refinement tools, post-processing, graphics interface, to make numerically solving OCPs simple and straightforward.

Menu

  • Homepage
  • Publications
  • Projects
    • Control of Lattice Graphs
    • Graphs with Symmetry
    • Target Control
    • Multi-Drug Therapies
  • Software
    • Lattice Graphs
    • Quotient Graphs
  • Classes
  • Resources

Biography

Hello, my name is Isaac Klickstein, currently living in Albuquerque, New Mexico. I am working on my PhD in the mechanical engineering department at the University of New Mexico. My research involves optimal control, network science, and regular graphs. I will be graduating in December, 2019 and moving to New England in January, 2020.

Get in touch

  • iklick@unm.edu
  • Department of Mechanical Engineering MSC01 1150
    1 University of New Mexico
    Albuquerque, NM 87131