Probleem met 3 onbekenden

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Plaats reactie
Wolfling5
Nieuw lid
Nieuw lid
Berichten: 13
Lid geworden op: 07 okt 2017, 16:56

Probleem met 3 onbekenden

Bericht door Wolfling5 » 07 okt 2017, 17:20

Hey iedereen!

Het volgende probleempje is in verband met een spelletje, een probleem in de praktijk is hier misschien vrij vreemd maar vond het hier het beste passen.

Het probleem is vooral het opstellen van een wiskundige formule: ik heb een aantal gegevens, maar het lukt me niet om dat te gieten in een goede formule die mijn vraag kan beantwoorden. Denk dat een stelsel van 3 vergelijkingen misschien een optie is, geen idee..
Heb al wat zitten uitproberen, maar alles liep op niets uit. Dus ik dacht: 'Ik laat het maar beter over aan de mensen die er wat meer verstand van hebben XD'

Ik zal heel even wat meer achtergrondinfo geven over het spel en waar de wiskunde aan te pas komt. Ik speel het spel Grepolis, dat is een MMOG. iedereen start met 1 stad, verovert steden van elkaar en probeert zo groot mogelijk te worden. Natuurlijk zit er ook een beetje tactiek in het spel: er zijn 3 soorten aanvalskrachten in het spel en natuurlijk ook de daarbij passende verdedigingskrachten. Als je wat meer steden hebt, begin je je steden in te delen: defensieve steden, offensieve steden,...
Elke stad heeft zijn limiet aan troepen, dus je moet nauwkeurig uitkiezen wat je maakt en hoeveel van wat.

Ik ben vrij ervaren in het spelletje, maar heb graag overal perfectie. Ik weet ongeveer de indeling van mijn legers maar ik zou nu heel graag het perfecte aantal willen weten.

Vandaar heb ik een aantal berekeningen gemaakt:

De drie aanvalskrachten in het spel zijn slag, afstand en steek. Hadden alle aanvalstroepen dezelfde aanvalskracht, dan was er helemaal geen probleem (10 slag, 10 afstand, 10 steek). Maar alles verschilt dus.

De 3 aanvallende troepen:

Ruiters: 20 slag
Hoplieten: 16 steek
Slingers: 23 afstand

Dan heb je natuurlijk ook de verdedigende troepen (met een bepaalde verdedigingswaarde tegen de 3 aanvalskrachten):

Zwaardvechters:
* 14 verdediging slagwapens
* 8 verdediging steekwapens
* 30 verdediging afstandswapens
Boogschutters:
* 7 verdediging slagwapens
* 25 verdediging steekwapens
* 13 verdediging afstandswapens
Hoplieten:
* 18 verdediging slagwapens
* 12 verdediging steekwapens
* 7 verdediging afstandswapens

Na een korte berekening kom je uit dat je in procenten het volgende wilt uitkomen:

33.89% verdediging slagwapens
27% verdediging steekwapens
38.98% verdediging afstandswapens

Nu is de vraag wat de beste troepensamenstelling is om zo dicht mogelijk bij die procenten te geraken. Zonder wiskundige berekeningen ben ik heel dicht geraakt met een simulator. Maar ik zou het toch heel graag wiskundig zien. Ik benijd mezelf een beetje dat ik nooit goed mijn best gedaan heb in het middelbaar en dat ik dit niet kan oplossen (na 6 uur wiskunde in de week gehad te hebben in het middelbaar)

Ik hoop dat iemand me dus kan verder helpen..

Het is natuurlijk maar voor een spel, maar ik dacht dat ik misschien hiermee terecht kon op een wiskundeforum :)

Voor de mensen die dit in 1,2,3 oplossen, kunnen jullie dan ook even de finishing touch doen? Eens je de verhouding gevonden hebt, zal het niet veel werk meer zijn:

Mijn dorp telt 2495 inwoners, dus er mogen maar maximaal 2495 zwaardvechters,boogschutters en hoplieten aanwezig zijn.

Als ik merk dat dit allemaal heel vlot verloopt, zal ik nog een wat moeilijker probleem naar voren brengen. Er zijn immers nog andere gelijkende troepen die er in verwerkt kunnen worden, maar dan moet er rekening gehouden worden met de totale verdedigingswaarde van de troepen en dat is dan nog een extra factor waarmee rekening gehouden moet worden..

Alvast bedankt voor de hulp!

