NEWS.md
is_stable()
can check the stability of user specified matching.spe()
a little more efficient by modifying extensive_strategy()
.find_dominated()
find_dominant()
extensive_form()
draw_tree()
spe()
sim_learning()
function.extensive_form()
now accepts player names containing white spaces, but each white space will be replaced with an underscore.matching_mt1()
implements many-to-one matching.matching()
with DA (Gale-Shapley) algorithm used.sim_learning()
simulates how players learn to play better in a two-person normal-form game.sim_fict()
simulates fictitious plays with a two-person normal-form game.normal_fomr()
can now handle discretize = TRUE
for payoff functions defined by character strings.sim_game()
.sim_game()
(which was previously simu_game()
) now automatically produce the ggplot graphs of simulation results.normal_form()
and seq_form()
, the parameters p1
and p2
are renamed to payoffs1
and payoffs2
, respectively.simu_game()
is now sim_game()
, that is, “u” has been removed from the function name.matching()
and matching_df()
now contains the information of the ranking of matches.is_stable()
function.matching()
and matching_df()
now implements “Boston mechanism” matching. Still works only for one-to-one matching, though.eval_matching()
evaluates how desirable a matching result is for a player.restrict_action()
now works with imperfect-information games.restrict_action()
restricts actions at specified nodes in an extensive-form game.subgames()
finds subgames of an extensive-form game.solve_efg()
can find subgame perfect equilibria by setting concept = "spe"
.normal_form()
can be specified by each cell with cells
argument rather than by each player with p1
and p2
. You need to add byrow = TRUE
to fill the matrix by row. The matrix is filled by column by default.extensive_form()
can be specified by each terminal node with payoffs2
argument rather than by each player with payoff
argument.to_matrix()
.extensive_form()
throws an error if a node belongs to more than one information set.to_matrix()
transforms an extensive form game defined by extensive_form()
into a normal-form game.draw_path()
extensive_form()
function has been drastically modified. Now the function only defines a game. It no longer finds solution of an extensive-form game.solve_efg()
function. Currently, it finds backward-induction solutions of the game.show_path()
.seq_extensive()
transforms a “seq_form” class game into an “extensive_form” class.get_payoff()
returns the payoff corresponding to a specified pair of strategies or a specified set of actions profiles.extensive_form()
has been simplified.
n_node
or n_choices
.direction
, “horizontal” and “vertical” are available.Functions to define and solve a simple leader-follower sequential game (e.g., Stackelberg competition) have been added.
seq_form()
function.solve_seq()
function.This version contains three new functions: find_dominant()
and find_dominated()
finds (weakly) dominant and (weakly) dominated strategies, respectively, and eliminate_strategy()
eliminates the specific player’s specific strategy from a normal-form game. In addition, Some bugs have been fixed.
This version adds options to (1) discretized strategies with continuous payoff functions (see Example 5 in README) and (2) draw a bidirectional game tree for an extensive-form game Some minor bugs have been fixed. Now users can choose a color palette for ggplot2 figures.
Two bugs have been fixed. First, the bug that incorrectly finds a NE, which should not exist, has been fixed. Second, a discrete best response correspondence was displayed as a continuous path in the previous version, but the current versions shows it as discrete.
Now, when you specify payoffs as functions, you can choose if NE should be displayed in the best response plot by mark_NE
. After saving the solution to an object, you can retract the best response plot with and without the NE by br_plot_NE
and br_plot
, respectively,
extensive_form()
has been added to solve a simple extensive form game. The function draws a game tree, finds a subgame perfect equilibrium, and shows the equilibrium path on the tree.
Now game_table()
, which is called by solve_nfg()
to display game tables, automatically adjusts the cell size of the table displayed unless cell_width
is specified by the user.
In br_plot (the plot of best response correspondences), two players’ best responses are drawn by the lines with different width (ggplot’s size) so that we can distinguish the two even when they overlap. And a minor bug has been fixed.
The message that warns users that the NE obtained by solve_nfg()
might be a part of the solutions and asks them to examine the br_plot.