  A financial system is represented by a network, where nodes correspond to
banks, and directed labeled edges correspond to debt contracts between banks.
Once a payment schedule has been defined, where we assume that a bank cannot
refuse a payment towards one of its lenders if it has sufficient funds, the
liquidity of the system is defined as the sum of total payments made in the
network. Maximizing systemic liquidity is a natural objective of any financial
authority, so, we study the setting where the financial authority offers
bailout money to some bank(s) or forgives the debts of others in order to
maximize liquidity, and examine efficient ways to achieve this. We investigate
the approximation ratio provided by the greedy bailout policy compared to the
optimal one, and we study the computational hardness of finding the optimal
debt-removal and budget-constrained optimal bailout policy, respectively.
  We also study financial systems from a game-theoretic standpoint. We observe
that the removal of some incoming debt might be in the best interest of a bank,
if that helps one of its borrowers remain solvent and avoid costs related to
default. Assuming that a bank's well-being (i.e., utility) is aligned with the
incoming payments they receive from the network, we define and analyze a game
among banks who want to maximize their utility by strategically giving up some
incoming payments. In addition, we extend the previous game by considering
bailout payments. After formally defining the above games, we prove results
about the existence and quality of pure Nash equilibria, as well as the
computational complexity of finding such equilibria.
