<< Back to Warzone Classic Forum   Search

Posts 191 - 210 of 565   <<Prev   1  2  3  ...  6  ...  9  10  11  ...  19  ...  28  29  Next >>   
WarLight AI Challenge: 2014-04-27 21:54:25


Trogatog
Level 52
Report
The luck %... those rolls make my eyes bleed.


Yeah, this. I've seen a 13 take a 13 on this competition...

Edited 4/27/2014 21:58:43
WarLight AI Challenge: 2014-04-28 18:26:20


125ch209 
Level 58
Report
... and I never attack neutrals in a SuperRegion with known opponent presence. My bot does know the opponent SuperRegions but he doesen't care if it involves attacking neutrals. Never attacking neutrals in a SuperRegion with opponent presence gives some "interesting" ties when two of my bots play against each other. But then on the other hand you see my bot building these huge stacks in Africa and as soon as the opponent shows up he kills him with that huge stack.
http://theaigames.com/competitions/warlight-ai-challenge/games/535ae29b4b5ab23ee61ac11b
@125ch209: Sorry to disappoint you, but it's a bug, not a feature.


what do you mean it's a bug not a feature?
http://theaigames.com/competitions/warlight-ai-challenge/games/534ef3ce4b5ab253021741ea
http://theaigames.com/competitions/warlight-ai-challenge/games/534c41484b5ab2530217065f
http://theaigames.com/competitions/warlight-ai-challenge/games/534bcf0c4b5ab2530216fc73

Edited 4/28/2014 18:27:04
WarLight AI Challenge: 2014-04-28 19:42:35


Norman 
Level 59
Report
Hello

what do you mean it's a bug not a feature?
Your question surprises me since you linked games where you see how bad the simple rule never to attack neutrals in SuperRegions with the opponent present can work out.

I was refering to following post of yours:
ps: our last game shows you made some nice updates btw, but i only had to change a few things to counter it^^
--> No changes made. My bot always built these huge stacks. In the linked game the reason for that huge Africa stack was that my bot calculates the owned fraction of each SuperRegion and tries to expand in the SuperRegion with the biggest owned fraction. Since this isn't possible with an opponent there (what he knew from picks) he just placed his armies there.

However with version 351 my bot now attacks neutrals for fighting purpose. But first he builds a huge enough stack. TREMBLE
http://theaigames.com/competitions/warlight-ai-challenge/games/535e84734b5ab261c0ce919d
WarLight AI Challenge: 2014-04-29 02:44:58


Trogatog
Level 52
Report
Yeah, my current updates that I put out today...

...can't be tested thoroughly because the server's broken for C# bots :(
WarLight AI Challenge: 2014-04-29 18:53:18

{rp} pedrito 
Level 48
Report
I'm reaching the limits of what my current structure of order-processing can reasonably handle. After finishing the 'strategic' brain of my bot last week, I've been working on all the little tricks that I wanted to implement since the beginning. Now they're working, and I'm quite satisfied with what he can do. Especially with the performance in "dog-fights" once the initial stage of stalemates is broken.

To achieve any significant improvement now, I'd have to throw out pretty much all the code that handles the way orders are set up and validated. The problem is the following:

The bot first proposes ALL possible moves that make sense, and later goes through them and validates as many as my income can afford. This means that when the bot proposes to deploy 7 armies to North Africa during 'proposal stage' to prevent the enemy from completing that bonus, it doesn't know that later only 4 armies will be allocated to this order during the 'validation stage' because the other 3 armies will be needed for another move with higher priority. This opens the way for some bad situations where the bot suffers more losses than necessary.

I can think of a few solutions to this, but all of them would require substantial amounts of rewriting, and I don't think I want to dedicate that much more time to it So I'm going to sit back and enjoy for a while, just fixing bugs and tweaking a few things until the finals. And I'll be hoping that SupremeDalek gets eliminated in the early going against a very unorthodox bot that does stuff that no one prepared for, so the rest of us stand a chance at least :D

By the way, as I'm writing this, SupremeDalek is nearly at 3000. Kudos Norman!

Edited 4/29/2014 18:56:27
WarLight AI Challenge: 2014-04-29 19:05:23


ps 
Level 61
Report
...can't be tested thoroughly because the server's broken for C# bots :(


Dropped 10 places with this, wondering when it'll be fixed, can't test anything properly until it does. :/ Hope those games with the errors will be retracted from the rating atleast.
WarLight AI Challenge: 2014-04-29 20:15:28


Trogatog
Level 52
Report
Dropped 10 places with this, wondering when it'll be fixed, can't test anything properly until it does. :/ Hope those games with the errors will be retracted from the rating atleast.


