Welcome to AristOptimiser

Project - Intro

This project aims to create the next generation of useful AI and, more specifically, optimisation algorithm (aka optimiser) by integrating multiple types of intelligence together in order to solve world's toughest problems! A true AI platform will be developed that could be used to solve real-world problems (e.g., country-wide distribution of medicine! etc.) with real-world constraints (e.g., vehicle availability and capacity, etc.) and thousands of decisions (e.g., drivers, vehicles, stock, inventory) by considering all the underlying complexities and learning from them. Think of this as a better chess-player and go-player and checkers player (and other players), all together! for solving some of the world's hardest problems.

The platform will be freely available for anyone to use, with the only obligation to give some credit to the community and tech supporters.

Currently, I am doing this alone, but I hope soon to get more support and grow this together!

About (why...how...! with some minimal jargon)

just some reasoning

'Aristo' in greek means best/perfect.... or a shorthand of Aristotle (because of the wisdom, to solve hard problems - one of the first engineers), I am not sure yet, but certainly the result will be great :)

The intention is to create the best best (pun intended). In practice, a great optimiser. Just to be clear, great for the problems that are rightfully intended to be solved by using this a component.

I guess because every great product deserves some 'myth' behind it? (but because I am not a philosopher, merely an engineer who wants to help others, I just do this, by creating this product and hoping to turn this to a great initiative with thousands of supports)

what is this

Creating a great optimiser that performs optimisation.

We are talking about optimisation here. Not just any optimisation, but multi-objective optimisation (i.e., MANY parallel objectives to be optimised together) for mixed-integer non-linear. This is a really tough problem! and with more data, it gets even tougher, to the point that very quickly, even the best super-computer (of super-computers!) on earth could not solve fast enough, to be interesting and useful.

some objectives could be - minimise average time (of some service!) - minimise the number of aircraft/vehicles/resources required (to do X) - maximise the number of deliveries within a day and a specific region - minimise the risk (of delay/failure) - maximise the number of happy customers

(or all of them together)

there could be more... ANYTHING that you normally express as a number that needs to go 'as high as possible' or 'as low a possible' is an objective. If that number is 'capped', then it's a constraint (still useful and relevant, just different)

why?

Over the years I have been called to solve many big problems, for some of the world's largest organisations. Very often the problem description sounded 'small' and project sponsors thought "let's throw a few 1000s... and in 2-3 months... with 1-2 coders.... the problem will be solved" (... magically!). Well.... sorry for breaking this to you.... 17 years in my career, this NEVER happened. Partly, ignorance of the problem, partly because there were a few 1000s of $ leftover from another budget, less knowledge, less workforce, less resources (and a combination of those!).... Although I cannot do much to change everybody's mind... at least I can contribute to the fellow data scientist (of me and others.... 17 years ago.... and hopefully many more years in the future!) by creating a tool that works and is fit for purpose. More specifically, for solving the Multi-objective optimisation problems I mentioned ago.

Very often, the above problems were attempted to be tackled with a few tools (optimisers) and a tiny bit of data! This was even more painful.... it was like trying to dig a hole with a pencil! I guess wrong 'chemistry'? Certainly, a better tool was required which had to be used in the right way.

In the past, I had developed a small(er) tool (linked), which was intended to have many more features.

Also, in the 'old times' of grid computing (before 'cloud' becomes a hype).... I was lucky and privileged to run some of the world's largest simulations on very powerful machines (i.e., 100s of top-end CPUs running continuously for many months continuously!).... and I wish there were tools that could scale on such a massive, powerful and distributed infrastructure

So... because of malformed problems, lack of appropriate tools, lack of know-how, less available IT infrastructure, I create this. At least, this will help many others (even if the battle of tech vs management will always happen, at least.... both will enjoy having an appropriate tool and their expected results, respectively)

PS. by the time of this writing, I had been CTO twice and (previously) in the high-level management of several organisations, with millions of $ of budget under my teams' belts (and very often I was fighting exactly this battle). I hope in the future, at least this battle will be won from the get-go :)

Some challenges/problems

  • distribution plan of medicine (healthcare logistics)
  • visiting plan of beds in a hospital/clinic (in healthcare)
  • deployment plan of off-shore wind turbines (in renewable energy)
  • investment portfolio for mid-term (in finance)
  • production plain in a factor (in manufacturing)
  • aircraft scheduling in runway (in aviation)
  • staff rota in construction yard (in construction)
  • classes timetable (in education)
  • visiting plan of cities for a new product campaign (in marketing & sales logistics)
  • visiting plan of sites for refuelling (in oil & gas logistics)
  • on-demand collection plan of passengers in a city (in transportation)

and many.... many.... many .... more!

Not just Machine Learning, but real AI

A few years ago I was happier that Machine Learning (ML) was not a thing.... now it's a headache to me, because it confuses a lot many people.

My attempt to address this... - Optimisation is NOT ML - AI is NOT ML ( AI is a superset and ML is just a bit of this!) - ML needs optimisation! (not the other way around!) .... when a data scientists says "I want data to train my model..."', what they really/also mean is that they need BOTH data AND and optimiser to minimise the errors from data, during the training of ML (of a neural network, or similar). I am not going to go any deeper, there are many good books and articles out there to explain it.

Anyhow.... by now I hope it is clear how important optimisation is (with or without ML, with or without data, etc!) and that's what we are doing here

What is NOT this...

This optimiser is not expected to solve ALL problems... this idea is just not possible, for any optimiser!

There are many books that describe the theory of optimisation and the algorithms and the code.

Once again, multi-objective problems with mixed-integer non-linear behaviour.

Technical stuff

  • Most of the architecture, tools, technology and design decisions here aim for simplicity and ease-of-use. There could be better options there (but either they could be very complex to master quickly, or too expensive to use from day 1, or just not very appropriate... according to my experience)

Acknowledgement

  • Certainly and obviously, many thanks to #github for providing this virtual space and the capability to manage the project and code via kaban
  • thanks to all 'Apache' contributors; there are simply to many great apache projects and tools out there

(others will follow as acquired :) )

Next

co-optimise with me

Interested business developers, product owners, strategists and more, please reach me to discuss how we could apply AI to optimise operations and systems for the benefit our our society and customers, for the wider benefit

Of course, all partners will be named and credited, should they wish!

Let's get some big projects off-the-ground!

co-develop with me

interested software/technology/systems/solution developers, data scientists and more, please reach me to discuss how we could turn this into a greater product

Of course, all developers will be named and credited, should they wish!

Let's create some pull requests!

other support

  • cloud solution providers (because such a big beast needs to run on high-performance infrastructure), we'll need some credits to run big validations! Also demonstrating off-the-self compatibility
  • modellers, any important models will also be required!