PS: mijn 3 onbekenden zijn natuurlijk het aantal zwaardvechters, het aantal boogschutters en het aantal hoplieten (in procenten, getallen, maakt mij niet uit)

Wolfling5
Nieuw lid
Nieuw lid
Berichten: 13
Lid geworden op: 07 okt 2017, 16:56

Re: Probleem met 3 onbekenden

Bericht door Wolfling5 » 07 okt 2017, 20:03

Ik zie bij sommige topics al 300 views en 0 reacties XD

Hopelijk is hier iemand op het forum die me wel verder kan helpen :P

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Probleem met 3 onbekenden

Bericht door arie » 07 okt 2017, 22:41

Je hebt inderdaad een stelsel van 3 vergelijkingen met 3 onbekenden.
Noem
Z = aantal Zwaardvechters
B = aantal Boogschutters
H = aantal Hoplieten

Dan heb je:
14Z + 7B + 18H = 33.89 slag
8Z + 25B + 12H = 27.13 steek
30Z + 13B + 7H = 38.98 aanval

(ik heb van je 27% hier 27.13% gemaakt om op 100% uit te komen)

ofwel (in matrixnotatie):



ofwel:



Dit kan je met de hand oplossen, maar je kan het ook door de computer laten uitrekenen:
copy/paste de volgende regel naar http://www.wolframalpha.com/:

{{14,7,18},{8,25,12},{30,13,7}}^-1 * {33.89,27.13,38.98}

(dit zijn de matrix en vector van hierboven in iets andere notatie)
en je krijgt daar onder "Result":
(0.931744, 0.284213, 1.04756)

Dus in dit geval is:
Z = 0.931744,
B = 0.284213,
H = 1.04756.

Onder "Total" vind je bovendien:
0.931744 + 0.284213 + 1.04756 = 2.26352

In procenten is de verhouding Z : B : H dus





Van je 2495 personen moeten er dus
41.1635% * 2495 = 1027 Z,
12.5562% * 2495 = 313 B, en
46.2802% * 2495 = 1155 H
zijn.

Reken voor deze aantallen Z, B en H zelf nog even uit of je verdedigingspercentages (33.89%, 27.13%, 38.98%) ongeveer kloppen.

Wolfling5
Nieuw lid
Nieuw lid
Berichten: 13
Lid geworden op: 07 okt 2017, 16:56

Re: Probleem met 3 onbekenden

Bericht door Wolfling5 » 08 okt 2017, 10:06

Heel erg bedankt!

Zal dit eens grondig bekijken :)

Wolfling5
Nieuw lid
Nieuw lid
Berichten: 13
Lid geworden op: 07 okt 2017, 16:56

Re: Probleem met 3 onbekenden

Bericht door Wolfling5 » 08 okt 2017, 10:58

Als je dit bekijkt, is het eigenlijk basiswiskunde maar zelf was het me niet gelukt :P

Heel erg bedankt!

Wolfling5
Nieuw lid
Nieuw lid
Berichten: 13
Lid geworden op: 07 okt 2017, 16:56

Re: Probleem met 3 onbekenden

Bericht door Wolfling5 » 11 okt 2017, 07:54

Nu zou ik ook nog een extra verdedigende eenheid willen toevoegen, namelijk de strijdwagen.

Deze heeft de volgende waarden:
* 19 verdediging slagwapens
* 4 verdediging steekwapens
* 14 verdediging afstandswapens

Als je dit wilt uitrekenen, dan zit je met 4 onbekenden. En dat lijkt me dus niet mogelijk om het uit te rekenen.

Je kan natuurlijk één van de andere verdedigende troepen eruit halen, zoals de hopliet. Maar ik vraag me nu af of er geen betere combinatie zou bestaan met de strijdwagen erbij.

Als ik de hopliet vervang door de strijdwagen kom ik een slechter resultaat uit. Wat ik daarmee bedoel, is dat die samenstelling lager scoort in de totale verdedigende waarde (alle verdedigende krachten opgeteld van de 2495 man)

Totale verdedigende waarde met: zwaardvechters, boogschutters, hoplieten (41.1635% Z, 12.5562% B, 46.2802% H)

110224

Totale verdedigende waarde met: zwaardvechters, boogschutters, strijdwagens (17.1955% Z, 32.1305% B, 50.6739% S)

105166

Nu vraag ik me af of een bepaalde samenstelling van zwaardvechters, boogschutters hoplieten en strijdwagens hoger kan scoren dan '110224'. En die nog steeds de volgende verhoudingen volgt:
33.89 slag
27.13 steek
38.98 aanval

