Blog

Articles on how to write high-performance F# and optimize decision making with Simulation and Mathematical Programming.

Performance of Discriminated Unions and Active Patterns

Part of my work is writing algorithms to analyze networks of nodes representing manufacturing systems. Each node can be…

Performance of Key/Value Collections for Updating

I have been working on a simulation engine that requires a key/value collection for holding the flow rates through a…

Fast Tracking of Item Observations

I am writing a graph algorithm at the heart of one of the products we are developing at Simulation Dynamics. A part of…

F# Loves Mutation

Mutation gets a bad wrap, and some believe Mutation is evil and should be avoided at all costs. For a while, I was also…

Team Desk Assignments

I was recently asked a question on the Flips GitHub page which I felt warranted a full blog post. It is an interesting…

BenchmarkDotNet Gotcha with F#

I have been working on creating some types which allow me to wrap an array and index it with an int which has a Unit of…

Accelerating Dictionary Lookup with Records as Keys

NOTE: All the code can be found here. Feel free to follow along!

The Problem

I ran into an interesting problem a week…

SliceMap Rework - Part 2

Welcome to part 2 of this series. In the previous post we setup our problem which is to speed up the SliceMap family of…

SliceMap Rework - Part 1

I have been on a journey to overhaul the underpinnings of the Flips library and it has been a humbling experience. Part…

Resources for Linear Programming

I was recently asked about what resources I would recommend for Linear Programming. My response was, “Are you…

Scheduling Jobs for Maximum Efficiency - Part 3

I’ve continued to consult with my friend on the job assignments problem that I have been discussing in post 1 and…

Scheduling Jobs for Maximum Efficiency - Part 2

In my previous post I introduced a scheduling problem where I needed to assign jobs to machines to achieve the maximum…

Scheduling Jobs for Maximum Efficiency - Part 1

I was recently having a discussion with a friend when they brought up a new problem they were looking into. He…

Minimizing Waste for the Cutting Stock Problem

I was recently posed the question, “Can you use Mathematical Planning to optimize the Cutting Stock…

Learning Resources for F#

One of the questions that I get quite a bit is, “How did you learn F#?” I keep getting this question,…

Maximizing Profitability of Inventory with Mathematical Planning and Machine Learning in F# - Part 3

In the previous two posts in this series we introduced the Food Cart Problem. We want a plan for stocking our Food Cart…

Maximizing Profitability of Inventory with Mathematical Planning and Machine Learning in F# - Part 2

In a previous post we discussed the problem of stocking our food cart to maximize our profitability. We created a simple…

Maximizing Profitability of Inventory with Mathematical Planning and Machine Learning in F# - Part 1

One of the questions that I love to answer is, “What is the difference between Mathematical Planning and Machine…

Why I Love F# for Mathematical Planning

A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to…

Reindeer Secret Santa Assignment Problem

Note: To see the completed code, please go here. All code for Model Mondays is kept in this repo and is MIT licensed.…

The Under Appreciated Power of Object Expressions

There is a feature of F# this is incredibly powerful and rarely talked about: The Object Expression. It is such a simple…

The Mentor Matching Problem

There are few things I love more than a fresh mathematical planning challenge so I was delighted when Kevin Avignon…

Modeling Non-Linear Functions with Flips

Recently I was asked if it would be possible to add the log function to the Flips library. Flips is a library for…

What I Look for in a Machine Learning Engineer

I was recently asked by someone, “What do I need to do to get into Machine Learning and Finance industry?” I…

The Anatomy of an Optimization Model

I am on a bit of a quest to bring Mathematical Optimization to the masses, or at least to Software Developers. I often…

Discrete Optimization with Cutting Planes

Previously I described how we can perform Discrete Optimization using the Branch and Bound technique. Today I want to…

Discrete Optimization with Branch and Bound

If you have spent any time with me you will know that I am passionate about Optimization. Now, you may pass this off as…

Creating Summable Domain Types

One of the reasons that I love F# is that is makes it incredibly easy to model domains. By creating a Domain Model which…

F# for Optimization Modeling

I recently attended a training event hosted by Gurobi. For those who don’t know, Gurobi produces one of the best…

Domains Run Amok

I am a huge fan of Domain Driven Design and I have been trying to apply it more and more. I ran into a problem last week…

The Divide Operator is a Lie

One of the things that most attracted me to F# is the ability to accurately model your domain. What first turned me on…

My Most Expensive error

The title for this may be a little over the top but it is not far from the truth. I am wanting to show how Units of…

Using F# to Parse HTML

At work I have been tasked with extracting the product description information for several of our products to be used as…