Copyright | (C) 2014 Hugo Pacheco |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Hugo Pacheco <hpacheco@nii.ac.jp> |
Stability | provisional |
Safe Haskell | None |
Language | Haskell98 |
Graph coloring examples.
- data Color
- type Vertex = Int
- type ColoredGraph = [((Vertex, Color), Edges)]
- type Edges = [Vertex]
- type Graph = [(Vertex, Edges)]
- lookupColor :: MonadPlus m => Vertex -> ColoredGraph -> m Color
- colors :: [Color]
- red :: MonadPlus m => m Color
- blue :: MonadPlus m => m Color
- green :: MonadPlus m => m Color
- yellow :: MonadPlus m => m Color
- genColors :: MonadPlus m => (Color -> Bool) -> [Color] -> m Color
- allColors :: MonadPlus m => (Color -> Bool) -> m Color
- uncolor :: ColoredGraph -> Graph
- differentColor :: Color -> ColoredGraph -> Vertex -> Bool
- isCorrect :: ColoredGraph -> Bool
- isCorrectNode :: ((Vertex, Color), Edges) -> ColoredGraph -> Bool
- mkColor :: MonadPlus m => (Color -> Bool) -> Vertex -> ColoredGraph -> m Color
- mkColorNaive :: MonadPlus m => Vertex -> ColoredGraph -> m Color
- genColorsNaive :: MonadPlus m => [Color] -> m Color
- allColorsNaive :: MonadPlus m => m Color
- genGraph :: Int -> Int -> Gen Graph
- genGraph' :: [Int] -> [(Int, Int)] -> Graph
- genEdges :: [Int] -> Int -> Gen [(Int, Int)]
- genEdge :: [Int] -> Gen (Int, Int)
- colorPut :: MonadPlus m => PutlensM m ColoredGraph Graph
- colorPutNaive :: MonadPlus m => PutlensM m ColoredGraph Graph
- testColor :: IO ()
Colored graphs and utility functions
type ColoredGraph = [((Vertex, Color), Edges)] Source
lookupColor :: MonadPlus m => Vertex -> ColoredGraph -> m Color Source
uncolor :: ColoredGraph -> Graph Source
differentColor :: Color -> ColoredGraph -> Vertex -> Bool Source
isCorrect :: ColoredGraph -> Bool Source
isCorrectNode :: ((Vertex, Color), Edges) -> ColoredGraph -> Bool Source
mkColorNaive :: MonadPlus m => Vertex -> ColoredGraph -> m Color Source
genColorsNaive :: MonadPlus m => [Color] -> m Color Source
allColorsNaive :: MonadPlus m => m Color Source
Lenses
colorPut :: MonadPlus m => PutlensM m ColoredGraph Graph Source
Putlens that colors a graph in the backward direction
colorPutNaive :: MonadPlus m => PutlensM m ColoredGraph Graph Source
Putlens that colors a graph in the backward direction (slow version)