Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

2 Pages<12
silverfish recompiled rush & control
Yoin
#20 Posted : Tuesday, February 10, 2015 11:28:57 AM(UTC)

Rank: Advanced Member

Groups: Registered, HSModerator
Posts: 583
Location: Spain

Thanks: 118 times
Was thanked: 218 time(s) in 108 post(s)
Golddieb;23685 wrote:
IMHO no one contacted him. ;)

I can do it but I need logs of the problem.
Already wrote this in another post but still no response from the ppl of this forum.

I've read the post, so obtkamer would know that ;)

About the silverfish logs, well I can't help you because I don't use it. IMHO, default AI with a good filter rules works better :)
My Control rules: here.
Golddieb
#21 Posted : Tuesday, February 10, 2015 3:52:30 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 147

Thanks: 39 times
Was thanked: 49 time(s) in 38 post(s)
Yoin;23703 wrote:
I've read the post, so obtkamer would know that ;)

About the silverfish logs, well I can't help you because I don't use it. IMHO, default AI with a good filter rules works better :)


Opened an issue at the repository but I think the problem is somewhere in the HR-silverfish-interface. We will see.

I agree 100% that default AI is more powerfull than silverfish but silverfish is a lot faster.

Why is that? I'll try to explain. ;)

At the very start there was DragonCC using an editable rule set for card plays (eg. use card Fireball if - and only if - minions health <= 6 and attack >= 4) which was very situational and hard to handle.

Then Silverfish invented a value based system using an implicit and hard-coded rule set for evaluation.
This has been a great improvement and doesn't require a rule for every situation anymore and rules are only checked if they are required.
The downside is a change in behavior requires a rewrite of the evalutation function.

Right now we have the HR default AI, which combines both advantages of the value system and the editable "do and don't" rules. Thus, it is more powerfull than both.
The customization on the other hand makes it a lot slower than it could be because it has to check every single rule and can't combine rules or ignore them if they are false anyway.
This is because of the OR conjunction of all lines. Even if one more line doesn't seem a big deal at the first sight you have to keep the huge ammounts of boards calculated in mind.
IMHO the key to a fast default AI is to add as few lines as possible and having a separate ruleset for every class/deck.

The next generation of AI is either learning (writing its own rule set over time) or cooperative (what is current meta at rank X, what cards has player Y in his deck, what's the playstyle,...).
Perfect would be a combination of both. ;)

1 user thanked Golddieb for this useful post.
Yoin on 2/10/2015(UTC)
Yoin
#23 Posted : Tuesday, February 10, 2015 4:38:10 PM(UTC)

Rank: Advanced Member

Groups: Registered, HSModerator
Posts: 583
Location: Spain

Thanks: 118 times
Was thanked: 218 time(s) in 108 post(s)
So, my big Control deck rules will be unhandable by the bot someday. Nice to know it. Thx.
My Control rules: here.
Golddieb
#24 Posted : Tuesday, February 10, 2015 5:10:20 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 147

Thanks: 39 times
Was thanked: 49 time(s) in 38 post(s)
Yoin;23712 wrote:
So, my big Control deck rules will be unhandable by the bot someday. Nice to know it. Thx.


Hardware improves and the number of boards calculated can be reduced, so unhandable is a big word and I think you can still throw in a whole bunch of new rules. ;)

Perhaps JoyAdmin can give us better insight in default AI implementation and its limits.

I guess the CAST IF part should look something like:

if(expr){ "do something"; }
with:
expr = row1 || row2 || ... || rowX;
row = column1 && column2 && ... && columnY;

This means expr is true if any row is true and a row is true if all columns are true.


The GAIN VALUE FOR part is far more complex and could look something like:

for(any row in rules){ if(row){value += "gain for row"; }}
with:
row = column1 && column2 && ... && columnY;
1 user thanked Golddieb for this useful post.
JoyAdmin on 2/11/2015(UTC)
2 Pages<12
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.047 seconds.