So the problem isn't routing specifically, the problem is that optimization takes forever. Why is *that* happening?

My data structure is organized as a N-ary tree, where each non-leaf node is an AND or OR. AND means everything underneath has to be schedule or not scheduled. OR means exactly one child must be scheduled and nothing else.

I'm allowing third-party clients to send me trees and then I combine them all to send to the scheduler.

But I was combining them as a big AND.

This requires the solver to find a place for everything. It wants to be efficient, so it isn't going to start with a few things and add them in--what if it ends up being unable to do that? So it dumps everything on the board and then tries to do 1-2 NP-hard algorithms on it.

If I combine the top level under a special code that allows just the next level of children either be in or out, everything runs so much better.

Now the solver can construct some good sub-solution and add to it. I get fast routing answers! I see the best solution growing smoother!

AND I just ran it with my latest *extremely simple* TSP constraints and got such a nice routing graph in only 30s.

I mighta done did it!

#python #constraintprogramming

Is it possible the solution was right there all along??

I've been on-and-off tweaking the #radar #scheduling #optimization #constraintprogramming #python #software project to include routing

I kept finding that routing takes longer to figure out than pure packing--no surprise.

But this was even the case when the constraints put on the routing were extremely minimal.

This made me wonder how much actual optimization was happening in the NON-routing case. As it turns out, none. If it doesn't have to do any work, it goes fast.

Sounds pretty obvious, but it's very helpful. Why? See next toot.

"It is important to choose the right tool for the job." 🤓

Using OR-Tools CP-SAT for Scheduling Problems https://atalaykutlay.com/or-tools-cp-sat-for-scheduling-problems.html #optimization #OperationsResearch #ConstraintProgramming

Using OR-Tools CP-SAT for Scheduling Problems

I’ve been working on improving how we schedule maintenance in Akamai’s cloud infrastructure, especially disruptive maintenance on hypervisor hosts serving hundreds of thousands of guest VMs. The problem is fairly complex, with competing constraints such as capacity, customer disruption SLAs, and concurrency limits across hosts, racks, and datacenters.

Atalay Kutlay

They liked the #constraintprogramming #radar #scheduling talk so much they want me to give it again to our sister group. Whee.

Meanwhile, when I named it I backronymed it to a name I wanted to use about 10 years ago.

My boss immediately asked if I also came up with a logo.

I'm using that question to justify spending the rest of the day designing some options in #inkscape ...

Thank the goddesses for my recent attempts at #music transcription and also for #adhd #rx

My #constraintprogramming #radar #scheduling talk is in *gulp* two weeks. My rough draft is due FRIDAY.

5 years ago, I spent a week in front of blank slides, sometimes in tears, unable to even conceive of a method by which I could start.

Earlier this week, I did at least manage to gather a lot of content slides from other decks but as of this morning it was all just a jumble.

This morning I took a two-pronged approach

1. Clear the runway: Do dumb things like checking my inbox, getting a drink and music squared away, etc first. THEN take meds and dive in as they ramp up.

2. I was having trouble getting started but also specifically having trouble with the start of the slides. But there's no reason the first slide in the deck has to be the first one created.

For the song I've been working on transcribing, I gave up on "note by note from the beginning" approach. Instead I found spots where it was easy to figure out (single sustained notes, simple melodic progressions, etc). Then I tied those together knowing where the mystery passage had to start and end.

Why not do the same thing with PowerPoint? I definitely know what I want to say in the "design proposal" section. And I think I know what some future work will be. Start with those parts!

That only took like 30 minutes. And with that out of the way, it looked a lot more do-able to find some points to make in the "how did we get here" section.

I now have a (very) rough draft of the talk!

1/2 Exciting news: we just published a new paper: "Preimage attacks on round-reduced MD5, SHA-1, and SHA-256 using parameterized SAT solver", by Oleg Zaikin

If you are interested in security, cryptology, or Constraint Programming, definitely give this paper a read!

https://link.springer.com/article/10.1007/s10601-025-09383-0

#ConstraintProgramming #Security #Cryptology #Cryptography #CryptographicHashFunctions #ConflictDrivenClauseLearning #BooleanSatisfiability #MD5 #SHA1 #SHA256

" #AliceML is a #functionalprogramming language based on Standard ML, extended with rich support for concurrent, distributed, and #constraintprogramming." #plt #computerscience www.ps.uni-saarland.de/alice/

Alice
Alice

Or really, I should just rewrite this as a VRP, since it is so close to that anyway and the code I have was just a prototype.

#constraintprogramming #python #radar #orbit #scheduling #math #computerscience

A true Traveling Salesman Problem on top of the Knapsack Problem takes longer than I want to spend (many minutes vs ~10s) and also does more than I want.

A forced-greedy TSP (near neighbors are all scored 1, farther nodes are all scored 0) is much faster and closer to what I want but still longer than I want (~2m)

The solution to a combinatorial problem is not a faster algorithm, it's a smaller problem.

I need to break the TSP into chunks and solve them separately. The difficult thing is that I need to do this while deliberately remaining unaware of the semantics of the nodes for larger architectural reasons.

#constraintprogramming #python #radar #orbit #scheduling #math #computerscience