Advertisement

Try this one on for size

Started by June 02, 2001 11:41 PM
53 comments, last by bishop_pass 23 years, 7 months ago
quote:
Original post by Apex

bishop_pass, if you are going to pretend to know formal logic, at least use the correct syntax. Disjunctions are represented by a "v", not "or".


Is that a joke? Is not a vertical bar better understood by the audience here? I would than need to explain ''v'' means OR, and simultaneously come up with a good approximation for an AND symbol. Should I just use a ''^'' which really doesn''t look like the OR symbol turned upside down? And then I suppose if I used an ''E'' for existential quantification I would be berated by you for not using the proper symbol which is an ''E'' turned backwards.

Apex, what a snide remark. Why don''t you come in here and offer something constructive instead of destructive.


_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
phemmer,

Much of what you say is true, but it is jaded by your perspective. First of all, just because most people in this forum are working on how to match strings does not mean that there are not talented or knowledgeable people here nor people who might not appreciate seeing things from a different perspective. Therefore, there is no reason to not post such concepts here. I have not posted it in the AI forum because the audience over there is no different than here, and I did my best to reduce it to a basic search problem as opposed to an AI problem, and I wanted more people to participate in its discussion. It is the poster's discretion to post a topic where he sees fit if he feels it has merits in any particular forum.

Also, the sixties and seventies had nowehere the computing power we have today, so old problems can be reevaluated. Additionally, new discoveries related to search, abductive logic, etc are being researched and applied. By no means has this subject been dropped because of computational intractability. And these problem solving methods are being applied successfully to problems with large variable sets, something that may not be necessary for certain applications in game-wordls.

You are essentially arguing that the promise of AI has not held, therefor all AI disciplines hold no value, therefor let's do AI the way AI is normally done in games. And you go further and argue that the way AI is done in games is better than traditional AI and achieves better results. My response to that is: "I have yet to see AI in games that isn't horribly brittle, incredibly superficial, extremely canned, very inflexible and scripted, and in general lacking any component of rational thought."

What are the applications to an RTS or an RPG? If you can't see, then I direct you to a large portiion of my other 865 posts here on GameDev.

I see you have listed your credentials. And you are claiming to have diversified interests. Most of us do, and bring what we know to a new field in a unique and integrated way. To demonstrate one (among many) of my other interests as you have done, I can point you to a website I built myself to display my photography. Click on the banner below.




Edited by - bishop_pass on June 8, 2001 11:29:05 AM


_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Advertisement
Damn you Bishop_pass.

Now you made me pull out my dusty old books.

------------------------------------------------------------
The consequence of a belief shouldn''t be a motivational reason to
believe


I think it''s an interesting problem, and one that has applications outside of AI knowledge routines.

I don''t have enough expertise to offer a solution, but my intuitive reactions:

1) If you''re looking for a system to handle any arbitrary set of rules, the best you can do is optimize the ruleset into a more compact form.

This suggests that you will probably end up with a series of optimizers rather than a single one.


If you''re looking for a quick search method on a dynamic set of rules, then you''re bound to be hit or miss with any particular algorithm.


2) I''m missing the 3 value logic here. From the original statement, it looks like you only end up with true/false results. Ok, you''ve got things like isAMemberOf(), but it''s still only results in true/false.

I think this causes problems if you ask the ruleset a nonsense question. Example:

Rule: Monster has HP
Rule: (Monster.HP > 0) -> ALIVE
Rule: (Monster.HP < 0) -> DEAD
Rule: Boulder is not a Monster

Is the Boulder DEAD?

Whoops. You could claim that the space is incomplete (which is true), but requiring any more completeness reduces practical applicability. You could also say FALSE (which might be ok), but can lead to error based on other assumptions, such as ALIVE = !DEAD.

What you really need is a default ''Makes no sense'' response. I realize that this may be already included somewhere, but it wasn''t obvious.

3) What about mixing true/false/NULL with other statements that are qualitative (numbers, names, etc). I realize that asking if an object has a property is a separate question from asking the value of that property, but again from a practical use point of view the distinction needs to be minor.

JSwing
Yes, no, I don't know, and the significance of that.

If you adopt a closed world, and assume that all queries which fail to be answered represent a negated answer, then you have a system that cannot reason in the face of incomplete knowledge. If, on the other hand, you have a system which can answer yes, no, or I don't know, you DO have a system that can reason with incomplete knowledge. Now, consider that it is unlikely that anything could know everything, and what a miserable failure it would be if it assumed it did.

Follow this example closely by looking at the following axioms and facts:

MutuallyDisjoint(Male, Female)
MutuallyDisjoint(LivingThing, NonLivingThing)
MutallyDisjoint(Reptile, Mammal)
MutuallyDisjoint(Lion, Zebra)

SubsetOf(Male, Animal)
SubsetOf(Female, Animal)
SubsetOf(Animal, LivingThing)
SubsetOf(Mammal, Animal)
SubsetOf(Zebra, Mammal)

SubsetOf(Bottle, NonLivingThing)
SubsetOf(CokeBottle, Bottle)

InstanceOf(Zelda, Zebra)
InstanceOf(SomeParticularCokeBottle, CokeBottle)

the next rule says that if something is a subset of a set or a superset of a set, we can assume that the set can be considered a subset of itself.

Subset(x, y) -> Subset(y, y) & Subset(x, x)

