Projects

These are some of the projects that I have been engaged in the last few years. Mostly, the stuff in here is concerned with optimization problems or mathematical modeling.

Convexification by Averages

Master’s thesis

Average of non-convex functions

This is a work in non-convex stochastic optimization. The main concern consists of taking advantage of the natural probabilistic nature of these problems to make them more computationally tractable.

You can read the thesis or just take a peek at the defense’s slides to know what it is all about.

Throughout my Masters, I’ve worked in two technical collaboration projects between UFRJ and the Brazilian Operator of the National Electricity System (ONS). The last project applied the ideas in my thesis to show the possibility of improvement in the convergence of multistage stochastic optimization problems that are fundamental to the Brazilian distribution of energy. We wrote two technical reports (in Portuguese) for these projects, which can be found here and here.

Hodge.jl

Applications of Hodge Theory to statistical rankings

One of the most powerful tools available to study the algebraic topology of manifolds is the Hodge decomposition. Recently, a discrete analogous of it has been successfully applied for better understanding how one may transform a pairwise ranking that is cyclically inconsistent into some kind of global ordering.

The Julia package Hodge.jl is a library implementing the necessary tools of computational algebraic topology to easily utilize the Hodge decomposition. The available structures are representations for simplicial complexes and the algebra of cochains (discrete analogues of differential forms) as well as methods for calculating Betti numbers and the Hodge decomposition.

If you want to see more of this package, feel free to read the project’s documentation or take a look at the source code. Comments and contributions are always welcome!

DeformableBodies.jl

Simulate the dynamics of self-deforming bodies

Falling cat simulation

A common problem when engineering or studying mechanical systems consists of studying the possible motions of a given body in a controlled setting, such as in a lab, and then wanting to understand what will be the body’s motion “in the wild”, when viewed from an inertial frame of reference. Examples where this happens are satellites self-adjusting in space or the complicated moves a cat does to right itself midair.

DeformableBodies.jl is a Julia package dedicated to aid in the construction and simulation of such problems. It allows the user to enter the body’s motion as seem from an arbitrary frame of reference and calculates the motion from the perspective of an inertial frame.

The package is freely available from the Julia package system, all you have to do is enter ] on the Julia REPL and then run

pkg> add DeformableBodies

and you’re ready to go! If you are interested in using this package, be sure to check the guides on the documentation and also know that the source code is available to everybody.