artificially artificially intelligent intelligent haskell
play

Artificially Artificially Intelligent Intelligent Haskell Haskell - PowerPoint PPT Presentation

Artificially Artificially Intelligent Intelligent Haskell Haskell Overview About Aetion What we do, and how we do it H o w F P h a s ( a n d h a s n t ) h e l p e d About Aetion Approach to AI based on


  1. Artificially Artificially Intelligent Intelligent Haskell Haskell

  2. Overview  About Aetion  What we do, and how we do it  H o w F P h a s ( a n d h a s n ’ t ) h e l p e d

  3. About Aetion  Approach to AI based on widening regions of confidence based on explanatory necessity  Most useful in domains with many overlapping possibilities or sparse data  Currently supported by DoD contracts

  4. The Challenges  Frequent Changes  Problem domains change  New domains  Changing approaches to existing domains  Want to minimize code impact of changes

  5. The First Solution  Minimize work on things not directly relevant to current applications  Fill in the gaps later.

  6. The First Solution  Minimize work on But: things not directly  No general pattern for relevant to current extension applications  Most problems  Fill in the gaps later. required non-localized changes.

  7. The Second Solution  Find an abstraction and stick with it!  Blueprint for Second-system Effect  How did we make it work anyway?

  8. F P ’ s c o n t r i b u t i o n s  The types are cool  The code is short  The ideas are good

  9. The Types are Cool  Find many bugs before they happen  Separating effectful and non-effectful code  BUT: extensible records would be handy

  10. The Code is Short  Big advantage is not in writing, but in rewriting.

  11. The Code is Short  Big advantage is not in writing, but in rewriting.  10K lines of Haskell vs. 30K lines of Java

  12. The Ideas are Good  Monads, arrows, continuations, various combinator libraries, GADTs, even higher order functions.  Makes over-generality easy.

  13. The Result  Three projects:  Generalized data/change management (SNOWDRIFT) ○ Maintains relational view of data with constant time relation traversal ○ Provides priority-based process scheduling ○ Maintains tree of event handlers [Grust 1999] ○ Starts lightweight threads based on thrown events

  14. Event Handlers Ideal: [ h |- confidence <|- (1 +) | i <- h |- linkedFrom Supports , i |- belief == Accepted ]

  15. Event Handlers Ideal: [ h |- confidence <|- (1 +) | i <- h |- linkedFrom Supports , i |- belief == Accepted ] Actual, almost: [ h |- confidence <|- (1 +) | ModAttr i Belief _ Accepted = theEvent , h <- i |- linkedFrom Supports ]

  16. The Result  Three projects:  Generalized data/change management  Inference rules (WINTERMUTE) ○ Compositional constructers makeNamed “blah” >>= makeLocated (4,5) >>= makeExplainer >>= addMutable ○ Triggers propagate changes based on introduced relationships

  17. The Result  Three projects:  Generalized data/change management  Inference rules  Application-specific hackery (PAWPRINTS) ○ Mostly pure Haskell ○ G r a d u a l l y a b s t r a c t e d a n d m o v e d “ u p ”

  18. The Result  Three projects:  Generalized data/change management  Inference rules  Application-specific hackery  All work pretty well!

  19. R o g u e ’ s G a l l e r y  Concurrency h |- attr <-- val But what about? h1 |- attr1 <-- val1 h2 |- attr2 <-- val2

  20. R o g u e ’ s G a l l e r y  Something more like: h1,h2 |- attr1 h1 <-- val1 attr2 h2 <-- val2  B u t t h i s d o e s n ’ t c o m p o s e

  21. R o g u e ’ s G a l l e r y  Records (Compositional Construction) data Entity e => Thing e = Thing Stuff e makeFoo >>= makeBar >>= makeThing >>= addMutable Then, we want uniform access to composed objects: Class ThingLike t where getStuff :: t -> Stuff setStuff :: Stuff -> t -> t

  22. R o g u e ’ s G a l l e r y  Records (continued) But then composition is hard: data Entity e => Thing e = Thing Stuff e instance (c e) => c (Entity e) where …

  23. k Wh a t D i d n ’ t Wo r  Client/Server Interface  Serialization requirements forced some design decisions.  Frequently pushing changes removed many possible uses of laziness

  24. k Wh a t D i d n ’ t Wo r  Client/Server Interface  Serialization requirements forced some design decisions.  Frequently pushing changes removed many possible uses of laziness  B u t : t h a t ’ s m o s t l y o u r f a u l t .  Wh a t ’ s t h e b e t t e r w a y ?

  25. k Wh a t D i d n ’ t Wo r  Management buy-in  Maintenance and maturity of libraries  Tools-related projects

  26. What Can Work Better  Libraries working together  Cross-platform compatibility  More tools development  Debugging  Profiling --- performance seems like a black art  Programmer interest  But: chicken and egg problem?

  27. Thank you

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend