[spam][julia][wrong] Probabilistic Program Synthesis?

Undiscussed Horrific Abuse, One Victim of Many gmkarl at gmail.com
Tue Mar 8 04:58:50 PST 2022


Next I found a paper on solving the schrodinger equation using program
synthesis.

https://aip.scitation.org/doi/pdf/10.1063/5.0062497

Here's its discussion on program synthesis:

Sec. I. Introduction

...

Against the backdrop of AI/ML, a fundamentally different approach to
computational science is _program_synthesis_ (PS).[38-45] Here, the
central idea is to use enumeration, AI, or other optimization
strategies to generate complete computer programs that achieve a
user-defined task subject to performance critera; in other words, the
focus in PS is on the generation of a computer code, rather than the
more common tasks of regression or classification encountered in
applying AI/ML in computational chemical sciences. The purpose of this
article is to explore the application of PS tools to derive novel
algorithms to solve a benchmark problem in quantum chemistry, namely,
determination of solutions to the time-independent vibrational
Schrodinger equation.

In the context of quantum chemistry, it is worth highlighting that
previous automatic formula derivation methods and PS strategies have
found success in the domain of _ab_initio_ electronic structure
theory.[46-48] For example, Hirata's Tensor Contraction Engine
(TCE)[46,47] takes as input an electronic wavefunction ansatz, such as
that given in coupled-cluster schemes, and subsequently generates
appropriate tensor contractions and associated instruction sets to
enable highly efficient computational implementation of the underlying
theory. Here, working in the second quantization formalism, TCE
operates by applying well-defined contraction rules to generate
efficient formulas for evaluating relevant operator matrix elements
and implements the resulting code for these contractions. This scheme
provides an impressive demonstration of the power of PS in tackling
numerically daunting tasks but differs from the generalized inductive
optimization strategy employed in this article, where the focus is not
on deployment of rigorous contraction rules to optimize equation
implementation but is, instead, aimed at exploring novel algorithms
that can solve target problems in previously unknown ways using
previously unknown methods.

In this article, we consider the application of inductive PS to the
problem of generating the code and algorithms that can solve the
time-independent vibrational Schrodinger equation. Within this
inductive programming paradigm, we assume that we have a set of
examples of expected outputs required from our code when executed on a
corresponding set of inputs; these correct input/output examples are
assumed to be provided by an _oracle_ code that can exactly produce
the desired output for any input. Within this inductive paradigm, the
problem of PS can be cast as a challenge in optimization; one seeks
the set of computer instructions that form a code to produce the
expected output given each example input. In this sense, this
inductive PS can be viewed as somewhat comparable to the usual
training of an artificial neural network (ANN), where one optimizes
network weights using a set of input/output examples; the key
difference in PS is that the output is not a series of ANN weights but
is, instead, a complete computer program to perform the required
processing. As such, by focusing on algorithm generation, this
approach has the potential to automatically discover novel theories or
functional patterns that might not have been otherwise anticipated;
investigating whether this strategy can be ported into the realm of
computation chemistrty is an important goal of this article.

Here, we are interested not in function approximation or fast
implementation of defined tensor contractions but in generating
complete _codes_ that suggest general routes to solving the
time-independent Schrodinger equation (TISE). With the challenge of PS
framed as an optimization problem, a range of different approaches are
commonly applied to auto-generate a code that satisfies the target
program performance. In this context, genetic programming (GP) has
been used extensively.[43-45,49,50] Here, a code is typically
represented as a tree structure constructed from a set of pre-defined
primitive functions (such as *,:,+,-) and constants; arranging this
set of functions and constants in a variable tree structure acting on
a set of inputs creates a computer program that gives a specific
output for each input that is presented. In GP applied to PS, a
population of tree codes is evolved under the action of evolutionary
operations; the fitness of each population member is given by an
appropriate metric, indicating how accurately the tree code yields the
expected target outputs, and the principles of Darwinian evolution is
used to drive optimization of the population toward better-performing
codes. As we describe below, we use a simpler simulated annealing (SA)
protocol to perform PS here, in combination with a code representation
that is comparable to that employed in Cartesian GP (CGP).[44,51] Our
interest here is in exploring challenges and possibilities for PS in
the domain of quantum chemistry, and we leave the further development
of targeted optimization strategies and code representations to future
work.

In this article, we investigate the use of a linear PS system to
generate solutions of the TISE. In this initial proof-of-concept
study, we primarily investigate the extent to which PS enables
solution of the one-dimensional (1D) vibrational Schrodinger equation
for bound polynomial PESs. While being simple, such systems serve as a
useful starting point for which numerically exact solutions can be
readily generated to enable the evaluation of PS-generated algorithms.
In contrast to schemes used in electronic structure theory (such as
TCE[46,47]) or previous GP-based schemes,[50] our strategy does not
optimize implementation of a specific target wavefunction ansatz but,
instead, uses a search in a space defined by possible instruction
sequences, guided by an optimization function assessing code
performance. The remainder of this article is organized as follows.
First, in Sec. II, we discuss our own implementation of a linear PS
system, combined with a SA optimization protocol. In Sec. III, we then
show how our PS strategy can readily generate novel algorithms (codes)
that solve the Schrodinger equation for arbitrary bound polynomial
PESs; for example, by optimizing code structures for a set of just ten
input/output examples, we find that the resulting code give accurate
ground-state wavefunctions for a further 10^3 random PES examples. We
also investigate some aspects of our own PS setup in an attempt to
better understand the impact of algorithm parameters on predictive
performance. In Sec. V, we discuss current limitations of our PS
approach and offer some further discussion as to how the PS strategy
might be extended to enable the prediction of properties for far more
complex, many-dimensional systems. Finally, Sec. VI summarizes this
contribution.


More information about the cypherpunks mailing list