# How do I write production systems?

I understand that I can draw a state-space graph for any problem. However, here is the problem: I can't really figure out how to make production systems.

I am solving the FWGC (Farmer, Wolf, Goat, Cabbage) River Crossing Puzzle using a state-space search. So, my tasks are that:

1. Represent the state-space graph (which I know how to do)

2. Write production systems.

My questions: How do I write production systems?

The thing that confused me, was the production system example in Rich's book (about the water jug problem), where he has imagined all the states possible and wrote the next state for them.

Here in the FWGC problem, I see some problems while writing the production system.

For instance, for a given state, there are multiple possible next states, i.e. a farmer can take Goat, Cabbage, Wolf, or go alone to the other side (assuming that all states are safe, just for the sake of simplicity).

So, how would I represent the same state going to multiple next states in production systems?

What I have tried-:

Is that what I call the production system for this case?

But, here are my reasons why it should not be called a production system:

1. There might be other possible states as well.

2. It is showing only 1 solution.

So, how do I actually learn to create production rules (I know how to make state-space representation better as I have read that J.Nillison's book which was GOLD in this matter)? And, what would be the production rules in this case?

• I suggest that you simplify this post as much as possible to contain only the information that is needed to answer your question. Also, please, ask your main question immediately at the beginning, so that we understand which one it really is. Is your question 1. "how to make a production system?", 2. "What is a production system?", or maybe something else? It's not very clear. I think this post can be simplified and clarified.
– nbro
Commented Sep 9, 2020 at 10:17
• done. i hope it is clear now. Commented Sep 9, 2020 at 15:37
• I am not an expert on the topic, but, if I understand and remember correctly, a production system is composed of the so-called "productions", i.e. "if-then" statements, and a database (or working memory) with facts. Now, in your case, you know that the wolf and goat cannot be together, without the human, otherwise the wolf may eat the goat. So, I think that, in your case, you need to create these if-then statements (or productions) and the facts in the database. Section 2.1 of this paper doc.ic.ac.uk/~rak/papers/LPS.pdf explains what a production system is, so it may help you.
– nbro
Commented Sep 9, 2020 at 16:21
• See also refpersys.org and the blog of the late Jacques Pitrat on bootstrappingartificialintelligence.fr/WordPress3 Commented Dec 8, 2020 at 21:36