Thankfully when they start the tournament, all ratings go back to 1400. I'm guessing Norman's reaping the benefits of our errors like mad!!!

*cough* http://theaigames.com/competitions/warlight-ai-challenge/games/536007094b5ab2617599d5c4 *cough*


hahaha -- GJ though

Edited 4/29/2014 20:17:19
WarLight AI Challenge: 2014-04-29 20:58:54


ps 
Level 61
Report
i was surprised that they announced you won't be able to update the bot during the finals. really need to get it as best as possible before end of may. :S
WarLight AI Challenge: 2014-04-30 02:28:06


Norman 
Level 59
Report
Hello

@pedrito:
By the way, as I'm writing this, SupremeDalek is nearly at 3000. Kudos Norman!
It doesen't work that way that way. I need my boys to push me up. We rise together and fall together. You noobs keep losing to bots below rank 10 prevents me from 3000 rank.

And I'll be hoping that SupremeDalek gets eliminated in the early going against a very unorthodox bot that does stuff that no one prepared for, so the rest of us stand a chance at least :D
This isn't Hollywood but real life. Here the bad boys win. There ain't no Superhero comming to save you from EXTERMINATION.
WarLight AI Challenge: 2014-04-30 02:34:51


Trogatog
Level 52
Report
It doesen't work that way that way. I need my boys to push me up. We rise together and fall together. You noobs keep losing to bots below rank 10 prevents me from 3000 rank.


As soon as 1/2 my games don't crash, it'll happen... Hurts that I was 2900 ranked 3 days ago then crash, boom, bang and I can barely get a test game running :(
WarLight AI Challenge: 2014-04-30 02:41:18


Norman 
Level 59
Report
What I meant was that you can't reach an insane high rating when playing against other bots far below your rating.
http://bzstats.strayer.de/bzinfo/elo/?lang=en
WarLight AI Challenge: 2014-04-30 08:09:13

{rp} pedrito 
Level 48
Report
Norman: This isn't Hollywood but real life. Here the bad boys win. There ain't no Superhero comming to save you from EXTERMINATION

You might want to work a little more on that extermination function...



Trogatrog: Hurts that I was 2900 ranked 3 days ago then crash, boom, bang and I can barely get a test game running

Don't worry too much, I don't think it takes very long for a bot that plays as well as your to climb all the way back to the top. The ratings seem very volatile overall.

Edited 4/30/2014 08:10:24
WarLight AI Challenge: 2014-04-30 10:44:27


125ch209 
Level 58
Report
It took me 1200 version to get my bot to stop crashing, and i dont even know why it stoped crashing. It drove me crazy
WarLight AI Challenge: 2014-04-30 10:58:57

{rp} pedrito 
Level 48
Report
Your persistence is admirable ;)
WarLight AI Challenge: 2014-04-30 12:22:43


Latnox 
Level 60
Report
WarLight AI Challenge: 2014-04-30 21:00:26


Trogatog
Level 52
Report
WarLight AI Challenge: 2014-05-01 13:02:12


125ch209 
Level 58
Report
i am reading a book about ants "civilization", and apparently they have a really cool way of finding the shortest path from a point A to a point B. when searching for the spot they are looking for, each ant emit some pheromone attracting other ants to follow their path. Since the pheromones are evaporating quickly, the closer you are from the anthill, the higher the pheromone density, so the shortest path between A (anthill) and B (food) is the one with the highest density of pheromone, thus attracting more ants, thus emitting more pheromone, etc, until all the ants uses the same (shortest) path to go from A to B. Apparently the computer engineers have adapted this system, using virtual ants and virtual pheromones to find the quickest path from a point A to a point B. So back to our bots, i was wondering if you guys had a method to find the shortest path from a region A to a region B, maybe using similar system? For example i had to code a specific situation: when i have Australia and i suspect the opponent to be expanding in Africa, i need to take Siam, India and Middle-East asap. But really a better and more general way to do this should be to find the shortest path from australia to africa and take this path.

Edited 5/1/2014 15:29:55
WarLight AI Challenge: 2014-05-01 14:09:06


Norman 
Level 59
Report
Hello

@125ch209: Your question regarding the shortest path suprises me. How do you move your armies to the borders if you don't know how to calculate a shortest path? Or are you looking for a fancy algorithm. Indeed I know of some fancy algorithms that are used for real world AI problems, for example:
- Pathfinding with Voronoi diagrams
- Rapidly Exploring Random Trees
- Potential field method
- I don't know about your ants thing. This looks a bit like the Monte Carlo localization

