Solution:
The winning strategy can be determined by working backwards. Whoever leaves only one match on the table loses. Whoever leaves two wins, because they force the other player to leave only one. Whoever leaves 3 or 4 loses, because on the following move the other player can leave two. Whoever leaves 5, on the other hand, wins, because they force the other player to leave 3 or 4, which we have seen to be losing moves. Similarly one sees that leaving 6,7,8,9 or 10 is a losing move (it allows the other player to leave 5), while leaving 11 is winning.
This reasoning can be repeated indefinitely: if leaving k matches is a winning move, then leaving a number between k+1 and 2k (inclusive) is losing, while leaving 2k+1 is winning. In conclusion the "winning numbers" can easily be determined starting from two and exploiting recursively the fact just observed that if k is winning, then 2k+1 is also winning. The "winning numbers" less than 1999 are therefore: 2,5,11,23,47,95,191,383,767,1535. Barbara can therefore win by following this strategy: on the first move she leaves 1535 matches on the table, the second time it is her turn she leaves 767, the third time 383, and so on. Proceeding in this way, the tenth time it is her turn she will leave 2 on the table, and on the following move Alberto will lose.