  In this paper we consider the Stochastic Matching problem, which is motivated
by applications in kidney exchange and online dating. We are given an
undirected graph in which every edge is assigned a probability of existence and
a positive profit, and each node is assigned a positive integer called timeout.
We know whether an edge exists or not only after probing it. On this random
graph we are executing a process, which one-by-one probes the edges and
gradually constructs a matching. The process is constrained in two ways: once
an edge is taken it cannot be removed from the matching, and the timeout of
node $v$ upper-bounds the number of edges incident to $v$ that can be probed.
The goal is to maximize the expected profit of the constructed matching.
  For this problem Bansal et al. (Algorithmica 2012) provided a
$3$-approximation algorithm for bipartite graphs, and a $4$-approximation for
general graphs. In this work we improve the approximation factors to $2.845$
and $3.709$, respectively.
  We also consider an online version of the bipartite case, where one side of
the partition arrives node by node, and each time a node $b$ arrives we have to
decide which edges incident to $b$ we want to probe, and in which order. Here
we present a $4.07$-approximation, improving on the $7.92$-approximation of
Bansal et al.
  The main technical ingredient in our result is a novel way of probing edges
according to a random but non-uniform permutation. Patching this method with an
algorithm that works best for large probability edges (plus some additional
ideas) leads to our improved approximation factors.