the next rule establishes that anything that is an instance of a set is also an instance of a set which contains that set.

InstanceOf(x, y) & SubsetOf(y, z) -> InstanceOf(x, z)

the next rule establishes that if anything is an instance of some set, and their is another set that is mutually disjoint with that set, then that thing cannot be an instance of the other set or any subset of that set.

InstanceOf(x, y) & MutuallyDisjoint(y, z) & SubsetOf(w, z) -> ~InstanceOf(x, w)

Now here is the important point I wish to make. There could be thousands of things in the knowledge base. We wish to encode what that thing is explicitly at the most specific level. We have said Zelda is a zebra. By the above rules, we also know that Zelda is a mammal, an animal, and a living thing. But, we also know that Zelda is NOT a non living thing, NOT a bottle, and NOT a coke bottle without having to explicitly say so. There could be thousands, even a million things that Zelda is NOT, and we know that.

But if we queried if Zelda is a male, the answer is: "I don't know." And, that is the CORRECT answer. An incorrect answer would be "YES" or "NO".

Note: We have not made explicit statements that Zelda is NOT a bottle, but the system knows Zelda is NOT a bottle. But we also have not made explicit statements that Zelda is NOT a male, but the system is able to give a different answer, that being: "I don't know."




Edited by - bishop_pass on June 8, 2001 9:54:47 PM
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
To summarize the above post for those who did not follow through with it:

We have made ONE statement about what Zelda is, and from that we have inferred many things about what Zelda is.

We have made ZERO statements about what Zelda is NOT, but we are able to infer many things about what Zelda is NOT, thus answering "NO" to many queries as to whether Zelda is something or NOT.

Simultaneously, the system is able to answer "I DON'T KNOW" to other questions about whether Zelda is something or NOT, and appropriately.

The system knows Zelda is an animal.
The system knows Zelda is NOT a bottle.
The system answers "I DON'T KNOW" as to whether Zelda is a male or a female.




Edited by - bishop_pass on June 8, 2001 10:05:56 PM


_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Advertisement
Hi,

This all sound really interesting, however I really don''t have anything to offer. Just thought I would suggest posting this on the Lionhead advanced programming board, ( http://www.lionhead.com:8080/ ), I think there would be a few people there who might be able to help.

______________________________It is entertainment not reality.
quote:
Original post by bishop_pass

Is that a joke? Is not a vertical bar better understood by the audience here?



Better understood by the audience here? Since when do you have any concern for the understanding of your audience? Open your eyes and read the replies to your nonsense (in the technical sense of the word). Everyone is wondering what the hell you are talking about... Your thread is nothing more than your vain exhibition of what you recently learned in a critical thinking book and your (unsuccessful) attempt at relating it to game programming.

Stop trying to impress people by talking directly out your ass.


Edited by - Apex on June 9, 2001 7:35:17 AM
quote:
Original post by Apex

Better understood by the audience here? Since when do you have any concern for the understanding of your audience? Open your eyes and read the replies to your nonsense (in the technical sense of the word). Everyone is wondering what the hell you are talking about... Your thread is nothing more than your vain exhibition of what you recently learned in a critical thinking book and your (unsuccessful) attempt at relating it to game programming.

Stop trying to impress people by talking directly out your ass.


Let's see, you are part of my audience, and from your response, however deconstructuve it is, you apparently know what I am talking about. I don't have any critical thinking book, but I have gone to the library and researched this stuff over the past five years or so.

Let's see, I have gotten a few emails from one reader of this post and we are now corresponding in private about some of the things discussed here.

My unsuccessful attempt at relating it to game programming is likely phemmer's and your inability to step outside of the game programming box. In other words, you have somewhere declared that game programming only embodies a certain set of programming paradigms.

Hmmm, apparently (from your perspective) I have an unlimited amount of time to educate and illucidate on the background of and foundations of this topic for everyone who might possibly read this topic. And simultaneously I am supposed to predict the background of everyone here and come up with an entire foundational description of everything here.

What I find I am doing is instead spending my energy responding to asses like yourself.

I essentially threw out a feeler to see what people knew and what people might respond with.

Apex, you are the ass here. I have tried to do nothing but explain (given limited time) as I see the need.

If you indeed know so much yourself, why don't you offer some explanations yourself, rather make your snide remarks. If you can't do that, then just go away.



Edited by - bishop_pass on June 9, 2001 11:59:14 AM
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
[bad joke]Hm, bishop_pass, why do you call Apex an ass ? I'd think that a .. person that has 6 whole posts on gamedev deserves at least some respect...[/bad joke]

Apart from that, I find the "It will never work, others have tried too, it's pointless. And besides, I didnt understand a word you said." posts quite annoying.


Not that I understood too much though . I have some basic Prolog knowledge, so your posts aren't completely Chinese to me, more like German .


So, do I need to know theorem proving theory, write a Prolog interpreter, and work my way from there to solve this ?

Or is there a graph theory analogous problem (or some other more conventional analogy) ?

Maybe using a library with functions like Unify (int predicate), IsLinked (int pred1, int pred2), Expand (int predicate) that would take care of the predicate solving part. (These examples arent making much sence I know)


How much do I need to know to
- understand the problem
- solve it ?

Edited by - Diodor on June 9, 2001 11:54:35 PM

Edited by - Diodor on June 9, 2001 12:03:45 AM


This topic is closed to new replies.

Advertisement