Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax!

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax!"— Μεταγράφημα παρουσίασης:

1 ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax!
Πολλές φορές παίζουμε ένα παιχνίδι χρησιμοποιώντας απλούς κανόνες. Π.χ. στην τρίλιζα: «αν σε μία ευθεία έχω δύο πιόνια και η τρίτη θέση είναι άδεια, παίζω στην άδεια θέση.» Υπάρχουν άλλοι κανόνες για την τρίλιζα? Μια βάση κανόνων (rulebase) που να δίνει το τέλειο παιχνίδι? Υπάρχουν βάσεις κανόνων που να δίνουν τέλειο / πολύ καλό παιχνίδι στον PacMan, στο σκάκι, στη ντάμα?

2 Μια Βάση Κανόνων Για την Τρίλιζα
Κανόνας 1: Κάνω τριάδα. Κανόνας 2: Μπλοκάρω τριάδα. Κανόνας 3: Κάνω διχάλα. Κανόνας 4: Παίζω κέντρο. Κανόνας 5: Παίζω αντίθετη γωνία. Κανόνας 6: Παίζω γωνία. Κανόνας 7: Παίζω τυχαία. Αυτοί οι 7 κανόνες αρκούν για να παίξουμε την τέλεια τρίλιζα! Και μπορούν να προγραμματιστούν στον υπολογιστή.

3 Τρίλιζα με Βάση Κανόνων (computer demo)

4 Μερικές Σημαντικές Λεπτομέρειες για την Βάση Κανόνων της Τρίλιζας
Τι γίνεται αν παίζω με ελλιπή Βάση Κανόνων? Πως εφαρμόζω τους κανόνες (πότε εφαρμόζω τον Κανόνα n)? Έχει σημασία η σειρά των κανόνων. Υπάρχουν ισχυρότεροι κανόνες? Βάρος των κανόνων Πιθανοτικοί κανόνες

5 PacMan με Βάση Κανόνων (Gallagher+Ryan, 2003)

6 Απλοποιημένο PacMan (ένα φάντασμα, όχι power pills)
Δύο βασικές καταστάσεις: explore και retreat

7 O PacMan σε κατάσταση explore:
Αλλά τι είναι turntype?

8 Turntypes: Corridor, L-turn, T-turn, Intersection

9 Oι πιθανοτικοί κανόνες για κατάσταση explore

10 O PacMan σε κατάσταση retreat:

11

12 Oι πιθανοτικοί κανόνες για κατάσταση retreat

13 Oι παράμετροι του συστήματος (της βάσης κανόνων):

14 Η απόδοση (fitness) της βάσης κανόνων:

15 Ph1: Ίσες πιθανότητες για κάθε δράση.
Ph2: Μικρή πιθανότητα αλλαγής κατεύθυνσης στην κατάσταση explore, μηδενική πιθανότητα προσέγγισης του φαντάσματος στην κατάσταση retreat. Ph3: Μηδενική πιθανότητα αλλαγής κατεύθυνσης στην κατάσταση explore, μηδενική πιθανότητα προσέγγισης του φαντάσματος στην κατάσταση retreat.

16 Εκμάθηση με την μέθοδο PBIL
Στην γενεά υπ’ αριθμό t (t = 1,2, … ) παράγονται M αντίγραφα του διανύσματος παραμέτρων, σύμφωνα με Gaussιανή κατανομή με μέση τιμή Xt. Η Xt εξελίσσεται σύμφωνα με τη σχέση Όπου Xt : η μέση τιμή μιας Gaussιανής κατανομής (η οποία παράγει το διάνυσμα παραμέτρων σε χρόνο t) Xbest1 : το 1ο καλύτερο (ως προς την f) διάνυσμα παραμέτρων Xbest2 : το 2ο καλύτερο (ως προς την f) διάνυσμα παραμέτρων Xworst : το χειρότερο (ως προς την f) διάνυσμα παραμέτρων

17

18 Age of Empires

19 Wargus: A Real-Time Strategy Game

