Jump to content

Open-source GIB


Antrax

Recommended Posts

I'm wondering if it would be possible to release (a part of) GIB to the open source community, as a way of improving its fundamental software design and as a result, its card play. If I read between the lines correctly,the bidding database is proprietary and probably not something BBO would be able / willing to share, but the hand-simulating code and the playing code doesn't sound like there's a whole bunch of IP there - the theory has all been published and the implementation sounds less than ideal, based on what barmar and georgi are saying.

At worst, this will accomplish nothing other than a better default reply from barmar, but it might actually help step GIB forward. It sounds as though there are some posters here with some software development experience, and the code is already being reworked, so just adding a couple of people (as many as whoever's leading this effort right now can manage) should be relatively painless.

I don't think there should be any licensing issues, since BBO, when renting GIB, is basically selling server time and not the right to run this code.

Thoughts?

Link to comment
Share on other sites

This is a NON OFFICIAL answer. I don't know what bosses think, nor I asked.

 

I very much doubt Matt Ginsberg gave up all rights to GIB code, to the point such a move like the one suggested above would necessarily need to be green lighted by him.

Link to comment
Share on other sites

This is also not an official answer. If there is to be an official answer, it would be up to Uday to make it.

 

Even if there are no legal issues (I have no idea if there are or not), I doubt that this will ever happen and it almost certainly won't happen in the nearish future.

 

I am not going to go into the details as to why, but historically we have not been big believers in the concept of "open source".

 

But while I am here, let me state that as usual cloa513 has no idea what he or she is talking about. Matt Ginsberg, the original author of GIB, is perhaps the smartest person as well as the most highly-skilled programmer I have ever met.

 

It is true that some of the GIB source code is difficult for mere mortals to understand, but that is mostly a function of the complexity of the program (as opposed to carelessness or poor coding habits on the part of the author - a man who happens to be a true genius).

 

Fred Gitelman

Bridge Base Inc.

www.bridgebase.com

Link to comment
Share on other sites

Thanks for replying, Fred.

As an aside, I find it surprising that a software professional would not equate clarity and maintainability with genius in software design. With all due respect to GIB and its creator, I doubt it's more complex than, say, a real-time OS, and those are typically developed and maintained by mere mortals.

Link to comment
Share on other sites

Thanks for replying, Fred.

As an aside, I find it surprising that a software professional would not equate clarity and maintainability with genius in software design. With all due respect to GIB and its creator, I doubt it's more complex than, say, a real-time OS, and those are typically developed and maintained by mere mortals.

You make a reasonable point, but different considerations tend to apply when one writes a program with the expectation that he/she will be the only person who ever looks at the code. In such circumstances, the most important thing at the time seems to be to ensure that *you* find the code clear and easy to maintain. Making sure that *anyone* could understand and maintain the code slows down the development process (and for some people makes it less fun).

 

It also happens to be the case that GIB was written at a time in which computers were much slower and had much less memory than today's machines. GIB contains a lot of code that nowadays would be considered "obscure" by most programmers but at the time was important for performance purposes.

 

Perhaps it would have been wise for Matt to guess that the time might come (15 years or so later as it turned out) in which someone else would take over the GIB project, but I have a lot of sympathy for his apparent failure to plan for this possibility. GIB was his baby - he was not planning for it ever to be put up for adoption.

 

Anyway, for me "genius in software design" can mean more than one thing. The sort of genius that impresses me the most is the sort that Matt has - the ability to design and implement algorithms that solve difficult problems.

 

I don't think the comparison between GIB and real-time OS is necessarily valid. Sure an OS is complicated, but not in quite the same way that GIB is complicated. Besides that, I think you may underestimate the skills of those people who are capable of developing and maintaining modern OSs - I suspect that most of these people are exceptionally gifted programmers (ie not quite mere mortals).

 

In my experience programmers are similar to bridge players in that many of them think they are experts, but only a small fraction of these people have the ability to deliver at the highest levels.

 

Fred Gitelman

Bridge Base Inc.

www.bridgebase.com

Link to comment
Share on other sites

That makes sense, and is indeed part of the reason I thought the project could benefit from exposure. Thanks for elaborating.

 

As a final PS, I don't think overestimating oneself is restricted only to Bridge and programming. Hearing a person say "I am average at <field>" is extremely rare - and usually those people are far above the average.

Link to comment
Share on other sites

One aspect of genius is to innovate - to change one's field through original thought - and Ginsberg certainly managed this, just as Einstein did or Hammett in his field!

 

I would not expect any commercial software to go "open source": all control over development would be lost. Having said all that I think GIB suffers from the inherent limitations of random simulation.

 

What I would hope for is that GIB could be used as a black box (which could still produce brilliant, normal or insane plays) and overlay a shield which would produce expert plays for specific situations and revert to GIB for any situations the shield did not cover.

 

Surely this is both possible and highly desirable?

Link to comment
Share on other sites

I doubt it. Basically even when a project is "open source", there is typically a person or group of people who control what gets committed to the code base. So, while anyone is free to read and make suggestions, to actually change the code requires approval. The project I linked to, for instance, is a commercial product that benefits from the open source community - the community suggests features and patches, and the paid Intel engineers take the best of these ideas into the Intel product. In exchange, non-commercial use of the product is free of charge. Everybody wins, and there's no chaos as a result of exposing the code to the world.
Link to comment
Share on other sites

It would be really cool if BBO published an API for GIB that allowed 3rd party developers to implement their own systems and conventions in GIB, similar to Full Disclosure.

 

But I also think it would be a technically very difficult thing to achieve. First, it would probably take some major changes to the GIB architecture to achieve the kind of modularity that would allow 3rd party plugins. Second, the plugins would have to go through serious vetting to make sure that nobody uses GIB as a trojan horse to get malware into the BBO software. 3rd, to take full advantage of the new feature, GIB should be able to interpret the bidding by human opponents playing Acol, WJ or whatnot, but that raises further technical issues.

 

But maybe one day it would be worth the effort. Having GIB play all the systems that have already been described in FD, and allowing users to select convention for their GIB partners and opponents, could make GIB a lot more attractive.

Link to comment
Share on other sites

It would be really cool if BBO published an API for GIB that allowed 3rd party developers to implement their own systems and conventions in GIB, similar to Full Disclosure.

 

But I also think it would be a technically very difficult thing to achieve. First, it would probably take some major changes to the GIB architecture to achieve the kind of modularity that would allow 3rd party plugins. Second, the plugins would have to go through serious vetting to make sure that nobody uses GIB as a trojan horse to get malware into the BBO software. 3rd, to take full advantage of the new feature, GIB should be able to interpret the bidding by human opponents playing Acol, WJ or whatnot, but that raises further technical issues.

 

But maybe one day it would be worth the effort. Having GIB play all the systems that have already been described in FD, and allowing users to select convention for their GIB partners and opponents, could make GIB a lot more attractive.

First GIB will have to be able to play the system it has- it doesn't always take forcing bids as forcing or take out as take out.

Link to comment
Share on other sites

It would be really cool if BBO published an API for GIB that allowed 3rd party developers to implement their own systems and conventions in GIB, similar to Full Disclosure.

 

But I also think it would be a technically very difficult thing to achieve. First, it would probably take some major changes to the GIB architecture to achieve the kind of modularity that would allow 3rd party plugins. Second, the plugins would have to go through serious vetting to make sure that nobody uses GIB as a trojan horse to get malware into the BBO software. 3rd, to take full advantage of the new feature, GIB should be able to interpret the bidding by human opponents playing Acol, WJ or whatnot, but that raises further technical issues.

 

But maybe one day it would be worth the effort. Having GIB play all the systems that have already been described in FD, and allowing users to select convention for their GIB partners and opponents, could make GIB a lot more attractive.

The commercial GIB allowed one to load a .sys file that was the system being played by GIB

It included KS, 2/1, Moscito, and several others.

  • Upvote 1
Link to comment
Share on other sites

The commercial GIB allowed one to load a .sys file that was the system being played by GIB

It included KS, 2/1, Moscito, and several others.

But the bidding rules have to have places where it says "If you're playing Moscito, that bid means X". The bidding rules are written in a pattern-matching language that's really difficult to read and write (if you're old enough to remember TECO macros, it's comparable).

Link to comment
Share on other sites

First GIB will have to be able to play the system it has- it doesn't always take forcing bids as forcing or take out as take out.

It plays its own system, it's just that the system has holes in it -- it doesn't say what to do in every case. Saying that a bid is forcing doesn't tell it what it should bid if there's no rule that matches its hand.

 

That's the difference between humans and computers. When a human is stuck like this, it can think creatively and find a way out of it, but computers are forced to follow the strict logic of the program.

Link to comment
Share on other sites

I doubt it. Basically even when a project is "open source", there is typically a person or group of people who control what gets committed to the code base. So, while anyone is free to read and make suggestions, to actually change the code requires approval. The project I linked to, for instance, is a commercial product that benefits from the open source community - the community suggests features and patches, and the paid Intel engineers take the best of these ideas into the Intel product. In exchange, non-commercial use of the product is free of charge. Everybody wins, and there's no chaos as a result of exposing the code to the world.

Thanks, now I am with you.

Link to comment
Share on other sites

It plays its own system, it's just that the system has holes in it -- it doesn't say what to do in every case. Saying that a bid is forcing doesn't tell it what it should bid if there's no rule that matches its hand.

 

That's the difference between humans and computers. When a human is stuck like this, it can think creatively and find a way out of it, but computers are forced to follow the strict logic of the program.

Ie. it was sloopily put together, GIB should have a response for every standard sequence- e.g I'd have limited the opening responses over 1 suit openings to 6 (not include Soloway or complex bids), nearest suit bid or 1NT or raise 1 or 2 and make sure those sequences are reasonably complete and absolute- GIB should never be erratic with a reverse bid. 1D,1S,2H and use simulations to cover the gaps not simulations for every single bid which can override the bookbid.

Link to comment
Share on other sites

Ie. it was sloopily put together, GIB should have a response for every standard sequence- e.g I'd have limited the opening responses over 1 suit openings to 6 (not include Soloway or complex bids), nearest suit bid or 1NT or raise 1 or 2 and make sure those sequences are reasonably complete and absolute- GIB should never be erratic with a reverse bid. 1D,1S,2H and use simulations to cover the gaps not simulations for every single bid which can override the bookbid.

Do you really think it's feasible to define meanings for every possible sequence? There are millions of combinations, particularly when competitive auctions are involved.

 

Humans don't have this problem because we learn basic principles and then use logic and creativity to apply them in different situations. But that's not how GIB works, it needs precise rules for everything. And the language and structure in which the GIB bidding rules are written makes it very difficult to tell whether all the cases are covered.

 

Even the simulations depend on rules. When it's deciding which bids to include in the simulation, it looks for rules that match hands similar to the one it has. And it has to know what the simulated bids show so it can determine how partner will respond to each of them.

 

Despite the fact that the "I" in GIB stands for "Intelligent", it isn't really. Like many forms of AI, it just fakes it. It's like Watson, the computer that played Jeopardy: it's really just a very fancy search engine, looking for entries in its database that match the most keywords in the clue.

 

Competent bridge bidding is an incredibly difficult task, making use of some of the features of the human mind that are unique to our species: language, complex planning, and empathy. Teaching a computer to do this is the holy grail of AI.

Link to comment
Share on other sites

Do you really think it's feasible to define meanings for every possible sequence? There are millions of combinations, particularly when competitive auctions are involved.

 

Humans don't have this problem because we learn basic principles and then use logic and creativity to apply them in different situations. But that's not how GIB works, it needs precise rules for everything. And the language and structure in which the GIB bidding rules are written makes it very difficult to tell whether all the cases are covered.

 

Even the simulations depend on rules. When it's deciding which bids to include in the simulation, it looks for rules that match hands similar to the one it has. And it has to know what the simulated bids show so it can determine how partner will respond to each of them.

 

Despite the fact that the "I" in GIB stands for "Intelligent", it isn't really. Like many forms of AI, it just fakes it. It's like Watson, the computer that played Jeopardy: it's really just a very fancy search engine, looking for entries in its database that match the most keywords in the clue.

 

Competent bridge bidding is an incredibly difficult task, making use of some of the features of the human mind that are unique to our species: language, complex planning, and empathy. Teaching a computer to do this is the holy grail of AI.

I don't say that at all. You should try reading what I write. I said limit the number of sequences and then make sure all those are well defined and it doesn't have to be a complete chain at some point with enough information GIB can just simulate the best place for the contract or partner signs off in the right place.

 

A lot of problems with GIB is because it is creative in a bad way- those simulations used instead of bidding tables (noone expects amazing bidding from a computer program).

Good human player do simulations in their head so there is really no difference.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...