If you want to avoid logic and graphical proofs, another way to go about is is by noticing the following:
fox and cereal are +- the same, they pose problems when placed together with the goose but they don't harm eachother.
You can then construct the following states:
----------------
| left | right | (fox/cereal)
----------------
| left | right | (goose)
----------------
| left | right | (man)
----------------
If you then write down all allowed positions with the man at the left, the symmetrie of the rules tells you that if you swap left and right, you have the whole set of allowed positions.
You can then define the following states :
A B C D
2|0 2|0 1|1 0|2
1|0 0|1 1|0 1|0
1|0 1|0 1|0 1|0
and define the operator * as swapping left and right, we basically have to go from A->A* to solve this riddle.
You can then construct the following matrix:
state1* state2* ...
state1 possible? possible?
state2 possible? possible?
...
Applied to the states we defined, this matrix would look something like this (let's name him Y)
Also notice, Y is symmetric.
A* B* C* D*
A 0 0 0 1
B 0 0 1 1
C 0 1 1 0
D 1 1 0 0
It is then possible to find the least amount of steps it takes to go from A->A* by finding the smallest n (n a natural value) for which
Y^(2*n+1)[0][0] is not zero, then the smallest path is 2*n+1. In our case it's n=3 => the smallest path is 7 steps
Now on to finding the path. If you do
(Y^7).1 = 1
0 6
0 14
0 14
We realize that there is only 1 way to go from A to A* in 7 steps, this means that in every step along the way, there should only be one way to reach it.
Now to reconstruct this path, we should take Y^6, Y^5, Y^4 ... and multiply it by [1,0,0,0] (we already had to do this to realize 7 steps is the least).
If you see a 1 in the resulting matrix, it was a point our solution went past.
(odd exponents of Y means we're going to the right side, even exponents means we're going to the left side)
For example:
(Y^6).1 = 5
0 9
0 5
0 1
so the step before the last one, was at state D.
An example for the last few steps :
A* <= D <= B* <= ... <= A
--------------------------------------------------
I do not think this is the best solution at all, but you requested an algebraic solution. This is the most algebraic I could make it with the least amount of brute force / enumerating solutions. This puzzle is however so small that every single step along the way is essentially forced, and you could simply use logic...
I don't think those graphs were correct solutions, because they were plain brute force of the search-space.