When going native is the only option, at least do it once and well.

Constructors are a basic building block of object-oriented programming (OOP). They expose ways to build specific types of objects consistently, using arbitrary rules to validate properties. Still, constructors are odd beasts in the OOP world. In Java, this is usually the first case of function overloading that learning programmers meet, often without knowing the term. An overloaded constructor is shown in the following example:
class Car { private Motor motor; public Car(Motor m) { this.

Compiling mathematical optimization problems in a multiple-dispatch context.

In a previous post, we pushed the boundaries of the LightGraphs.jl abstraction to see how conforming the algorithms are to the declared interface, noticing some implied assumptions that were not stated. This has led to the development of VertexSafeGraphs.jl and soon to some work on LightGraphs.jl itself.
Another way to push the abstraction came out of the JuliaNantes workshop: leveraging some special structure of graphs to optimize some specific operations.

In various graph-related algorithms, a graph is modified through successive operations, merging, creating and deleting vertices. That’s the case for the Blossom algorithm finding a best matching in a graph and using contractions of nodes. In such cases, it can be useful to remove only the vertex being contracted, and maintain the number of all other vertices.
LightGraphs.jl offers a set of abstractions, types and algorithms to get started with graphs.

Cracking Benders decomposition, one cut at a time.

Some digging in representations for optimization modelling

Making social events easier as a graph problem.

Pushing the type system for more compile-time information

Leveraging one of Julia central features for clearer formulation of an optimization problem.

© 2019 Mathieu Besançon · Powered by the Academic theme for Hugo.