3 ms·
As a proof of concept, this looks very cool. Suggestion: add a short example to the README. I had one experience with Prolog in the 1980s that blew my mind. I
by mark_l_watson 3y ago
As a proof of concept, this looks very cool. Suggestion: add a short example to the README.
I had one experience with Prolog in the 1980s that blew my mind. I had an IR&D project to build a complete prototype of an air/land battle simulator (yes, I was a defense contractor back then) in Common Lisp given 6 weeks of coverage to write it and demo it. After a month I was satisfied with the functionality and after demoing it I asked permission to rewrite it in ExperProlog on the Mac (I had done the Common Lisp version in my Xerox 1108 Lisp Machine). In ten days time it was done, and also had nice graphics and UI extensions that the Common Lisp version did not have. Anyway, except for few small open source things, that was the only large project I ever did in Prolog.
- CoastalCoder 3y agoCan you explain a little about why / how you modeled a battle simulation in Prolog? To me, the most natural approach is simply a time-stepped battlespace model. With event uncertainty (e.g., did the bullet hit its target?) modeled as random draws that get baked into the outcome.
- mark_l_watson 3y agoHonestly, that was almost 40 years ago and the details escape me. I do remember that it was not a fine detail model. I think some ‘experts’ in my company wrote up how they solved certain problems and I tried to capture that. I might have used OPS5 in the Common Lisp prototype. I (in hindsight) wasted a lot of time back then on symbolic AI that didn’t scale, and not enough time with neural networks. I was on a DARPA neural network advisory panel in the mid 1980s and I had a few good wins using NNs.
- crq-yml 3y agoMy speculative reaction: Prolog offers a way to describe an AI "commander" that can make plans that optimize for many units simultaneously. This technique is often used in strategy games, not usually with Prolog itself but using similar hand-written planner algorithms in tandem with FSMs. One of the downsides of this approach where it appears in games is that it results in unit behaviors that look robotic and overly micromanaged, often using tactics similar to early computer chess AI.
- clord 3y agoThis reminds me of an old idea I’ve toyed with. In a logic class in university we talked about how some logic is time dependent, like A is true 2 hours after B becomes true. I was inspired to try to think through a language like prolog that could model and solve these relations through time. Didn’t get far with it since it’s a hard problem and I had too many classes that term. I was thinking it would be useful for clockless chips.
- PedroBatista 3y agoNot sure if it's exactly what you're looking for but see this paper: https://ceur-ws.org/Vol-2785/paper9.pdf https://ceur-ws.org/Vol-2785/paper9.pdf ( A Language for Timeline-based Planning )
- raincom 3y agoIt is called Temporal logic or tense logic[1][2]. Linear time temporal logic is used in formal verification. [1] https://plato.stanford.edu/entries/logic-temporal/ https://plato.stanford.edu/entries/logic-temporal/ [2] https://en.wikipedia.org/wiki/Temporal_logic https://en.wikipedia.org/wiki/Temporal_logic
- akvadrako 3y agoWhat about it blew your mind? Are you implying it's because a rewrite took less time than the first version?