From 3f76a5d104ff97424a479e2c21ecd39f024547d0 Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Mon, 12 Dec 2016 13:07:20 +0000 Subject: [PATCH] Realised I was doing hillclimbing search, not A* --- advent11.hs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/advent11.hs b/advent11.hs index 58215fd..5fd4e40 100644 --- a/advent11.hs +++ b/advent11.hs @@ -48,22 +48,22 @@ main = do part1 :: IO () --- part1 = print $ length $ init $ extractJust $ aStar [[buildingTest]] [] -part1 = print $ length $ init $ extractJust $ aStar [[building1]] [] +-- part1 = print $ length $ init $ extractJust $ hillClimb [[buildingTest]] [] +part1 = print $ length $ init $ extractJust $ hillClimb [[building1]] [] part2 :: IO () -part2 = print $ length $ init $ extractJust $ aStar [[building2]] [] +part2 = print $ length $ init $ extractJust $ hillClimb [[building2]] [] extractJust :: Maybe [a] -> [a] extractJust Nothing = [] extractJust (Just x) = x -aStar :: [[Building]] -> [Building] -> Maybe [Building] -aStar [] _ = Nothing -aStar (currentTrail:trails) closed = +hillClimb :: [[Building]] -> [Building] -> Maybe [Building] +hillClimb [] _ = Nothing +hillClimb (currentTrail:trails) closed = if isGoal (head currentTrail) then Just currentTrail - else aStar newAgenda ((head currentTrail): closed) + else hillClimb newAgenda ((head currentTrail): closed) where newAgenda = sortBy (\t1 t2 -> (head t1) `compare` (head t2)) $ trails ++ (candidates currentTrail closed) -- 2.34.1