[1] 授業単元:情報実験第一
[2] 問題文(含コード&リンク):

オオカミとヤギを連れキャベツを持った農夫が川岸にいる。
川にはボートがあるが農夫の他には
動物一頭かキャベツ一個しか乗せられない。
農夫がいなければオオカミはヤギを襲うし、
ヤギはキャベツを食べてしまう。
すべてを無事に対岸に渡すにはどうしたらよいか?
(出展:wikipedia)

この問題を解くプログラムを作れ。
出力の形式は問わないが、他人が見て分かるような形にすること。
[3] 環境
 [3.1] OS: Unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2007/6/13まで
[5] その他の制限:なし。

ぜひよろしければ、アルゴリズムを教えていただきたく思います。
コーディングなしでも、むしろそちらの方がありがたいです。