| ▲ | wslh 3 hours ago | |||||||
The idea of backward updating is fascinating but is not generally feasible or computable. What kind of problems can you solve backwardly? | ||||||||
| ▲ | fouronnes3 3 hours ago | parent | next [-] | |||||||
> not generally feasible or computable You'd be surprised. It really depends on how you define the problem and what your goal is. My goal with bidicalc what to find ONE solution. This makes the problem somewhat possible since when there are an infinity of solution, the goal is just to converge to one. For example solving 100 = X + Y with both X and Y unknown sounds impossible in general, but finding one solution is not so difficult. The idea is that any further constraint that would help choose between the many solutions should be expressed by the user in the spreadsheet itself, rather than hardcoded in the backwards solver. > What kind of problems can you solve backwardly? This is the weakness of the project honestly! I made it because I was obsessed with the idea and wanted it to exist, not because I was driven by any use case. You can load some premade examples in the app, but I haven't found any killer use case for it yet. I'm just glad it exists now. You can enter any arbitrary DAG of formulas, update any value, input or output, and everything will update upstream and downstream from your edit and remain valid. That's just extremely satisfying to me. | ||||||||
| ||||||||
| ▲ | somat 2 hours ago | parent | prev | next [-] | |||||||
I am not sure if I know what I am talking about or if it counts in this scenario but constraint solvers come to mind. I am mainly familiar with them in a CAD context so I am struggling to think of a use for them in a spreadsheet context. But I think being able to say given these endpoints find me some values that fit could be a very valuable tool. But like I said I am not sure that I know what I am talking about and I may be confusing backwards calculation with algebraic engines. I would love for algebra solvers to be a first class object in more languages. | ||||||||
| ▲ | btilly 2 hours ago | parent | prev | next [-] | |||||||
While the general problem is not always tractable, some of the special cases are pretty important. Take, for example, backprop in machine learning. The model operates forwards. Then you solve backwards to figure out how to update the terms. | ||||||||
| ▲ | WillAdams 3 hours ago | parent | prev [-] | |||||||
I implemented bi-directional solving in a very simple "Proportion Bar" app --- sort of --- one side would calculate at the specified scaling factor (so 100% could do unit conversions), the other would calculate the scaling factor necessary to make the two sides agree. | ||||||||