Analog optical computer for AI inference and combinatorial optimization - Nature

An analog optical computer that combines analog electronics, three-dimensional optics, and an iterative architecture accelerates artificial intelligence inference and combinatorial optimization in a single platform, paving a promising path for faster and sustainable computing.

Nature

Maximum Knights Puzzle - Chessboard Challenge!

https://makertube.net/w/1MxLX6ZsYeHGWCcYCfcBho

Maximum Knights Puzzle - Chessboard Challenge!

PeerTube

@BernhardWerner My favorite alternative #proof strategy for #induction proofs are #combinatorial (counting) proofs.

I suppose the standard example might be the proof of the coefficients in the binomial theorem expansion, or for the sum of binomial coefficients being powers of 2. These can be proved by induction, of course, but I'm not sure that's common given how easier it is to do a counting proof. It is also much clearer and avoids tedious algebra.

One I like is proving that the sum 1 + 2 + 3 + β‹― + 𝑛 is 𝑛 + 1 choose 2, the binomial coefficient \(\binom{n+1}{2}\). Bijection proof, counts the same thing in two ways. The thing being counted is the number of ways of choosing two things (distinct, without repetition) from the set {0, 1, ..., 𝑛}. By definition, it is the binomial coefficient we want. The other way to count is to fix the larger number π‘˜, the remaining choices are any of the π‘˜ numbers from 0 to π‘˜ - 1. Thus, across all possible larger numbers, we get the sum from 1 to n.

An alternative alternate proof of the same, slightly more geometric is as follows: arrange dots in a triangle, 1 on row 1, 2 on row 2, and so on up to row n, with n dots. Add a phantom row of n+1 dots below. We want to add up all dots in first n rows: βˆ‘ 𝑖. If you think of all of this as a binary tree/DAG, then every dot has two children (imagine Pascal's triangle). If you pick any two dots in the phantom row, their common ancestor is unique. So counting dots is same as picking two dots in phantom row. Which is the binomial coefficient we want.

Benjamin and Quinn's book on combinatorial proofs is amazing for interpretations of this form (I learned the first proof from it). See also: https://en.wikipedia.org/wiki/Combinatorial_proof

Combinatorial proof - Wikipedia

\({n+1 \choose k} = \sum_{i=0}^n {i \choose k-1}\)

In words, the above equation says that instead of choosing k things out of n+1 things, we will choose k-1 things out of a bunch of i things. Vary i from 0 to n, and add up all the \( {i \choose k-1} \). Somehow this summation also counts the number of ways of picking k things from n+1 things.

#Combinatorial #proof time!

The LHS is the number of ways of picking k things out of n+1 things. To get the RHS, we'll count the same thing but in a long-winded way. First, let the n+1 things be the numbers {1, 2, ..., n, n+1}. We'll condition on the largest number π‘š that gets picked, and then count the number of ways to pick the remaining k-1 things from all remaining smaller numbers. If π‘š=1, then we have 0 smaller numbers and need to pick k-1 out of them ⟢ \( {0 \choose k-1} \). If π‘š=2, then we only have 1 smaller number and need to pick π‘˜βˆ’1 numbers. As π‘š varies from 1 to 𝑛+1, the terms being added vary as \( {i \choose k-1} \) where 𝑖=π‘šβˆ’1.

Each of these ways is an independent way of picking k things, so by the sum rule, we get the RHS as the number of ways of picking k things from n-1.

Note that the same proof idea gives a really nice counting based proof for the formula for the sum of the first n natural numbers.

#math #counting

'Combinatorial Optimization and Reasoning with Graph Neural Networks', by Quentin Cappart, Didier ChΓ©telat, Elias B. Khalil, Andrea Lodi, Christopher Morris, Petar Velickovic.

http://jmlr.org/papers/v24/21-0449.html

#graph #combinatorial #solvers

Combinatorial Optimization and Reasoning with Graph Neural Networks

Out now! EvoLP.jl 1.0: A playground for evolutionary computation in #JuliaLang :julia:

Create modular #evolutionary #computation solvers for a variety of #optimization tasks including discrete, continuous and #combinatorial problems in #AI

Thanks to the Norwegian Open AI Lab for the support!

https://github.com/ntnu-ai-lab/EvoLP.jl

GitHub - ntnu-ai-lab/EvoLP.jl: A playground for evolutionary computation in Julia

A playground for evolutionary computation in Julia - ntnu-ai-lab/EvoLP.jl

GitHub

"While critical towards the details of Llull’s proposed categories and procedures, Leibniz was taken with his overarching vision of the combinatorial art. He drew two key aspirations from Llull’s work: the idea of fundamental conceptual elements, and the idea of a method through which to combine and calculate with them."

#leibniz #combinatorial

@tiago_j_m Hey do you know about #combinatorial #species? I've been researching these marvelous gizmos for a few years, and tying their development into larger theoretical mosaics. They are closely related to advances in #evolutionary/#genetic and #differentiable #programming.