squiggle icon indicating copy to clipboard operation
squiggle copied to clipboard

Representing flowcharts as models

Open michaeldickens opened this issue 2 months ago • 2 comments

I made this flowchart to model how electing an AI-safety-friendly representative might decrease x-risk.

Image

I started converting it into a Squiggle model and I found that the Squiggle model requires a much more complex representation. Here is my attempt: https://squigglehub.org/models/mdickens/electing-representatives-ev

The flowchart implicitly encodes the fact that a chain of probability-arrows is multiplicative, and several probability-arrows pointing to one node are additive. It's easy to see this visually, but converting it to a Squiggle model requires making a lot of variables.

It would be cool if there were some way to write flowcharts like this in Squiggle and put a probability on each arrow, and then the compiler figures out how to convert it into an actual model. I don't know exactly how that would work but I thought it was a neat idea so I just wanted to share it.

michaeldickens avatar Nov 14 '25 21:11 michaeldickens

I very much agree. Other related tools have things for this, and we've thought about doing this.

One approach we've discussed is to have a new Visualization for this, where the user specifies some information about the graph. This means that it will have to manually be kept in sync, but I think doing it automatically could be impossible right now. And AI could of course help with the automatic adjustments.

OAGr avatar Nov 17 '25 13:11 OAGr

I used Graphviz to generate the flowchart, Graphviz files are plaintext so it should be possible to generate a Squiggle model from a Graphviz file, or to generate both from some third representation. I'm imagining something like

"representative elected" -> "serve as representative" [value=0.8]
"representative elected" -> "take leadership role (committee head, etc.)" [value=0.1]
"representative elected" -> "move to cabinet" [value=0.1]
"serve as representative" -> "vote on bills" [value=1]

which is a legal representation of a Graphviz file, except that Graphviz has no variable called "value", so you could extract that variable and use it to generate the Squiggle model. Not saying it would be easy but it should be possible, at least.

michaeldickens avatar Nov 17 '25 15:11 michaeldickens