Wolfling5
Nieuw lid
Nieuw lid
Berichten: 13
Lid geworden op: 07 okt 2017, 16:56

Re: Probleem met 3 onbekenden

Bericht door Wolfling5 » 13 okt 2017, 13:11

Is dit mogelijk?

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Probleem met 3 onbekenden

Bericht door arie » 15 okt 2017, 15:58

Je hebt nu 2 zaken die je wilt optimaliseren:
[1] de vector met de wapenfracties:
zo goed mogelijk de gewenste vector [0.3389, 0.2713, 0.3898] benaderend.
[2] de totale verdedigingskracht:
zo groot mogelijk.

Dit is niet meer zo'n eenvoudige opdracht:
- ten eerste moet je een afweging maken tussen [1] en [2]: in hoeverre mogen de resultaten afwijken van de gewenste wapenfracties, en welke totale verdedigingskracht vind je nog acceptabel. Dit is iets dat je zelf moet beslissen: welke balans tussen beide eisen is het beste voor je spel?

- ten tweede hebben we een (afstands-)maat nodig om gevonden oplossingen met elkaar te kunnen vergelijken:
- - voor de afstand d van vectoren wordt vaak gekozen voor
de som van [(het verschil van de corresponderende coördinaten) in het kwadraat]
- - de waarde van de totale verdedigingskracht zelf is een prima maat, die wil je gewoon zo groot mogelijk

- ten derde zijn het aantal personen van de 4 groepen (Z, B, H en S) geheeltallig, dit maakt dit soort zoekproblemen doorgaans lastiger. Voor 4 groepen met bescheiden aantallen personen is dit met een computer vrij eenvoudig op te lossen (dit heb ik hieronder gedaan). Voor grotere hoeveelheden groepen en grotere aantallen personen wordt dit al snel te ingewikkeld en zullen we andere zoektechnieken moeten gebruiken om tot een redelijk goede (maar niet noodzakelijk beste) oplossing te komen.


Voorbeeld:

Als we de totale verdedigingskracht [2] maximaal groot willen maken, moeten we alle personen bij Z indelen: elke Z heeft een verdedigingskracht van 14 + 8 + 30 = 52 (B, H en S resp. slechts 45, 37 en 37), dus de absoluut maximale totale verdedigingskracht is
2495 * 52 = 129740.
In dit geval vinden we aan wapenfracties:
0.2692 slag
0.1538 steek
0.5769 aanval
bij bovenstaande afstandsmaat een afstand d van






Hieronder de resultaten voor een viertal mogelijke voorbeeldsituaties:
[1] als bovenstaand voorbeeld: maximale verdedigingskracht maar slechte benadering van de wapenfracties (grote d)
[2] de uitkomsten van onze oorspronkelijke oplossing, met een totale verdedigingskracht van 110224
[3] de oplossing met de beste benadering van de wapenfracties (= kleinst mogelijke d), de totale verdedigingskracht is in dat geval 109566
[4] de grootste totale aanvalskracht als we bijvoorbeeld eisen dat d < 0.00001 moet blijven, de totale verdedigingskracht is in dat geval 110492

Code: Selecteer alles

Bovenstaand voorbeeld:
[Z,B,H,S] = [2495, 0, 0, 0]:
slag:   0.2692 307692307692307692307692
steek:  0.1538 461538461538461538461538
aanval: 0.5769 230769230769230769230769
distance d = 0.053664253609467455621301775
totale verdediging = 129740

De oorspronkelijke oplossing:
[Z,B,H,S] = [1027, 313, 1155, 0]:
slag:   0.3389 370735955871679489040499
steek:  0.2712 748584700246770213383655
aanval: 0.3897 880679343881550297575846
distance d = 0.000000002148922209026315954 (veel beter dan bovenstaande oplossing)
totale verdediging = 110224

De aantallen die de kleinste (= beste) d opleveren:
[Z,B,H,S] = [949, 377, 1004, 165]:
slag:   0.3389 007538835040067174123359
steek:  0.2712 976653341365021995874633
aanval: 0.3898 015807823594910830002008
distance d = 0.000000000008517877899873572
totale verdediging = 109566

Eis dat d < 0.00001:
[Z,B,H,S] = [1039, 324, 1132, 0]:
slag:   0.3365 854541505267349672374471
steek:  0.2714 766679940629185823408030
aanval: 0.3919 378778554103464504217500
distance d = 0.000009958855794094075674435
totale verdediging = 110492

Plaats reactie