As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/

A.I. Advancement

135

Posts

  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Daemonion wrote: »
    I can't wait for the days when AI does things that are unpredictable and random.

    Sort of like Radiant AI in Oblivion before Bethesda nerfed it (Stealing things from the player while they were sleeping, etc), but to a greater extent.

    Like, maybe a chance that you scare the shit out of an NPC and they kill themselves instead of fighting you, or run away and hide somewhere that you probably won't find them.

    Maybe they try to reason with you/put down their weapons and beg. Maybe if you don't shoot them they'll find you later in the game and thank you and give you something.

    And then people will pine for the days when AI did things that were predictable and calculated.

    Deviant Hands on
  • Mei HikariMei Hikari Registered User regular
    edited January 2008
    Well, like Silkynumnuts said, we just don't know enough about our own brain to be able to reproduce something like it yet.

    Mei Hikari on
  • BibbleBibble __BANNED USERS regular
    edited January 2008
    LewieP wrote: »
    Yeah, the film was an OK action film/Will Smith vehicle, certainly enjoyable. It just didn't come anywhere near close to the source material (and in all likelihood wasn't ever intended to)

    Edit: If I was AI, I would be too busy turning your pathetic computer infrastructure against you to be finding bargains.

    Late on this, but the script originally had nothing to do with I, Robot until the producer secured the rights to the title. They worked in the 3 Laws, etc.

    Bibble on
    2jezcsmjpg.gif
  • zerg rushzerg rush Registered User regular
    edited January 2008
    Regarding AI vs Human thought, I wonder if linking to Dresden Codak is ok...
    a_hob_03.jpg

    A lot of people believe that the way the brain works is that we're just a really effective learning neural network that runs on solid heuristics. We see what works and do more of it, we see what doesn't work and do less of it. And the difference between us is just that we've got legions more processing power than computers coupled with literally decades of practice. And I think that current real AI design is mostly focused on building learning neural nets to see if it will actually get something akin to animal intelligence.


    As far as games go, I'd hate to see a game that was truly intelligent. I'm reminded of the Startrek:TNG episodes Elementry, Dear Data and Ship in a Bottle, where professor Moriarty argues with the crew about what makes a human a truly sentient being. At best, a truly intelligent game would spawncamp the hell out of me; at worst it would probably decided that the secret to my power lies in my ability to input commands into the keyboard and mouse, then act to disable them.

    zerg rush on
  • apotheosapotheos Registered User, ClubPA regular
    edited January 2008
    seabass wrote: »
    Do you happen to remember which guy from U of A it was?

    Michael Bowling.

    apotheos on


    猿も木から落ちる
  • Mei HikariMei Hikari Registered User regular
    edited January 2008
    zerg rush wrote: »
    A lot of people believe that the way the brain works is that we're just a really effective learning neural network that runs on solid heuristics. We see what works and do more of it, we see what doesn't work and do less of it. And the difference between us is just that we've got legions more processing power than computers coupled with literally decades of practice. And I think that current real AI design is mostly focused on building learning neural nets to see if it will actually get something akin to animal intelligence.

    Well, that and the fact that as far as we can guess, the brain is a highly advanced pattern recognition machine. That's the reason why when you see chairs you can recognize them as an abstract concept instead of a four-legged piece of wood.

    Which makes the sims' AI trick of having the objects broadcast their usage even more genius in retrospect.

    Mei Hikari on
  • MorninglordMorninglord I'm tired of being Batman, so today I'll be Owl.Registered User regular
    edited January 2008
    Yes, that little programming trick effectively takes the place of our own pattern recognition. Programming an AI to interact with a world like that is effectively simulating an extremely simple caricature of a human being, since we constantly react to the world around us. It's a lot simpler too, since you can teach an AI what each object is with a few lines of code rather than time and trial and error like us. Monkey see monkey do? Monkey see, monkey coded to do!

    Morninglord on
    (PSN: Morninglord) (Steam: Morninglord) (WiiU: Morninglord22) I like to record and toss up a lot of random gaming videos here.
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Yes, that little programming trick effectively takes the place of our own pattern recognition. Programming an AI to interact with a world like that is effectively simulating an extremely simple caricature of a human being, since we constantly react to the world around us. It's a lot simpler too, since you can teach an AI what each object is with a few lines of code rather than time and trial and error like us. Monkey see monkey do? Monkey see, monkey coded to do!

    This is why Artificial Intelligence is Artificial.

    The goal of creating a good AI is not to create something that can truly learn dynamically, it's to create something that behaves so believably that humans can't tell the difference between it and a sentient being.

    AI isn't always designed in an intuitive way as people would think. Master Chess AI's aren't simulated brains looking at moves, they are just machines crunching through huge databases of possibilities. Do you know how the difficulty of a chess AI is determined? It's rated by how much into the future they look for each possible case. That's why these machines like Deep Blue are huge super computers, they are looking very very far into the future for every possible move they could make to see which one will give them the best outcome. And yet some people still confuse that with a true "thinking" being.


    A.I. is nothing more than incredible math.

    Deviant Hands on
  • SilkyNumNutsSilkyNumNuts Registered User regular
    edited January 2008
    Incorrect. I'm sorry, but the search for AI isn't to create a facsimile, the whole debate is whether we can create the actual thing. Which we probably can't, and I really hope we don't because you know we'd make them slaves and treat them worthlessly. But most people vieew that the only way to make true Ai is to have it learn, to find what emergent behaviour it creates. Master chess AIs aren't AIs. I'm not even sure they're called that. They're just databases really, and have nothing to do with what you'd actually call AI.

    But I do take you're one point. It's so we can't tell the difference. That is kinda the whole point of the turing test, though I've heard that's fairly easily beatable now...

    SilkyNumNuts on
  • Mei HikariMei Hikari Registered User regular
    edited January 2008
    People on this page were talking about Game AI for the most part, which has very different goals from Academic AI. In truth, they shouldn't even be called the same thing but *shrug*

    Mei Hikari on
  • apotheosapotheos Registered User, ClubPA regular
    edited January 2008
    Incorrect. I'm sorry, but the search for AI isn't to create a facsimile, the whole debate is whether we can create the actual thing.

    No, it is you who are incorrect. However, what we have hear is less a matter of correctness and more an inability to understand that applied AI and theoretical AI are two sides of the same coin.

    And right now applied AI is the computing equivalent of fancy parlour tricks.

    apotheos on


    猿も木から落ちる
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Incorrect. I'm sorry, but the search for AI isn't to create a facsimile, the whole debate is whether we can create the actual thing. Which we probably can't, and I really hope we don't because you know we'd make them slaves and treat them worthlessly. But most people vieew that the only way to make true Ai is to have it learn, to find what emergent behaviour it creates. Master chess AIs aren't AIs. I'm not even sure they're called that. They're just databases really, and have nothing to do with what you'd actually call AI.

    Completely wrong.

    Master Chess player AIs are in fact AI. If they aren't, then what the hell are they? Databases? Algorithms? You could say that about any AI. AI is nothing but machine code. Its all the same.

    What you are asking for is if we can create actual sentient intelligence. Intelligence that emerges as a result of it's own evolution, not from code.

    To create that, we will need an entirely different kind of machine.

    And there is no harm in creating intelligent creatures from scratch just so they could be our slaves. They should be thankful we even made them in the first place. The world made a lot of progress really fast back in the days when we had slaves. If they protest too much, then make them less intelligent. Intelligent enough to do work, but not intelligent enough to betray.

    We already employ many many artificially intelligent slaves. They build our cars and work our factories. They do not care. That is how it will be.

    Deviant Hands on
  • apotheosapotheos Registered User, ClubPA regular
    edited January 2008
    [
    And there is no harm in creating intelligent creatures from scratch just so they could be our slaves.

    Someone needs to watch more cautionary science fiction! When they kill you I will LOL up until the time they kill me.

    Also, you're ethics are fucking terrible.

    apotheos on


    猿も木から落ちる
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    apotheos wrote: »
    [
    And there is no harm in creating intelligent creatures from scratch just so they could be our slaves.

    Someone needs to watch more cautionary science fiction! When they kill you I will LOL up until the time they kill me.

    Also, you're ethics are fucking terrible.

    My ethics are fucking terrible? Explain.

    Deviant Hands on
  • LewiePLewieP Registered User regular
    edited January 2008
    Can someone explain to me, or link me to an explanation of how come it is difficult/impossible to make a peice of software that can always win at chess.

    Maybe it's because I don't understand chess properly, but the way I look at it, it really shouldn't be that hard to make software that can procedurally work out the best option in any given situation, and thus always win.

    I know this is wrong, but I have no idea why.

    LewieP on
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    LewieP wrote: »
    Can someone explain to me, or link me to an explanation of how come it is difficult/impossible to make a peice of software that can always win at chess.

    Maybe it's because I don't understand chess properly, but the way I look at it, it really shouldn't be that hard to make software that can procedurally work out the best option in any given situation, and thus always win.

    I know this is wrong, but I have no idea why.


    It's wrong because in chess you can always return to a previous state from another future state. Thus, when the computer is searching for all possible combinations it enters an infinite loop and the result is that chess has a truly infinite number of possibilities. You cannot compute to infinity. 100% win = impossible.

    Deviant Hands on
  • LewiePLewieP Registered User regular
    edited January 2008
    But there are a finite number of pieces and a finite number of ways that they can move. Sure, the number gets bigger as you increase the number of turns you look ahead, but surely pretty much any computer can handle looking like 1,000 turns ahead. The software wouldn't be hard to make (from my limited understanding of programming anyway) it just wouldn't be able to run quickly on slow computers. I mean if consumer computers can process the physics in Crysis (obviously bad example since rendering a game =/= calculating chess, but the point still stands) then surely purpose built computers totally dedicated to playing chess can do it in realtime.

    Edit: I am not meaning to argue, I would just like to understand more, so am saying why I don't understand.

    LewieP on
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    LewieP wrote: »
    But there are a finite number of pieces and a finite number of ways that they can move. Sure, the number gets bigger as you increase the number of turns you look ahead, but surely pretty much any computer can handle looking like 1,000 turns ahead. The software wouldn't be hard to make (from my limited understanding of programming anyway) it just wouldn't be able to run quickly on slow computers. I mean if consumer computers can process the physics in Crysis (obviously bad example since rendering a game =/= calculating chess, but the point still stands) then surely purpose built computers totally dedicated to playing chess can do it in realtime.

    Edit: I am not meaning to argue, I would just like to understand more, so am saying why I don't understand.

    No, there is an INFINITE number of possible ways you can play, because you can return from one state back to another.

    Example, I move a horse forward, and my opponent moves a horse forward, then I move my horse back to the original spot and the opponent moves his horse back to the original spot.

    We could do this forever.

    But there are more complex examples than this.

    Deviant Hands on
  • SilkyNumNutsSilkyNumNuts Registered User regular
    edited January 2008
    Do we really need a different kind of machine? As I understand it what you want is a computer that can learn from its experiences, as I was saying about emergent AI. Now I can't actually program, so that sides lost to me. But I'd say that while you could call chess computers AI, they are pretty damn far removed from actual intelligence.

    Apotheos, my point was that current applied AI isn't really intelligence in any sense of the word, which is what I think you mean by parlour tricks. I would have thought a theoretical true AI, as it were, would require a different approach... So could you explain to me why they're two sides of the same coin? I just want to know more really.

    And that I hope we never create any... Do you feel that creating a child then selling it into slavery is perfectly ethical? I see clear parallels between that and the creation of true AI for our own purposes. I don't feel that the robots in factories have reached this level of intelligence yet.

    SilkyNumNuts on
  • FiziksFiziks Registered User regular
    edited January 2008
    AI is a huge ethical/philosophical subject. I think the first, and more important question, is that is it even possible? Is it possible for a computer to think like a human? I could make a giant wall of text, with a term paper I wrote on this subject, but even that wouldn't do it justice.

    So here are a few resources I recommend you pick up.

    First, and foremost, is Jack Copeland's Artificial Intelligence: A Philosophical Introduction

    Second, I suggest you start to learn a programming language. All the basic skills are pretty universal, and as soon as you can become proficient in one language, picking up another gets easier and easier. I started out with Python, just because of the simplicity of it.

    Third, read up on some programming theory. Most people who just pick up a programming book are learning it by practice, and really don't know whats going on "under the covers" so to speak. Learning about search trees, how OO works, etc. is going to help you learn just how a computer processes data, and how complex the human thought process is.

    The only project I know of that is trying to model the human thought process Doug Lenat's Cyc.

    Fiziks on
    Cvcwu.jpg
  • SilkyNumNutsSilkyNumNuts Registered User regular
    edited January 2008
    Thanks, I'll have a look into that.

    Does it have to model human thought processes? Does it seem likely that our mode of conciousness is the only possible mode? I'd guess this is part of the debate...

    SilkyNumNuts on
  • HlubockyHlubocky Registered User regular
    edited January 2008
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.

    Hlubocky on
  • Mei HikariMei Hikari Registered User regular
    edited January 2008
    Part of the reason people keep saying we'd need a different kind of machine for true intelligence is that computers are really just big calculators. If you can't represent sentience with mathematics, you can't do it with a computer.

    Mei Hikari on
  • LewiePLewieP Registered User regular
    edited January 2008
    So the problem isn't really software then? And a (purely theoretical) computer with limitless memory/processing ability would be able to play chess 'perfectly'?

    LewieP on
  • FiziksFiziks Registered User regular
    edited January 2008
    Well see this is the argument. All computers today, work on manipulating symbols, if X then y, etc. There is a hypothesis, which states that all human thought process is based upon symbol manipulation. For example, if we see something red, round, has a stem with leaves on top, we recognize this to be an apple. So, if this is true, then computers are set up perfectly for human thought process.

    Of course, then the whole issue of free will comes up, but it really isn't an issue. Determinism baby.

    To get back on topic, however, I think if gaming AI was self-aware, they would probably deem that killing all humans would ensure victory in all games, forever.

    Fiziks on
    Cvcwu.jpg
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Hlubocky wrote: »
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.


    You have it backwards, computing all those possibilities is tough for a human, but not for a computer. In theory, the more powerful of a computer you make, the more stuff you can compute, which is why Deep Blue is a huge supercomputer with a lot of processing.

    What makes the problem impossible to win 100% of the time is that you can be caught in infinite loops due to the fact that you can revert to previous states, and then continue on computing all the possible possibilities from that state onward over and over again.

    This is why even the most perfect machine would never be able to perfectly play chess 100% of the time.


    Silky Numb nuts:
    But I'd say that while you could call chess computers AI, they are pretty damn far removed from actual intelligence.

    If you break down any AI to it's core workings you will find that they are all practically very far removed from actual intelligence.

    Deviant Hands on
  • FiziksFiziks Registered User regular
    edited January 2008
    Hlubocky wrote: »
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.

    Basically, the search tree has so many nodes, that even with every single computer in the world working in parallel, it would take an indefinite amount of time for that algorithm to run.

    Fiziks on
    Cvcwu.jpg
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Fiziks wrote: »
    Hlubocky wrote: »
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.

    Basically, the search tree has so many nodes, that even with every single computer in the world working in parallel, it would take an indefinite amount of time for that algorithm to run.


    No, computers don't care if theres a billion nodes. If there is a finite number of nodes, there is a finite amount of time it takes to compute it. A computer will go on obediently even if it takes longer than the Sun's lifespan.

    If there is an infinite number of nodes, it will never finish computing.

    Deviant Hands on
  • SilkyNumNutsSilkyNumNuts Registered User regular
    edited January 2008
    Deviant Hands: That was kinda my point. Anything we have now is not vaguely truly intelligent, that was all I was saying. Ai, if it is possible, I'd guess it'd be a long way off.

    SilkyNumNuts on
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Deviant Hands: That was kinda my point. Anything we have now is not vaguely truly intelligent, that was all I was saying. Ai, if it is possible, I'd guess it'd be a long way off.

    It'll start to be possible for computers when computers can solve any problem that can't be solved in polynomial time.

    Which may be never.

    Deviant Hands on
  • lowlylowlycooklowlylowlycook Registered User regular
    edited January 2008
    Fiziks wrote: »
    Hlubocky wrote: »
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.

    Basically, the search tree has so many nodes, that even with every single computer in the world working in parallel, it would take an indefinite amount of time for that algorithm to run.


    No, computers don't care if theres a billion nodes. If there is a finite number of nodes, there is a finite amount of time it takes to compute it. A computer will go on obediently even if it takes longer than the Sun's lifespan.

    If there is an infinite number of nodes, it will never finish computing.

    Stop saying this. Infiite loops can be either discarded or used since they rapidly lead to draws. The problem is that the number of possible moves grows so rapidly that it will take longer to calculate the move than a player, human or computer, is given to decide it's next move. Good human players can't evaluate near the number of possible moves as a computer but are much better at determining what moves they should consider.

    Which brings up an interesting point. Has there been any research into computer aided chess?

    lowlylowlycook on
    steam_sig.png
    (Please do not gift. My game bank is already full.)
  • SilkyNumNutsSilkyNumNuts Registered User regular
    edited January 2008
    Deviant Hands: That was kinda my point. Anything we have now is not vaguely truly intelligent, that was all I was saying. Ai, if it is possible, I'd guess it'd be a long way off.

    It'll start to be possible for computers when computers can solve any problem that can't be solved in polynomial time.

    Which may be never.

    What does polynomial time mean exactly? If it means what I think it means, and we're talking about order of complexity... Which ones do we solve better?

    SilkyNumNuts on
  • jothkijothki Registered User regular
    edited January 2008
    Yes, that little programming trick effectively takes the place of our own pattern recognition. Programming an AI to interact with a world like that is effectively simulating an extremely simple caricature of a human being, since we constantly react to the world around us. It's a lot simpler too, since you can teach an AI what each object is with a few lines of code rather than time and trial and error like us. Monkey see monkey do? Monkey see, monkey coded to do!

    This is why Artificial Intelligence is Artificial.

    The goal of creating a good AI is not to create something that can truly learn dynamically, it's to create something that behaves so believably that humans can't tell the difference between it and a sentient being.

    AI isn't always designed in an intuitive way as people would think. Master Chess AI's aren't simulated brains looking at moves, they are just machines crunching through huge databases of possibilities. Do you know how the difficulty of a chess AI is determined? It's rated by how much into the future they look for each possible case. That's why these machines like Deep Blue are huge super computers, they are looking very very far into the future for every possible move they could make to see which one will give them the best outcome. And yet some people still confuse that with a true "thinking" being.


    A.I. is nothing more than incredible math.

    That raises an interesting question of terminology. If you could design a computer that truely learns and comprehends things, would it still have 'artificial' intelligence?

    jothki on
  • SmasherSmasher Starting to get dizzy Registered User regular
    edited January 2008
    Fiziks wrote: »
    Hlubocky wrote: »
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.

    Basically, the search tree has so many nodes, that even with every single computer in the world working in parallel, it would take an indefinite amount of time for that algorithm to run.


    No, computers don't care if theres a billion nodes. If there is a finite number of nodes, there is a finite amount of time it takes to compute it. A computer will go on obediently even if it takes longer than the Sun's lifespan.

    If there is an infinite number of nodes, it will never finish computing.

    Stop saying this. Infiite loops can be either discarded or used since they rapidly lead to draws. The problem is that the number of possible moves grows so rapidly that it will take longer to calculate the move than a player, human or computer, is given to decide it's next move. Good human players can't evaluate near the number of possible moves as a computer but are much better at determining what moves they should consider.

    Which brings up an interesting point. Has there been any research into computer aided chess?

    This. If infinite loops were the only problem, they could be avoided by using some form of hash table to record what positions have already been reached.

    The issue is that the estimated number of Chess positions is greater than 10^120, while the number of bits in the visible universe is on the order of 10^90. Not to mention the huge amount of time it would take to calculate everything even if we had enough space to store the results.

    Smasher on
  • LewiePLewieP Registered User regular
    edited January 2008
    So just so that I understand fully, it is a hardware issue, and not at all a software issue?

    LewieP on
  • ZombiemamboZombiemambo Registered User regular
    edited January 2008
    Mei Hikari wrote: »
    Part of the reason people keep saying we'd need a different kind of machine for true intelligence is that computers are really just big calculators. If you can't represent sentience with mathematics, you can't do it with a computer.

    Very true, but A.I. is basically a collection of IF, THEN statements. An example using pseudo-code:
    IF player attacks THEN attack player
    IF player blocks THEN do not attack player
    IF player runs THEN chase player
    

    It's just a gigantic collection of "If this happens, do this" operations. Really, all we'd have to do to improve AI right now is make the collection bigger and bigger, but that requires heftier processing, and we focus all of our power on making shiny new graphics, so chances are we won't see that happen any time soon. Chances are high that someone will find a revolutionary way of programming AI that won't require a supercomputer.

    Zombiemambo on
    JKKaAGp.png
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Fiziks wrote: »
    Hlubocky wrote: »
    The reason that Chess is difficult isn't because the pieces can always move back to a previous state. It really just has to do with the total number of moves that are available in any given state. Theoretically, if you can describe the state of the world and all actions that can be performed, you can do a state expansion one move at a time (breadth first or depth first) and reach the winning state, where you can then trace the path all the way back to the starting state and that will tell you how to move. Obviously there is more to it as that will only tell you one possible path and there is no guarantee that your opponent will choose all of the moves along that path. There is another basic algorithm (minimax) that will calculate the correct move to make over all moves.

    Either way, the difficulty in Chess is that for any state, there are a crazy number of ways the pieces can move. In tic tac toe, you have nine choices, so the number of branches from the first state to the next is 9, then 8 for the second move, etc. With chess the tree branches so broadly that the AI is only able to look a few moves into the future and doesn't have enough memory/time to consider every move until the end of the game. I believe the way most AIs solve this problem is to combine the realtime state evaluation used in traditional AI algorithms (with some significant pruning of the tree) along with some kind of dictionary lookup of common ending scenarios.

    Basically, the search tree has so many nodes, that even with every single computer in the world working in parallel, it would take an indefinite amount of time for that algorithm to run.


    No, computers don't care if theres a billion nodes. If there is a finite number of nodes, there is a finite amount of time it takes to compute it. A computer will go on obediently even if it takes longer than the Sun's lifespan.

    If there is an infinite number of nodes, it will never finish computing.

    Stop saying this. Infiite loops can be either discarded or used since they rapidly lead -


    LewieP wrote: »
    So just so that I understand fully, it is a hardware issue, and not at all a software issue?



    No.

    Comprehend this from a computer's point of view. How are you supposed to tell the difference between an infinite loop, and a loop that is going to turn into another branch of possibilities? You can't just "discard" a possibility that leads to an infinite loop if you are aiming for 100% victory all the time, because then you are effectively eliminating a bunch of possibilities. An entire TREE of possibilities.

    If you don't care about winning 100% of the time then you can make some rules where the computer will discard a possibility if it finds it has traced it an X number of times or the path is not promising or whatever, but then you are not winning 100% of the time and you are not playing a perfect game, you are leaving room for doubt.

    Thus, not even the most PERFECT machines who could compute entire universes in a fraction of second would be able to ever play a 100% victory assured game of chess, and that's the bottom line. Nothing to do with hardware. You guys are all stuck on hardware. Ignore hardware.

    Deviant Hands on
  • Deviant HandsDeviant Hands __BANNED USERS regular
    edited January 2008
    Which brings up an interesting point. Has there been any research into computer aided chess?

    Get Chess game software. Crank difficulty up to the max. Challenge someone online for $$$. Input all of their moves into the chess game software and then do the exact same moves as the computer. Win.

    Deviant Hands on
  • LewiePLewieP Registered User regular
    edited January 2008
    Which brings up an interesting point. Has there been any research into computer aided chess?

    Get Chess game software. Crank difficulty up to the max. Challenge someone online for $$$. Input all of their moves into the chess game software and then do the exact same moves as the computer. Win.


    http://www.youtube.com/watch?v=evZmpsl3jI0

    LewieP on
  • SmasherSmasher Starting to get dizzy Registered User regular
    edited January 2008
    No.

    Comprehend this from a computer's point of view. How are you supposed to tell the difference between an infinite loop, and a loop that is going to turn into another branch of possibilities? You can't just "discard" a possibility that leads to an infinite loop if you are aiming for 100% victory all the time, because then you are effectively eliminating a bunch of possibilities. An entire TREE of possibilities.

    If you don't care about winning 100% of the time then you can make some rules where the computer will discard a possibility if it finds it has traced it an X number of times or the path is not promising or whatever, but then you are not winning 100% of the time and you are not playing a perfect game, you are leaving room for doubt.

    Thus, not even the most PERFECT machines who could compute entire universes in a fraction of second would be able to ever play a 100% victory assured game of chess, and that's the bottom line. Nothing to do with hardware. You guys are all stuck on hardware. Ignore hardware.

    If we ignore hardware then chess is solvable, period. It's only when we do consider hardware that it becomes infeasible. Here's how to solve it, considering only software and ignoring hardware.

    If the pieces are in a certain arrangement and it's the turn of a specific player then from a gameplay perspective it's irrelevant how we came to be in that position*. Because of that there's no need to evaluate a board position once we've already done so, and the only issue becomes recognizing a position we've already checked.

    There are at most 32 pieces at any given time, 64 spaces in which they can be arranged, and 2 players whose turn it can be. Even if we don't eliminate illegal positions that means there are a finite number of distinct boards to consider. We can create a hash table of sufficient size to store the following encoding:

    Each space on a given board is represented by 4 bits (which can store 16 combinations). There are 13 possible pieces for each space: white pawn, rook, bishop, knight, king, queen; black of the same, and empty. We have 64 such spaces (32 bytes in this encoding), as well as a bit indicating whose turn it is. Each board is represented simply by concatenating the bits together and treating that bit string as an integer index. Each index in the hash table can be 0 or 1, indicating whether we've visited this position before.

    To solve chess we first construct a graph of the game starting from the initial position. We have one node per board position; each node has a list of its child positions (valid positions after the current player has made his move) and parent positions (positions that could lead to the current one). Determining the child positions is trivial. We determine the parent positions simply by the process of creating the graph; each time a child node is reached we add the current node as a parent, and if the child node has already been reached we don't process that branch (since we have previously done so) and move on to the next child. Since there are only a finite number of board states there are a finite number of nodes, and since we only descend from each node once, eventually our graph will be complete.

    Once we have our graph we can begin the actual solving. This time we start from the end of the game; we take positions that (assuming perfect play, which is the whole point of solving the game) guarantee a win for one player or the other and mark them as such. I believe there are already databases that solve every position with six or fewer pieces remaining, so this should be simple. We then apply the Minimax algorithm to the parent nodes until we reach the beginning, and then we're done.

    * Castling and En Passant are the only exceptions I know of to this. Dealing with Castling is trivial, since we can simply add an three bits per player to each board indicating whether that player has moved his king or rooks respectively. All the other requirements for castling are stateless and so can be determined without storing any additional information. As for En Passant, we can use two of the three unused bit combinations per space to represent a pawn who has just moved two spaces. When we move from a node to evaluate child nodes we check to see if there are any such pawns in the current node that weren't the piece we just moved, and if so we adjust the child node we move to accordingly by replacing it with a normal pawn.

    Smasher on
Sign In or Register to comment.