Bekriegen sich seit etwa 130 Jahren mit Preissenkungen, z.B. während des Superbowls
Ähnlich robust geht es im Werbemarkt zu, wo beide extrem aktiv und kreativ agieren (“Cola-Wars” in den 1970ern und 80ern)
Investitionen in Produktionskapazität sowie Teile und andere Inputs determinieren den Kampf
Design- und Modellentscheidungen werden hochstrategisch getroffen
Wirtschaftswissenschaften:
Auktionen, z.B. von Rechten zur Nutzung von Bandbreiten für Mobiltelefonie, Organspende, CO2 Lizenzen, öffentliche Beschaffung
Ökonomische Beziehungen wie Arbeitgeber-/Arbeitnehmer-Verhältnisse oder bilaterale Kaufentscheidungen sind von strategischen Motiven bestimmt (z.B. Informationsasymmetrien und Vertragsunvollständigkeit, Karrieremotive)
Politikwissenschaften:
Politischer Wettbewerb zwischen Parteien und Kandidat:innen
Internationale Konflikte, z.B. ökonomischer oder militärischer Natur
Biologie und Ökologie:
Computerspiele, Physik, Informatik, etc. pp.
Ziele
Die weitverbreitete Sprache der Spieltheorie erlernen und benutzen
Gleichgewichtskonzepte verstehen und benutzen
Strategische Interaktionen modellieren
Ressourcen
Kapitel im Varian: 29, 30
YouTube, ChatGPT, Spiele-App am Ende
Das vielleicht bekannteste Spiel ist das Gefangenendilemma
Zwei Täter verüben einen Banküberfall, können aber gefasst werden
Sie werden in zwei unterschiedliche Zellen gesperrt und können nicht kommunizieren
Es gibt zu wenige Hinweise und man ist auf die Zeugenaussagen der beiden angewiesen
Gestehen beide, erhalten sie jeweils 2 Jahre Gefängnis
Gesteht jeweils nur einer während der andere schweigt, wird der Geständige aufgrund der Kronzeugenregelung freigelassen, der Verweigerer bekommt 3 Jahre Gefängnis
Schweigen beide, bekommen beide ein Jahr auf Bewährung
Wir können das Spiel leicht mithilfe einer Auszahlungsmatrix
darstellen
Spieler:in 2 | |||
---|---|---|---|
Schweigen | Reden | ||
Spieler:in 1 | Schweigen | (-1, -1) | (-3, 0) |
Reden | ( 0, -3) | (-2, -2) |
Der erste Eintrag in jeder Zelle ist der payoff
für Spieler:in 1, der zweite für Spieler:in 2
Die Strategien sind einfach, da jeweils nur eine Entscheidung getroffen werden muss und man das Verhalten des anderen nicht kennt
Teamarbeit: Wie geht dieses Spiel aus?
Die Spieltheorie lässt sich grob in kooperative
und non-kooperative
Spieltheorie gliedern
Spieler:innen
Strategien
Pläne, an welchem Punkt bzw. unter welchen Bedingungen welche Entscheidung getroffen wird
Sie betreffen immer das gesamte Spiel, also alle Entscheidungen
Wir unterscheiden reine
Strategien, die deterministisch sind, und gemischte
Strategien, in denen wir würfeln
Payoffs
oder Auszahlungen
Dies sind die “Resultate”: Wieviel erhält jeder Spieler und unter welchen Bedingungen
Spiele können mithilfe einer Auszahlungsmatrix
meist recht gut charakterisiert werden
Wie geht das Gefangenendilemma aus?
Wir benutzen wiederum das Konzept eines Gleichgewichts
Also eine Situation, in der keine der Parteien einen Anreiz hat, von ihrer Strategie abzuweichen
Das Ergebnis ist somit in gewisser Weise stabil
, was für empirische Arbeit extrem wichtig ist
Im Fall des GD ist es leicht: Beide Spieler:innen haben eine strikt dominante
Strategie, nämlich “Reden”
Strikt dominant bedeutet, dass diese Strategie immer strikt bessere payoffs verspricht als andere Strategien
Schwach dominant
heißt, dass diese Strategie nie schlechter ist als alle anderen Strategien
Wir haben also ein Gleichgewicht in strikt dominanten Strategien
Spieler:in 2 | |||
---|---|---|---|
Schweigen | Reden | ||
Spieler:in 1 | Schweigen | (-1, -1) | (-3, 0) |
Reden | ( 0, -3) | (-2, -2) |
(Reden,Reden) ist ein Gleichgewicht, da sich beide nur schlechter stellen können
Interessant: individuell rationales Verhalten führt hier zu einem sozial unglücklichen Ergebnis!
Zumeist hängt die optimale Strategie jedoch vom Verhalten des:r anderen ab…
Die vielleicht wichtigste Gleichgewichtsidee stammt von einem Mathematiker, John Nash (*1928–†2015)
Professor am MIT, später Arbeit in Princeton
Nobel Preis 1994 für seine Beiträge zur Spieltheorie (mit John Harsanyi und Reinhard Selten)
Littunter schwerer Schizophrenie; bekannt durch den Oscar-prämierten Film “A Beautiful Mind”
Gleichgewichte in dominanten Strategien treten sehr selten auf
Wir beobachten trotzdem, dass sich in Spielen stabiles Verhalten einstellt
Ein anderes Gleichgewichtskonzept muss her!
Nash’s Idee war so einfach wie bedeutsam
Nash-Gleichgewicht
Eine Kombination von Strategien stellt ein Nash-Gleichgewicht
dar, wenn jede:r Spieler:in die optimale Strategie spielt, gegeben die Strategien der/des anderen
Mit anderen Worten, jeder spielt die beste Antwort
auf die Gleichgewichtsstrategien der anderen
Erwartungen
über die andere Spieler:in stimmen also mit deren Handlungen übereinSpieler:in 2 | |||
---|---|---|---|
Oper | Fußball | ||
Spieler:in 1 | Oper | (2, 1) | (0, 0) |
Fußball | ( 0, 0) | (1, 2) |
Zwei Spieler:innen, die sich nicht koordinieren können, haben die Wahl, wo sie hingehen
Teamarbeit: Wie geht das Spiel im Sinne von Nash aus?
Spieler:in 2 | |||
---|---|---|---|
Oper | Fußball | ||
Spieler:in 1 | Oper | (2, 1) | (0, 0) |
Fußball | ( 0, 0) | (1, 2) |
Es gibt hier zwei Nash-Gleichgewichte: (O,O) und (F,F)
Bei (O,O) wird Spieler:in 1 nicht einseitig abweichen
wollen, da Fußball ohne Spieler:in 2 weniger Spaß macht
Gleiches gilt für Spieler:in 2, auch wenn sie Fußball vorziehen würde
Beachte: Es gibt noch ein weiteres Nash-Gleichtgewicht, nämlich in gemischten Strategien – dazu später mehr!
Spieler:in 2 | |||
---|---|---|---|
Hawk | Dove | ||
Spieler:in 1 | Hawk | \(\left (\frac{V}{2}-C, \frac{V}{2}-C \right)\) | \((V, 0)\) |
Dove | \((0, V)\) | \(\left (\frac{V}{2}, \frac{V}{2} \right)\) |
Diese Situation verkörpert den Kampf um eine Ressource (oder eine Mutprobe)
Aggressives Verhalten (Hawk, Falke) ist nur gut, wenn der:die andere Spieler:in zurückweicht (Dove, Taube)
\(V/2-C\) kann positiv oder negativ sein
Teamarbeit: Finden Sie alle Nash-Gleichgewichte in reinen Strategien
Spieler:in 2 | |||
---|---|---|---|
Kopf | Zahl | ||
Spieler:in 1 | Kopf | (1, -1) | (-1, 1) |
Zahl | (-1, 1) | (1, -1) |
Wenn beide Spieler:innen die gleiche Seite wählen, gewinnt Spieler:in 1, wenn sie unterschiedliche wählen, Spieler:in 2
Teamarbeit: Finden Sie ein Nash-Gleichgewicht
In matching pennies gibt es nur ein Nash-Gleichgewicht: Beide Spieler:innen werfen tatsächlich eine faire Münze
Beide spielen also Kopf und Zahl mit jeweils 50% Wahrscheinlichkeit
Kein:e Spieler:in hat einen Anreiz, einseitig abzuweichen, da man sich nicht besser als \(0\) stellen kann
Um dies mathematisch zu zeigen, muss man verstehen, dass Spieler:innen, die gemischte Strategien spielen wollen, immer indifferent
zwischen den reinen Strategien sein müssen
Ansonsten würden sie ja eine der Optionen strikt bevorzugen
Jede:r Spieler:in muss also die anderen mit der Strategie indifferent halten
Dies ist im Gleichgewicht offensichtlich der Fall
Im Fall von matching pennies muss der Erwartungswert
von Kopf gleich dem Erwartungswert von Zahl sein
\[ \underbrace{p_2^{NE} * 1}_{\text{Übereinstimmung}} + \underbrace{(1-p_2^{NE}) * (-1)}_{\text{Unterschied}} = 2p_2^{NE}-1 \]
\[ \underbrace{p_2^{NE} * (-1)}_{\text{Übereinstimmung}} + \underbrace{(1-p_2^{NE}) * 1}_{\text{Unterschied}} = 1-2p_2^{NE} \]
\[ 2p_2^{NE}-1 = 1-2p_2^{NE} \Leftrightarrow p_2^{NE}=\frac{1}{2} \]
Dies kann analog für Spieler:in 2 gezeigt werden, sodass wir ein Nash-Gleichgewicht haben
Bisher haben wir angenommen, dass die Spieler:innen ihre Entscheidungen gleichzeitig treffen oder nicht wussten, wie sich die anderen entschieden haben
In vielen strategischen Situationen handeln die Akteure aber sequenziell
und können auf andere reagieren
Verhandlungen
Handelskonflikte, die bspw. mit Zöllen und anderen Beschränkungen geführt werden
Investitionsentscheidungen
Viele Auktionstypen
In den 90er und 00er Jahren expandierte Southwest Airlines aggressiv und begann, Stück für Stück viele neue Flughäfen und Routen zu befliegen
Goolsbee und Syverson (2008, QJE) dokumentieren die Reaktionen der Marktteilnehmer
Einzigartiges natürliches Experiment: Das Routennetzwerk ermöglicht es, Bedrohungen zu identifizieren (siehe nächste Folie)
Andere Airlines kämpfen bereits vor Markteintritt: Deutlich niedrigere Preise, mehr Kapazität und mehr Reisende
Tatsächlicher Eintritt drückt Preise dann weiter
Wie können wir über diese strategische Situation nachdenken?
Es gibt ein bestehendes monopolistisches Unternehmen im Markt
Ein zweites Unternehmen überlegt, in den Markt einzutreten
Kommt es zu einem Markteintritt, kann der ehemalige Monopolist entweder “kämpfen” oder nicht (\(\neg\))
Teamarbeit: Wie geht das Spiel aus?
Es gibt zwei Nash-Gleichgewichte
Es ist leicht zu zeigen, dass beides Gleichgewichte sind, da einseitige Abweichungen keinen Gewinn bringen
Gleichgewicht 2 ist aber merkwürdig
leere Drohung
Wir nehmen daher eine Verfeinerung unserer Gleichgewichtsidee vor
In einem teilspielperfekten
Gleichgewicht induzieren die Gleichgewichtsstrategien in jedem Teilspiel
ein Nash-Gleichgewicht
Anders ausgedrückt: Die Spieler:innen spielen immer optimale Antworten, nicht nur am Anfang
Ein Teilspiel ist das gesamte Spiel, das auf einen Entscheidungsknoten
folgt
Im ersten dieser Spiele ist der Monopolist indifferent, im zweiten wählt er \(\neg\) kämpfen, und im Gesamtspiel gibt es zwei Nash-Gleichgewichte (siehe oben)
Um teilspielperfekte Gleichgewichte zu finden, bedienen wir uns der Rückwärtsinduktion
Wir beginnen bei den letzten Teilspielen und finden das Nash-Gleichgewicht (zumeist die optimale Entscheidung)
Dann ersetzen wir die payoffs im nächstfrüheren Teilspiel und suchen wieder das Nash Gleichgewicht
Wir finden teilspielperfekte Gleichgewichte also, indem wir “rückwärts”, also vom Spielende her überlegen
Ein Entführer hat eine Geisel genommen und überlegt, ob er sie freilassen soll
Teamarbeit: Finden Sie alle Nash-Gleichgewichte in reinen Startegien und prüfen Sie, ob sie teilspielperfekt sind
Wenn die Geisel frei ist, wird sie den Täter identifizieren wollen
Mögliche Lösungen durch Selbstbindung
Kompromitierende Fotos der Geisel, die beim Entführer verbleiben (Schelling)
Verwandt: Drakonische Strafen für Lösegeldzahlungen (z.B. in Italien)
Oft kann Kooperation auch ganz ohne Verträge oder Strafen aufrecht erhalten werden
Wenn man häufiger interagiert, bekommt man die Gelegenheit, die andere Seite zu bestrafen und so optimale Strategien zu beeinflussen
Insbesondere in unendlich
wiederholten Spielen kann dies sehr wirksam sein (bzw. wenn das Ende zufällig/nicht vorhersehbar ist)
Nehmen wir das Beispiel eines unendlich wiederholten Gefangenendilemmas
Beide Akteure spielen die grim trigger strategy
: Schweigen bis der andere redet; danach immer reden
Die payoffs entsprechen denen auf Folie 9
Die Akteure gewichten die Zukunft mit dem Diskontierungsfaktor \(\delta \in (0,1)\) – je höher, desto geduldiger
Der payoff der grim trigger strategy im Nash Gleichgewicht ist
\[ \sum_{t=0}^{\infty} \delta^t \ \pi^{(s,s)} = \frac{\pi^{(s,s)}}{1-\delta} = \frac{-1}{1-0.8} -5 \]
Eine potenzielle Abweichung ist, einmal zu reden (und dann nach Bestrafung weiterzureden)
\[ \pi^{(r,s)} + \sum_{t=1}^{\infty} \delta^t \ \pi^{(r,r)} = \pi^{(r,s)} + \frac{\delta \ \pi^{(r,r)}}{1-\delta} = 0 + \frac{0.8 \times -2}{1-0.8} = -8 \]
In unserem Beispiel ist die Kooperation stabil
Teamarbeit:
Was passiert, wenn \(\delta < 0.5\)?
Was passiert, wenn das Spiel nur endlich oft gespielt wird und beide Spieler dieses Ende kennen?
Unvollständige Information
Oft kann man nur Erwartungen
darüber bilden, was andere tun bzw. wo man sich im Spielbaum befindet
Oft können Signale geschickt werden – die stimmen können, aber nicht müssen (sog. strategische Kommunikation oder cheap talk…
Oft kennt man andere Spieler:innen und ihre (oder die eigenen) Präferenzen gar nicht
Kooperative Spieltheorie
Mechanism Design
Beschäftigt sich mit Zuteilungsmechanismen, die bestimmte Ziele verfolgen
Beispiel: Organspendebörsen, Auktionen
Und viel mehr…
Wie können Sie das Gefangenendilemma lösen?
Gehen Sie auf die nächste Folie, generieren Sie mindestens 3 payoff Matrizen, und finden Sie Gleichgewichte in strikt dominanten Strategien sowie andere Nash Gleichgewichte in reinen und gemischten Strategien – wenn sie existieren
Erklären Sie, was sequenzielle Spiele so interessant macht
#| standalone: true
#| viewerHeight: 600
library(MASS)
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
width = 4,
h3("Spieltheorie Generator"),
br(),
br(),
checkboxInput("dom_off", "Dominante Strategien ausschließen"),
br(),
br(),
actionButton("generate", "Generieren"),
br(),
br(),
br(),
checkboxInput("disp", "Lösung anzeigen"),
uiOutput("strat")
),
mainPanel(
fluidRow(
column(2,
br(),
br(),
br(),
br(),
h4("Spieler A", class = "left-title")
),
column(4,
h4("Spieler B"),
br(),
tableOutput("randomTable")
)
)
)
)
)
server <- function(input, output) {
random_values <- reactiveValues()
random_table <- reactiveVal()
button_pressed <- reactiveVal(FALSE)
observeEvent(input$generate, {
button_pressed(TRUE)
for (i in 1:8) {
random_values[[paste0("var", i)]] <- runif(1, min = 0, max = 100)
}
var1 <- random_values$var1
var2 <- random_values$var2
var3 <- random_values$var3
var4 <- random_values$var4
var5 <- random_values$var5
var6 <- random_values$var6
var7 <- random_values$var7
var8 <- random_values$var8
if(input$dom_off) {
while(var1 > var3 && var5 > var7 && var2 > var6 && var4 > var8 ||
var1 < var3 && var5 < var7 && var2 < var6 && var4 < var8 ||
var1 > var3 && var5 > var7 && var2 < var6 && var4 < var8 ||
var1 < var3 && var5 < var7 && var2 > var6 && var4 > var8 ||
var1 > var3 && var5 > var7 ||
var1 < var3 && var5 < var7 ||
var2 < var6 && var4 < var8 ||
var2 > var6 && var4 > var8) {
for (i in 1:8) {
random_values[[paste0("var", i)]] <- runif(1, min = 0, max = 100)
}
var1 <- random_values$var1
var2 <- random_values$var2
var3 <- random_values$var3
var4 <- random_values$var4
var5 <- random_values$var5
var6 <- random_values$var6
var7 <- random_values$var7
var8 <- random_values$var8
}
}
var1 <- as.integer(random_values$var1)
var2 <- as.integer(random_values$var2)
var3 <- as.integer(random_values$var3)
var4 <- as.integer(random_values$var4)
var5 <- as.integer(random_values$var5)
var6 <- as.integer(random_values$var6)
var7 <- as.integer(random_values$var7)
var8 <- as.integer(random_values$var8)
data_frame <- data.frame(
"Linke Seite" = c(paste0("(",
as.integer(random_values$var1), ", ", as.integer(random_values$var2), ")"),
paste0("(", as.integer(random_values$var3), ", ", as.integer(random_values$var4), ")")),
"Rechte Seite" = c(paste0("(", as.integer(random_values$var5), ", ", as.integer(random_values$var6), ")"),
paste0("(", as.integer(random_values$var7), ", ", as.integer(random_values$var8), ")")),
row.names = c("Oben", "Unten")
)
random_table(data_frame)
})
output$strat <- renderUI({
var1 <- as.integer(random_values$var1)
var2 <- as.integer(random_values$var2)
var3 <- as.integer(random_values$var3)
var4 <- as.integer(random_values$var4)
var5 <- as.integer(random_values$var5)
var6 <- as.integer(random_values$var6)
var7 <- as.integer(random_values$var7)
var8 <- as.integer(random_values$var8)
if (!button_pressed()) {
return(NULL)
} else{
dominant_strategy_message <- NULL
nash_message <- NULL
mixed_strategy_message <- NULL
ds_A <- TRUE
ds_B <- TRUE
if(var1 > var3 && var5 > var7 && var2 > var6 && var4 > var8) {
dominant_strategy_message <- withMathJax("Spieler A hat die strikt dominante Strategie: 'Oben'", br(), "Spieler B hat die strikt dominante Strategie: 'Links'" , br() , "Gleichgewicht in strikt dominanten Strategien: (Oben, Links)")
ds_A <- FALSE
ds_B <- FALSE
} else if (var1 < var3 && var5 < var7 && var2 < var6 && var4 < var8) {
dominant_strategy_message <- withMathJax("Spieler A hat die strikt dominante Strategie: 'Unten'", br(), "Spieler B hat die strikt dominante Strategie: 'Rechts'", br() , "Gleichgewicht in strikt dominanten Strategien: (Unten, Rechts)")
ds_A <- FALSE
ds_B <- FALSE
} else if (var1 > var3 && var5 > var7 && var2 < var6 && var4 < var8) {
dominant_strategy_message <- withMathJax("Spieler A hat die strikt dominante Strategie: 'Oben'", br(), "Spieler B hat die strikt dominante Strategie: 'Rechts'", br() , "Gleichgewicht in strikt dominanten Strategien: (Oben, Rechts)")
ds_A <- FALSE
ds_B <- FALSE
} else if (var1 < var3 && var5 < var7 && var2 > var6 && var4 > var8) {
dominant_strategy_message <- withMathJax("Spieler A hat die strikt dominante Strategie: 'Unten'", br(), "Spieler B hat die strikt dominante Strategie: 'Links'", br() , "Gleichgewicht in strikt dominanten Strategien: (Unten, Links)")
ds_A <- FALSE
ds_B <- FALSE
} else {
if(var1 > var3 && var5 > var7) {
dominant_strategy_message <- withMathJax("Spieler A hat die dominante Strategie 'Oben'" , br(), "Es liegt kein Gleichgewicht in dominanten Strategien vor")
ds_A <- FALSE
if(var2 != var6){
ds_B <- FALSE
}
}
else if(var1 < var3 && var5 < var7) {
dominant_strategy_message <- withMathJax("Spieler A hat die dominante Strategie 'Unten'", br(), "Es liegt kein Gleichgewicht in dominanten Strategien vor")
ds_A <- FALSE
if(var4 != var8){
ds_B <- FALSE
}
}
else if(var2 < var6 && var4 < var8) {
dominant_strategy_message <- withMathJax("Spieler B hat die dominante Strategie 'Rechts'", br(), "Es liegt kein Gleichgewicht in dominanten Strategien vor")
ds_B <- FALSE
if(var5 != var7){
ds_A <- FALSE
}
}
else if(var2 > var6 && var4 > var8) {
dominant_strategy_message <- withMathJax("Spieler B hat die dominante Strategie 'Links'", br(), "Es liegt kein Gleichgewicht in dominanten Strategien vor")
ds_B <- FALSE
if(var1 != var3){
ds_A <- FALSE
}
}
else{
dominant_strategy_message <- withMathJax("Es liegt kein Gleichgewicht in dominanten Strategien vor")
}
}
# (1,1)
if (var1 >= var3 && var2 >= var6) {
nash_message <- paste(nash_message , br(), "Es liegt ein Nash-Gleichgewicht vor: (Oben, Links)")
}
# (1,2)
if (var5 >= var7 && var6 >= var2) {
nash_message <- paste(nash_message , br(), "Es liegt ein Nash-Gleichgewicht vor: (Oben, Rechts)")
}
# (2,1)
if (var3 >= var1 && var4 >= var8) {
nash_message <- paste(nash_message , br(), "Es liegt ein Nash-Gleichgewicht vor: (Unten, Links)")
}
# (2,2)
if (var7 >= var5 && var8 >= var4) {
nash_message <- paste(nash_message , br(), "Es liegt ein Nash-Gleichgewicht vor: (Unten, Rechts)")
}
gcd <- function(a, b) {
while (b != 0) {
temp <- b
b <- a %% b
a <- temp
}
return(abs(a))
}
zähler_A <- abs(var8 - var4)
nenner_A <- abs(var2 - var4 + var8 - var6)
zähler_B <- abs(var7 - var5)
nenner_B <- abs(var1 - var3 + var7 - var5)
gcd1 <- gcd(zähler_A, nenner_A)
gcd2 <- gcd(zähler_B, nenner_B)
zähler_A <- zähler_A / gcd1
nenner_A <- nenner_A / gcd1
zähler_B <- zähler_B / gcd2
nenner_B <- nenner_B / gcd2
pB <- (var7 - var5) / (var1 - var3 + var7 - var5)
pA <- (var8 - var4) / (var2 - var4 + var8 - var6)
pA <- pmax(0, pA)
pA <- pmin(1, pA)
pB <- pmax(0, pB)
pB <- pmin(1, pB)
if (ds_A == TRUE && ds_B == TRUE) {
mixed_strategy_message <- paste(
"Nash Gleichgewicht in gemischten Strategien: ",
br(),
"(", zähler_A , "/" , nenner_A , "," , zähler_B , "/" , nenner_B , ")"
)
}
else if (ds_A == TRUE && ds_B == FALSE){
mixed_strategy_message <- paste(
# "Gemischte Strategien: ",
# br(),
#
# "Spieler A: \\( p_{A} = (", fractions(round(pA, 2)), "," , fractions(round(1- pA, 2)) , ")" , " \\)",
# br(),
# "Spieler B: Keine gemischte Strategie"
"Es gibt kein Nash-Gleichgewicht in gemischten Strategien"
)
} else if (ds_B == TRUE && ds_A == FALSE){
mixed_strategy_message <- paste(
# "Gemischte Strategien: ",
# br(),
#
# "Spieler A: Keine gemischte Strategie",
# br(),
# "Spieler B: \\( p_{B} = (", fractions(round(pB, 2)), "," , fractions(round(1-pB, 2)) , ")" , " \\)"
"Es gibt kein Nash-Gleichgewicht in gemischten Strategien"
)
} else {
mixed_strategy_message <- paste(
"Es gibt kein Nash-Gleichgewicht in gemischten Strategien."
)
}
combined_message <- paste(
"Strategien:",
br(),
dominant_strategy_message,
br(),
br(),
nash_message,
br(),
br(),
mixed_strategy_message
)
if(input$disp == FALSE) {
combined_message <- NULL
}
withMathJax(HTML(combined_message))
}
})
output$randomTable <- renderTable({
random_table()
},
rownames = TRUE,
colnames = TRUE,
bordered = TRUE)
}
shinyApp(ui = ui, server = server)
© Prof. Frank Pisch PhD | Fachgebiet Mikroökonomie