20 Dynamic Scripting in Wargus
Different rulebases for different game states State transition on constructing a building that allows new units or new research This concludes my talk on dynamic scripting in NWN. Part of my master thesis, was to implement dynamic scripting in a RTS genre, for which I choose Wargus. Because of the difference between CRPG and RTS, I had to make a few changes to the original DS implementation. First of all, while dynamic scripting for CRPGs employs different rulebases for different opponent types in the game (such as wizzard or warrior), my RTS implementation of dynamic scripting employs different rulebases for the different states of the game. Typically, players in RTS games start a game with only very few game options, and as they gradually move up the technology ladder, new game options will open up to them. In order to let the dynamic AI only select appropriate rules, we have to inform it what is possible at any given state of the game. Therefore, I chose to structure the states based on the building a player possesses. The Buildings a player possess in RTS games usually determine what game options are available to the player. For instance if you want to train an archer in Wargus, you have to own a barrack and lumbermill. If you want to build a catapult, you also need a blacksmith etc. A state transition happen on constructing a building that allows the training of new units or research.

21 Domain Knowledge in Wargus Abstraction of the state space
States in Wargus are manually predefined and represent game phases that inform the AI on the possible tactics during a game The possible tactics during a game mainly depend on available units and technology The availability of units and technology depends on the buildings the player possesses Therefore, the utility of tactics depends on the available buildings Hector:Slide # 7 is too wordy. Consider reducing the text. Specially the first bullet. True, but I don’t know whether I can leave something out, all is important. I added animation to hide most text in the beginning.

22 Domain Knowledge in Wargus Abstraction of the decision space
A library of tactics for each state Tactics are action sequences consisting of 1 or more game actions (e.g., building, combat, research etc.) State 1 Knowledge base State n Knowledge base State 20 Knowledge base Construct City Center Train 4 workers Defend with 1 Soldier Construct Keep Train 30 workers Defend with 1 Knight Construct Castle Train 30 workers Construct Blacksmith Research better Weapons Attack with 2 Soldiers Attack with 10 Knights Research magic spell Defend with 2 Mages Attack with 10 Knights Research magic spell Defend with 2 Mages Construct Guard tower

23 Domain Knowledge in Wargus
State abstraction complex Decision abstraction Hector: What I am suggesting is to have a theme for Slide # 9 that is clearly related to the problem stated in Slide # 10 Hector, I don’t think I know what you are referring to here. The relation between slide 9 and 10 is: we tested DS with these two sources of domain knowledge in Wargus and found that it learned efficiently against medium-skilled opponents (slide 9). Experiments also showed that (problem statement - slide 10) certain opponents that we considered as though (hard-skilled), were not beaten by DS. That’s why for future research we explored whether improving the domain knowledge could potentially increase the efficiency of DS.

24 Rules in Rulebases 12 Build rules 9 Research rules 4 Economy rules
AiNeed(AiBarracks) AiResearch(AiUpgradeArmor1) AiNeed(AiWorker) AiForce(1, {AiSoldier, 9}) AiWaitForce(1) AiAttackWithForce(1) 12 Build rules 9 Research rules 4 Economy rules 25 Combat rules

