最大クリークの数を見つけるためにブロン - ケルボスアルゴリズムを実装しようとしています(最大クリークは、2つの頂点が接続されているグラフのサブセットであり、それ)ハスケルの最大クリークファインダ -
https://en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm
残念ながら、私はエラーを取得: 「入力 『RES』でエラーを解析し、」そして、私はそれを解決するために見えることはできません。私は通常のものでタップスペースを変更しようとしましたが、動作しないようです。私も間違いないと思う?何か案は?
type Clique = [Vertex]
swarming::Clique->[Vertex]->[Vertex]->[Clique]
swarming R P X =
if null P && null X then [R]
else loop R X
where
loop::[Vertex]->[Vertex]->[Clique]
loop[] _ =[]
loop(v:R') X=
swarming (v:R)(P 'res' v)(X 'res' v)
loop P (v:X)
type Vertex = Int
class Graph g where
size ::g->Int
verticies ::g->[Vertex]
connected ::g->Vertex->Vertex->Bool
bron::Graph g=>g->[Clique]
bron g = swarming[] (verticies g) []
where
swarming R P X =
if null P && null X then [R]
else loop R X
where
loop::[Vertex]->[Vertex]->[Clique]
loop[] _ =[]
loop(v:R) X=
swarming (v:R)(P 'res' v)(X 'res' v)
loop P (v:X)
res::[Vertex]->Vertex->[Vertex]
res vs v = filter(connected g v) vs
私は小文字表記のために一重引用符の代わりにバッククォートを使用する必要があると思います。 'P 'res' v'は私にとってハスケルのようには見えません。 –