From the hub, in category: "AI"
A longstanding collaboration with @triska, applying Prolog to the specification and analysis of oncology dose-escalation trial designs, has yielded some interesting progress that I'd like to share. It seems to me that the current thrust of this work employs Prolog — and indeed some new techniques like if_/3 (Neumerkel & Kral 2017) — in a manner that is somehow essential to our successful attack on certain problems in this field. As such, I think our collaboration reflects in some interesting ways on Prolog itself. I'll try to get across the main gist of the application without belaboring the details. The work I'll describe here is contained in this self-contained file from the precautionary package. Author: David C. Norris
Prolog is rather popular for Expert Systems. Why? Well because it's homoiconic and because we have DCG's, we can reify a query to make it explain itself. That's a lot of jargon, in this post we'll break it down and make some explanations.
Transitive relations show up a lot in AI code, in this post we look at a couple of ways to code them that depend on what you can assume about your domain and what Prolog you're using.
Reify: (v) To represent something abstract as a concrete thing.
Reification is a tool in the bag of tricks that can be quite tricky to understand. Rather than waffle on in the abstract, let's take a look at a few examples.
Introduction to using CLP(FD). A guide from scenario description, to mathematical representation, to code, for the kind of problems that are typical in the Operational Research/Management Science domain. We're maximizing profit or minimizing spending given some constraints on resources.
Create a domain for planning in and code A* to search for a path to the goal.
Under the open world assumption a fact can be True, False or Unknown. Prolog operates in a closed world where predicates are either True or False. Let's see if we can open Prolog up a little.