25 Tactics Two `balanced’ tactics Two `rush’ tactics
Small Balanced Land Attack (SBLA) Large Balanced Land Attack (LBLA) Two `rush’ tactics Soldier Rush (SR) Knight Rush (KR)

26 RL application: Dynamic Scripting
Dynamic Scripting (DS) is an online learning technique inspired by RL Original implementation of DS (Spronck 2004) in the Computer RolePlaying Game NeverWinter Nights © In Computer RolePlaying Games (CRPGs) the human player is situated in a virtual world represented by a single character or a party of characters. Each character is of a specific type (e.g., a fighter or a wizard) and has certain characteristics (e.g., weak but smart). In most CRPGs, the human player goes on a quest, which involves conversing with the world’s inhabitants, solving puzzles, discovering secrets, and defeating opponents in combat.

27 Dynamic Scripting team controlled team controlled b y computer by human player generate script scripted control human Script A A Rulebase A control Combat weight updates - Online learning technique >> therefore pitted against human player - Two teams >> one human, one computer - Computer player is controlled by script, a dynamic script that is generated on the fly - Dynamic script is generated by extracting rules from rulebase - Rules in this game include rules such as (1) attacking an enemy, (2) drinking a potion, (3) casting a spell, (4) moving, and (5) passing. - These rules are grouped in different rulebases. - Each different game character type has a set of rules it is allowed to choose from (wizard – spells, warrior – attack sword) - The chance for a rule to be selected depends on the weight value associated with the rule. The larger the weight value, the higher the chance this rule is selected. When script is assembled, combat between human player and computer player. Based on the results of the fight, the weights for the rules selected in the script are updated. Rules that had positive contribution to the outcome (eg. dynamic AI won) are being rewarded, which means their weight value will be increased, hence increasing the chance that this rule will be selected in future games. Rules that had negative contribution to the outcome (eg. dynamic AI lost) are being punished, which means their weight value will be decreased, and thereby decreasing the chance that this rule will be selected in future games. - Through this process of rewarding and punishing behavior, DS will gradually adapt to the human player tactics. human Script B B control Rulebase B

28 Dynamic Scripting and Requirements
Computationally Cheap - Script generation and weight updates once per encounter Effective - Rules are manually designed Robust - Reward/penalty system Fast Learning – Experiments showed that DS is able to adapt fast to an unchanging tactic Fast: Should not disturb flow of gameplay. It’s obviously fast. Effective: Should not generate too many bad inferior opponents. It’s effective because rules are not stupid, even if they are not optimal. Robust: Should be able to deal with randomness. It’s robust, because a penalty does not remove a rule, it just gets selected less often. Efficient: Should lead to results quickly. Yes experiments showed that it is.

29 Dynamic Scripting Test
Dynamic player (using dynamic scripting) plays 100 consecutive games against static player Randomisation Turning Point (RTP): First game that dynamic player outperforms static player with 90% probability according to a randomisation test (Cohen, 1995) We pitted the dynamic AI against the 4 unchanging tactics and played a max of 100 consecutive games. We aborted a test as soon as we statistically can claim that the dynamic player is outperforming the opponent player. The first game in which the dynamic player outperforms the static player is called the RTP. If a RTP has been reached, we may say that the dynamic player successfully learned to beat its opponent. A low value for the RTP indicates good efficiency of dynamic scripting.

30 Dynamic Scripting RTP Results
Tactic Tests Low High Avg. Med. >100 Won SBLA 31 18 99 50 39 59.3 LBLA 21 19 79 49 47 60.2 SR 10 1.2 KR 2.3 Dynamic Scripting WORKS! It adapts efficiently against SBLA and LBLA Dynamic Scripting is unable to adapt to the optimized tactics SR and KR From left to right, the table displays (1) the tactic used by the static player, (2) the number of tests, (3) the lowest RTP found, (4) the highest RTP found, (5) the average RTP, (6) the median RTP, (7) the number of tests that did not find an RTP within 100 games (therefore where the dynamic AI did NOT learn to adapt to static player), and (8) the average number of games won out of 100. Conclusion 2: Terrible results. Part 2 of my thesis was to try and improve the performance against the two rush tactics. We choose to do that by improving the domain knowledge used by dynamic scripting.

31 Wargus Demo

32 Conclusions Dynamic scripting can be successfully implemented in (commercial) CRPG & RTS games

33

34 Age of Empires 2

35 Age of Empires 2 Το θυμάστε;
Αν η απάντησή σας είναι «1», τότε τα παρακάτω θα σας αρέσουν! Για λίγη ώρα ας μείνουμε στο κομμάτι της τεχνητής νοημοσύνης

36 Computer players Ωραίο το Multiplayer! (www.igzones.com)
Για την ακρίβεια παίζουν βασισμένοι σε κανόνες (αν …. τότε ….)!

37 Age of Empires 2 – What’s more?
Οι κατασκευαστές φρόντισαν να αφήσουν τη δυνατότητα να φτιάχνουμε δικά μας Artificial Intelligence scripts Ελέγχουν τη στρατηγική και ως ένα όριο τις επιλογές του computer player Και το καλύτερο: Μπορούμε να τα βάζουμε να παίζουν μεταξύ τους! => Τουρνουά

38 Φτιάχνουμε AI scripts Δημιουργούμε ένα κενό αρχείο .ai
Και ένα αρχείο .per με το ίδιο όνομα που περιέχει τον κώδικα Τα τοποθετούμε στο φάκελο AI του παιχνιδιού

39 Και τα επιλέγουμε…

40 Γενική λειτουργία Η στρατηγική ενός computer player είναι ένα σύνολο από κανόνες Κάθε κανόνας αποτελείται από ένα ή περισσότερα FACTS και ένα ή περισσότερα ACTIONS Όταν ικανοποιούνται όλα τα Facts, τότε ο κανόνας ενεργοποιείται και εκτελούνται όλα τα Actions.

41 Παράδειγμα κανόνα (defrule (food-amount > 75) (unit-type-count villager < 20) => (train villager) )

42 Facts Συνθήκες που μπορεί να ικανοποιούνται ή όχι Μεταξύ των Facts:
Options του παιχνιδιού (πχ map-size, civ-selected) Συνθήκες του παιχνιδιού (πχ player-resigned, game-time) Συνθήκες που αφορούν τον παίκτη (πχ food-amount, population, town-under-attack) Συνθήκες που αφορούν άλλους παίκτες (πχ players-current-age, players-unit-count)

43 Facts Παραδείγματα: cheats-enabled civ-selected mongol
research-completed ri-town-watch can-train champion military-population >= 30 idle-farm-count < 3

44 Actions Εντολές δράσης του computer player Μεταξύ των Actions:
- Άμεσες εντολές τύπου «φτιάξε», «χτίσε» κλπ (πχ train, research, build, chat) - Στρατηγικός σχεδιασμός (πχ enable-timer, set-goal, set-strategic-number) - Χειρισμός του ίδιου του script (πχ generate-random-number, disable-self)

45 Actions Παραδείγματα: train man-at-arms
chat-to-allies “I am a computer and I talk haha” build stable resign research imperial-age enable-timer 1 300

46 Επίδειξη απλού AI script
(defrule (civilian-population < 4) => (train villager) ) (civilian-population >= 4) (research ri-loom) (defrule (true) => (build house) (disable-self) ) (resource-found food) (build mill)

47 Περιορισμοί Οι παράμετροι πρέπει να είναι σταθεροί αριθμοί, δεν υπάρχουν μεταβλητές military-population >= 30 military-population >= civilian-population x=food-amount – wood-amount

48 Περιορισμοί Μη πλήρης έλεγχος του computer player Τοποθέτηση κτιρίου
Επιλογή πηγής φαγητού Αλγόριθμος εξερεύνησης (scouting) κ.α.

49 Εσωτερικός κώδικας Πολύπλοκες διαδικασίες ελέγχονται από κώδικα που δεν μπορούμε να αλλάξουμε Πώς θα μπορούσαμε να ορίσουμε τη διαδρομή που θα ακολουθήσει ο scout; Θα μπορούσαμε όμως να δώσουμε κατευθυντήριες γραμμές Η επικοινωνία με τον εσωτερικό κώδικα γίνεται μέσω των Strategic numbers

50 Strategic numbers set-strategic-number ...
sn-minimum-attack-group-size sn-mill-max-distance sn-wood-dropsite-distance sn-number-forward-builders πχ: set-strategic-number sn-minimum-attack-group-size 20

51 Villager tasking Τα υλικά που επιλέγουμε να μαζεύουμε ελέγχονται από strategic numbers sn-food-gatherer-percentage sn-wood-gatherer-percentage sn-gold-gatherer-percentage sn-stone-gatherer-percentage (defrule (current-age == dark-age) (wood-amount > 400) (food-amount < 100) => (set-strategic-number sn-food-gatherer-percentage 90) (set-strategic-number sn-wood-gatherer-percentage 10) )

52 Goals Δεν υπάρχουν μεταβλητές => καμιά επικοινωνία μεταξύ κανόνων
Η κατάσταση διορθώνεται κάπως με κάποιες «μεταβλητές κατάστασης» Action: set-goal <goal-id> <value> Fact: goal <goal-id> <value> goal-id από 1 έως 40 Ο operator σύγκρισης του Fact είναι “==“

53 Goals - παράδειγμα (defrule (game-time > 2400)
(current-age != imperial-age) => (set-goal 1 1) ) (civilian-population < 100) (not (goal 1 1)) (train villager)

54 Constants (defconst AGE-ADVANCEMENT 1) (defrule (defconst YES 1)
(defconst NO 2) (defrule (game-time > 2400) (current-age != imperial-age) => (set-goal AGE-ADVANCEMENT YES) ) (civilian-population < 100) (not (goal AGE-ADVANCEMENT YES)) (train villager)

55 Μεταβλητή συμπεριφορά (1)
Για διαφορετικούς τύπους παιχνιδιού θέλουμε να έχουμε διαφορετικούς κανόνες game-type-specific κανόνες (πχ deathmatch) map-specific κανόνες civilization-specific κανόνες Εντολή load-if-defined <συνθήκη> Γρηγορότερη επεξεργασία κατά τη διάρκεια του παιχνιδιού Έλεγχος λιγότερων συνθηκών στο εσωτερικό των κανόνων

56 Μεταβλητή συμπεριφορά (2)
Random αριθμοί Τυχαία επιλογή συμπεριφοράς Action: generate-random-number <max> Fact: random-number <operator> <value> Όχι και τόσο απαραίτητο στην πράξη…

57 Cheating 1ος τρόπος cheating: Οσοδήποτε-οποτεδήποτε
Action: cc-add-resource food 300 Οσοδήποτε-οποτεδήποτε difficulty = Hardest => CHEATER!!

58 Cheating 2ος τρόπος cheating:
Fact: cc-players-unit-count Fact: cc-players-building-count Πληροφορίες για τους αντιπάλους, μη προσβάσιμες φυσιολογικά Όχι cheating: Fact: players-unit-count Fact: players-building-count

59 Που να βρείτε CPSB.doc στο φάκελο DOCS του CD www.aiscripters.com
Το επίσημο manual του AI scripting Πολλά AI scripts,άρθρα και τουρνουά μεταξύ computer players ακόμα και τώρα Άρθρα, forum, υλικό για το AOE 2 γενικά Το σημερινό “zone” για online games

60

61 Age of Empires 2 Και τώρα… μια μαθηματική ανάλυση

62 Age of Empires 2 Προβλήματα που δέχονται ανάλυση
Μοντελοποίηση/Ποσοτικοποίηση Βέλτιστος σχεδιασμός στρατηγικής Εφαρμογές και χρήσιμα αποτελέσματα!

63 Ερωτήματα που απαιτούν ανάλυση (και δέχονται καλώς ορισμένες απαντήσεις)
Να κάνουμε τα upgrades που σχετίζονται με οικονομία, όταν θέλουμε να επιτεθούμε γρήγορα; Να χτίσουμε λιμάνι όταν ο χάρτης έχει λίγη θάλασσα; Ποια είναι η πιο συμφέρουσα πηγή φαγητού; Πόσα town centers θα οδηγήσουν στη γρηγορότερη ανάπτυξη;

64 Το πρόβλημα των Town centers
1 Town center κοστίζει 275 wood stone Κάθε επιπλέον εργάτης κοστίζει 50 food Όμως κάθε επιπλέον εργάτης μαζεύει υλικά Συμφέρει να χτίσουμε δεύτερο town center στην Castle age; Τρίτο; Τέταρτο;… Σε πόση ώρα θα κάνει απόσβεση της αξία του; Συμφέρει αν θέλουμε να επιτεθούμε νωρίς;

65 Το πρόβλημα των οικονομικών upgrades
Έστω ότι θέλουμε να έχουμε σε κάποια στιγμή του παιχνιδιού μια ποσότητα χρυσού Η τεχνολογία gold mining επιταχύνει το ρυθμό εξόρυξης χρυσού κατά 15% Κοστίζει όμως 100 φαγητό + 75 ξύλο Θα μπορούσαμε να τοποθετήσουμε περισσότερους εργάτες στο χρυσό, αν δε χρειαζόταν να κάνουμε το gold mining Τελικά πότε συμφέρει και πότε όχι;

66 Υλικά και μονάδα μέτρησης
Τις περισσότερες φορές χρειάζεται να συγκρίνουμε αξίες διαφορετικών υλικών 1 food = 1 wood = 1 gold = 1 stone??? Κάποια υλικά συλλέγονται γρηγορότερα Χρειαζόμαστε μια κοινή μονάδα μέτρησης…

67 Villager-second 1 villager-second = villager*second = κέρδος που προσφέρει ένας villager που δουλεύει για ένα δευτερόλεπτο Για συντομία villi-second ή villi-sec ή vs Έστω ότι ένας villager μπορεί να μαζέψει: 10 food σε 25 δευτερόλεπτα ή 10 wood σε 20 δευτερόλεπτα τότε 1 food = 2,5 villi-seconds και 1 wood = 2 villi-seconds

68 Villager-second Η ισχύς ενός παίκτη σε villi-seconds καθορίζεται από το πλήθος των villagers Αν έχουμε 20 villagers, σε 1 λεπτό προσφέρουν κέρδος 20*60 = 1200 villi-sec Μπορεί αυτό να σημαίνει 600 wood ή 480 food ή κάποιος συνδυασμός

69 Κόστος σε villager-seconds
Pikeman 35 food = 87,5 villi-sec 25 wood = 50 villi-sec Συνολικό κόστος Pikeman: 137,5 villi-sec Barracks 175 wood = 350 villi-sec 50 δευτερόλεπτα για να χτιστεί από έναν εργάτη = 50 villi-sec Συνολικό κόστος Barracks: 400 villi-sec

70 Υπολογισμός κόστους υλικών
Οι ρυθμοί συλλογής υλικών είναι καθορισμένοι από το παιχνίδι (food/sec, wood/sec, gold/sec, stone/sec) Αλλάζουν αν έχουμε επιπλέον τεχνολογίες και για διαφορετικές πηγές (πχ berries, boars κλπ) Τους βρίσκουμε με πειράματα Κόστος σε villi-sec = 1/(ρυθμός συλλογής) 70

71 Gathering rates (καμιά τεχνολογία)
Resource Gathering rate Cost (villi-sec) Gold 0.379 2.638 Stone 0.359 2.785 Lumberjacking 0.388 2.577 Berries 0.310 3.226 Hunting 0.408 2.451 Shepherding 0.330 3.030 Shore Fishing 0.426 2.347 Farming 0.319 3.135

72 Τι πρέπει να λάβουμε υπόψη
Κόστος κατασκευής dropsite (mill/camp) Μετακίνηση από και προς την πηγή Και για μεγαλύτερη ακρίβεια: Φαινόμενα συνωστισμού

73 Πραγματικοί Gathering Rates - Wood
Πολλά δέντρα Πολλοί villagers Μεγάλο χρονικό διάστημα 73

74 Πραγματικοί Gathering Rates - Wood
Σε χρόνο Τ δευτερόλεπτα Με Ν εργάτες Συλλέξαμε W μονάδες wood Κέρδος: W-100 μονάδες wood Χρειαστήκαμε N*T+35 villi-seconds Κόστος της μονάδας wood σε villi-seconds: Cw=(N*T+35)/(W-100) 74

75 Πραγματικοί Gathering Rates - Gold
Σε χρόνο Τ δευτερόλεπτα Με Ν εργάτες Συλλέξαμε G μονάδες gold Κέρδος: G μονάδες gold Χρειαστήκαμε: N*T + Cw* Κόστος της μονάδας gold σε villi-seconds: Cg= (N*T + Cw* )/G 75

76 Πραγματικοί Gathering Rates - Farms
Κέρδος: F μονάδες food Κόστος wood: 60 για farm + 100/8 για mill Κόστος χτισίματος σε vs: 15 για farm + 35/8 για mill Κόστος συλλογής σε vs: T Κόστος της μονάδας food σε villi-seconds: Cf=(72,5*Cw + 19,4 + T)/F 76

77 Πηγές φαγητού Πηγή Κόστος 1 μονάδας food σε vs Berries 4.13 Sheep 3.53
Deer (group of 3) 4.27 Deer (group of 4) 4.02 Boar 2.88 Shore Fish Farm (no upgrades) 4.33 Farm (all upgrades) 2.69

78 Άλλα υλικά Υλικό (upgrades) Κόστος 1 μονάδας σε vs Gold (no upgrades)
3.08 Gold (gold mining) 2.85 Gold (gold shaft) 2.54 Stone (no upgrades) 3.27 Stone (stone mining) 2.99 Stone (stone shaft) 2.57 Wood (no upgrades) 3.34 Wood (double axe) 3.06 Wood (bow saw) 2.65 Wood (two man saw) 2.35

79 Απόσβεση οικονομικών upgrades
Gold mining: 100 food + 75 wood = 100*4, * 3,06 = 662,5 vs Gold cost χωρίς gold mining: 3.08 vs Gold cost με gold mining: 2.85 vs Κέρδος: 0.23 vs/gold Έχω κέρδος μετά από 662,5/0,23 = 2880 gold

80 Απόσβεση οικονομικών upgrades
Double axe: 2117 wood Bow saw: 2330 wood Two man saw: 6097 wood Gold mining: 2880 gold Gold shaft mining: 4076 gold Stone mining: 2366 stone Stone shaft mining: 3008 stone

81 Πόσους… βοσκούς θέλουμε;
Ρυθμός εξόρυξης φαγητού από πρόβατο: 0.33 Άρα 1 food = 3 vs Κάθε 25 δευτερόλεπτα θέλουμε 50 food 50*3/25 = 6 villagers είναι αρκετοί Στην πράξη είναι 3.53 vs/food Άρα 50*3,53/25 = 7,06 villagers Χοντρικά 7 shepherds για συνεχή παραγωγή villagers

82 Στρατηγικές και θεωρητικά όρια
1 villager κάθε 25 δευτερόλεπτα Σε 25*τ δευτερόλεπτα θα έχουμε τ+3 villagers 3*25+4*25+…+(τ+2)*25 = 25*(τ+5)*τ/2 vs Feudal age με ν villagers + loom με κ villagers: Ρ=25τ(τ+5)/2 – 50(τ-ν+2)(τ-ν-1) - 25(τ-κ+2)

83 Man at arms rush 10 man-at-arms σε 14 λεπτά = 840s
60 food + 20 gold/man at arms Upgrade: 100 food + 40 gold 21 δευτερόλεπτα/man at arms Χρόνος για upgrade: 40 δευτερόλεπτα

84 Man at arms rush Για men at arms: 700 food + 240 gold
1 mill + 1 lumber camp + 1 mining camp + 1 barracks + 8 houses = 795 wood Feudal age + loom: 500 food + 50 gold 28 villagers = 1400 food (τ=32) Συνολικά πρέπει να συλλεχθεί 2400 food 5 farms = 300 wood

85 Man at arms rush Συνολικά: Άρα αθροιστικά: 11200 vs
2400 food * 3.5vs/food = 8400 vs 900 wood * 2.8vs/wood = 2520 vs 100 gold * 2.8vs/gold = 280 vs Άρα αθροιστικά: vs Feudal age με v=30 villagers Loom με κ=10 villagers Ρ=14000 vs

86 Τελικά πόσα Town centers;
Κόστος 275 wood stone = 1226 vs Χτίσιμο 150 vs Γλιτώνουμε ένα house = 123 vs Συνολικά 1253 vs Οι Ν πρώτοι εργάτες προσφέρουν Ν*(Ν-1)*25/2 vs Αλλά κοστίζουν 218*Ν vs Και τα αντίστοιχα houses 123*Ν/5 vs

87 Χρόνος απόσβεσης Τελικά: 25*N*(N - 1)/2 >= 1253 + 218*N + 123*N/5
Άρα Ν>=23 Χρόνος απόσβεσης: *23 = 725s = 12:05 Αν χτίσουμε με 4 villagers: *24 = 675s = 11:15

88 Τελικά πόσα Town centers;
Κάποτε σταματάμε την παραγωγή villagers Με περισσότερα Town Centers σταματάει νωρίτερα Το κέρδος;; Έχουμε villagers νωρίτερα! Αλλά το κέρδος είναι πεπερασμένο για t->oo!!

89 Τελικά πόσα Town centers;
Για 60 επιπλέον villagers: Με 2 town centers παράγονται σε 30*25 = 750s Με 3 town centers παράγονται σε 20*25 = 500s Ο πρώτος εργάτης από το 3ο town center δουλεύει +500 δευτερόλεπτα, ο δεύτερος +475 δευτερόλεπτα, ο τρίτος +500 κλπ Άρα κέρδος ( )*10 = 9750 vs Κόστος Town Center: 1400 vs Να το κάνουμε!!

90 Τελικά πόσα Town centers;
Για v επιπλέον villagers και κ ήδη χτισμένα Town Centers: 25ν*(2ν-κ2+1)/2(κ+1)2 Αλλαγή μεταβλητής ν->ν-3κ 25(ν-3κ)*(2ν-6κ-κ2+1)/2(κ+1)2 Ψάχνουμε για διάφορα κ το ελάχιστο ν ώστε: 25(ν-3κ)*(2ν-6κ-κ2+1)/2(κ+1)2 > 1400

91 Τελικά πόσα Town centers;
Με… Matlab: 2ο Town Center: για +18 villagers 3ο Town Center: για +30 villagers 4ο Town Center: για +42 villagers 5ο Town Center: για +54 villagers 6ο Town Center: για +66 villagers 7ο Town Center: για +80 villagers Γενικά: Χτίσε κ-οστό Town Center αν πρόκειται να φτιάξεις άλλους 12κ-6 villagers!


Κατέβασμα ppt "ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax!"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google