Algorithm for getting currents and voltages from resistances in circuit as graph
Go for the loop analysis. It seems like you've done a bit of promising work on that.

You bring the "hugeness" of the problem as counterargument to that solution, but honestly:

You're overestimating complexity. We're talking about modern computers here – 4000 of anything is hardly "huge". And electrical circuits typically don't contain too many complete graphs of K>3, so the loop count usually doesn't explode. Still, your concern is valid; this problem can explode in a pathological circuit. 

But, you might have gotten your loop analysis theory wrong:

You shouldn't even try to find all loops – you need to cover every component at least once in a loop, but as soon as you've done that, you're done.

So, a simple loop listing algorithm would take your graph, 


take an arbitrary first edge, 
find a small loop including that. Note it down in your loop list data structure.
For all nodes in that loop, check whether the adjacent edges are already part of loops, if not, repeat the second&amp;third step.


It turns into a pretty simple depth-first search over your tree. After that, you typically have either a loop-indexed list of edges, or a vertices-indexed list of loops, and you do your loop analysis based on either. It boils down to solving a system of linear equations – which a) can be solved without about any linear algebra library (LAPACK, if you're doing this in a programming language that I'd assume you do this, if you're worrying about computational performance rather than just getting it to work), or: Gauss Elimination (with pivotization) is actually something you should implement at least once in your life ;)

(And here's where I contradict your "algorithmically very hard" statement: the algorithms for all this are amazingly simple. Don't confuse algorithmically hard with computationally intense.)