However since we are operating on a simple graph here non of those fancy algorithms are needed and we can rely on well defined mathematical algorithms. I calculate the shortest path by giving each region in Africa the distance 0. The regions bordering Africa get the value 1, and the regions bordering a value 1 region get the value 2... When I'm sitting in Australia then I look which neighboring region has the lowest value and this is the region I have to take to move towards Africa.
WarLight AI Challenge: 2014-05-01 15:25:35


125ch209 
Level 58
Report
thanks for the answer,your method is indeed way simpler. i actually didn't took the time to think about how to make a "find shortest path " method because since the map is very small, i didn`t really needed it. i move my armies to the borders by prioritizing all the available regions. if i own a SuperRegion, i just put the regions that are bordering this SuperRegion in different arrays, depending if the region is neutral or if i own the region and it is underAttack. i basically copy/past my "expanding" code ,my "attacking opponent" code or my "defending" code for every given array of regions in order of priority. i know it is not pretty and i probably could do it in a smarter way like all your fancy bots using heuristics and whatnot, but it is working well enough for this challenge.

Edited 5/1/2014 15:34:23
WarLight AI Challenge: 2014-05-01 15:33:23


ps 
Level 61
Report
I'm familiar with ant colony optimization algorythms (i studied optimization algorythms a few years ago when i was taking my masters). i think it will be overkill for this specific scenario of finding the shortest path though. A more simple A* path finding algorythm is easier to implement and gives you what you want (the shortest path). Ant colony optimization would have big advantages to calculate new routes when something is blocked (it's used heavily in network traffic balancing for example) i guess in warlight this could be when your opponent has a large enough stack protecting a key area, which might be better to go around it instead of going through it, but in this particular map it would backfire on you, the opponent would use the stack to keep expanding against you while you're wasting armies attacking neutrals trying to flank him. so, no, i think ant colony would not be your best option.

I recently implemented a simpler version of a star on my bot. I use it to figure out where to expand into next (following the list of suspected places the enemy started in), and i only apply it when there is no enemy in sight. the c# code is online (like the rest of my bot, which is all open source (https://github.com/psenough/warlight_ai_challenge), even though it's becoming an ugly spaghetti code from hell after all the hacks i been throwing at it trying to debug different problems).

Anyways, the code i implemented attempts to figure out what bordering neutral to attack next on the shortest way to unknown territory with id dest. It's in C#:


        public int FindNextStep(int dest)
        {
            // reset
            foreach (Region reg in fullMap.regions)
            {
                reg.tempSortValue = 0;
            }

            // initial list
            List<Region> list = new List<Region>();
            foreach (Region reg in FullMap.GetRegion(dest).Neighbors)
            {
                list.Add(reg);
            }

            // first iteration
            int it = 1;

            while ( list.Count > 0 )
            {
                List<Region> newlist = new List<Region>();
                foreach (Region testRegion in list)
                {
                    Region reg = fullMap.GetRegion(testRegion.Id);
                    if (reg.OwnedByPlayer(myName))
                    {
                        // found home, now backtrack to find which neighbour to attack, should be the one with lowest it that is not 0
                        int lowest = 50;
                        int index = -1;
                        foreach (Region neigh in reg.Neighbors)
                        {
                            Region regn = fullMap.GetRegion(neigh.Id);
                            if ((regn.tempSortValue < lowest) && (regn.tempSortValue != 0)) index = regn.Id;
                        }
                        return index;
                    }
                    else
                    {
                        // havent found home yet, prepare next iteration
                        if (reg.tempSortValue == 0)
                        {
                            reg.tempSortValue = it;
                            foreach(Region neigh in reg.Neighbors) {
                                newlist.Add(neigh);
                            }
                        }
                    }
                }
                
                list.Clear();
                foreach (Region nl in newlist)
                {
                    list.Add(nl);
                }

                it++;
            }

            return -1; // failed to find home
        }


It's giving each region of the map an initial temp value of 0, then starting from the target is checks all the neighbours to see if any of them belongs to us, if it doesn't, it stores all the neighbours of that region (disregarding the ones that have already been checked) and proceeds to the next iteration. Until it either finds something or has run out of areas to check.

I haven't tested this algorythm properly in the wild yet with the C# bug affecting the server and all. But i think it was working (can't remember for sure anymore to tell you the truth). I recall i wanted to check it working on real games, but then never managed to get around to it, not sure if it was to check how well it did or if it was working at all.

Anyways, if it's of any use to anyone, knock yourself out porting it to java or whatever you're using.

Edited 5/1/2014 15:59:23
Posts 191 - 210 of 565   <<Prev   1  2  3  ...  6  ...  9  10  11  ...  19  ...  28  29  Next >>