Lots of people wanted game theory, so game theory it is. The logical first question: what is game theory?
Game theory is typical of math. What mathematicians like to do is reduce
things to fundamental abstract structures or systems, and understand them in
terms of the abstraction. So game theory studies an abstraction of games – and
because of the level of abstraction, it turns out be be applicable to a wide
variety of things besides what you might typically think of as games.
Game theory starts with the fundamental idea of a game. What is
a game?
As you’ve probably noticed, things have been rather slow around here lately. I’ve got more posts in the works on group theory and abstract algebra – but they take a lot of time to research and write, so they’ll be coming out slowly – one a week or so.
In the meantime, I’m looking for other topics to write about, and I’d like to know what you, my faithful readers, are interested in hearing about.
Some things I’ve considered:
Cellular automata: CA are very cool. I’ve been wanting an excuse to read my copy of Wolfram’s text.
Data structures: my programming-related posts have always been very popular; and there’s a collection of unusual data structures that have interesting mathematical properties.
Game theory: a pretty cool area of math.
Conway’s games: basically the second half of Conway’s ONAG.
Or any other mathematical subject that you’re interested in learning about. Suggest away in the comments.
This is a complicated recipe. It takes a couple of days to do properly,
and works best done with a slow-cooker. But it’s worth it. It’s a Taiwanese dish – a spicy beef noodle soup. It’s pretty much the national
dish of Taiwan – Taiwanese love this dish. There are annual competitions
in Taipei for who can make the best Niu Rou Mien. I learned about it from
my wife, who grew up in Taiwan. I’ve made this a few times, and this is the
recipe the way I’ve worked it out.
After yesterday’s post about the great women of computer science, I noticed my SciBling MarkH over at the Denialism blog had discovered Vox Day and his latest burst of stupidity, in which he alleges that the greatest threat to science is…. women. Because, you see, women are all stupid.
The bizarre propositions of equalitarianism always sound harmless and amusing at first because they are so absurd. What the rational observer often fails to understand, however, is that these propositions don’t sound the least bit absurd to the equalitarian proponent because the average equalitarian is fundamentally an intellectual cave-dweller with no more interest in reason or capacity for logical thought than a hungry kitten. The idea of biology classes being taught by lesbian professors who believe that heterosexual procreation is a myth or calculus courses being taught by women who can’t do long division may sound impossible today, but tell that to any software developer, and he’ll be able to provide you with plenty of current examples of computer science engineers, some with advanced CS degrees, who have no idea how to even begin writing a computer program.
Women love education; it’s the actual application they don’t particularly like. Whereas the first thought of a woman who enjoys the idea of painting is to take an art appreciation class, a similarly interested man is more likely to just pick up a paintbrush and paint something – usually a naked woman.
This is… I don’t know a word that sufficiently expresses the stupidity of this. Vox has a long history of being a moron with delusions of intelligence, but this one really takes the cake.
At Science, Education, and Society, the Urban Scientist
posts a meme to name five women scientists from each of a list of fields. Sadly, my fields are left off the list. So I’ll respond in my own way
by adding computer science. This is a very idiosyncratic list – it’s women
who are particularly important to my own experience as a student and later
practitioner of computer science.
It’s worth noting that I’ve got a very atypical experience as a computer
scientist, in that many of the most influential people in my
career have been women. That’s very unusual, given the incredibly skewed
ratio of men to women in computer science. But as an undergraduate student,
a graduate student, and a professional researcher, the majority of people who had a great influence on my education and career have been women.
Fran Allen. In a list of women in computer science, Fran has to
be at the top. (I’ve met Fran Allen personally, and she told me
to call her Fran.) Fran was the first woman to earn the Turing award – and
the only real question concerning her getting it is why the hell it took
so long. I used to work at IBM Research, where Fran also works, but I knew
about her long before I went there. Fran is one of the people who created the field of compilers. I had the amazing good
fortune to meet Fran on several occasions, and she’s one of the
most pleasant, interesting people that I’ve ever spoken to. She’s also
an incredibly active advocate for women in math and science, and her
tireless effort has probably brought more women into the field than
anyone else. (Yes, when it comes to Fran, I am pretty much a drooling
fanboy. Fran is my idol :-). If in my career, I can accomplish 1/50th
of what Fran did, I’ll be a very proud and happy person.)
Grace Murray Hopper. Admiral Grace Murray Hopper was one of the designers of the
Cobol programming language. You could make an argument about whether
Adm. Hopper or Fran Allen really deserved to be the first woman to earn
the Turing award. Personally, having heard her talk a few times, I don’t
think she held a candle to Fran. But it’s undeniable that she played
a crucial, formative role in the creation of what become computer
science and software engineering.
Ada Lovelace. You can’t fairly talk about women in computer science
without mentioning Lady Ada Lovelace. She was, arguably, the first
programmer ever.
Jeanne Ferrante. Professor Ferrante once worked at IBM, but left before I
got there. I’ve never gotten to meet her. But she wrote one of the first
static analysis papers that I ever read, which had a whole lot to do with what
I’ve ended up doing with my life.
Barbara Ryder. Barbara is a professor at my undergraduate alma mater.
I never had the good fortune to take a class taught by her, but I got
to know her anyway. She’s one of the leading researchers in static analysis,
and her students are some of the leading lights in compilers, programming
languages, static analysis, and compiler optimization. She’s also one
hell of a tough person, who’s done an amazing amount to fight to get
women involved in computer science.
This list leaves off some women who’ve played major roles in my life and career. Like, for instance, my wife, who is a brilliant computational linguist (smarter and a better researcher than I am); my PhD advisor, Lori Pollock, who is an amazing researcher and
the best advisor a student could ask for; my academic grandmother, Mary Lou Soffa; and one of my favorite current researchers in
software engineering, Gail Murphy.
Since I mentioned the idea of monoids as a formal models of computations, John Armstrong made the natural leap ahead, to the connection between monoids and monads – which are a common feature in programming language semantics, and a prominent language feature in Haskell, one of my favorite programming languages.
I’m jumping into this late, and it’s at least somewhat off topic for this
blog, although I’ll try to pull a few mathematical metaphors into it. But Michael
Egnor, that paragon of creationist stupidity, is back babbling about evolution and
bacterial antibiotic resistance. This is a subject which is very personal to me:
my father died almost a year ago – basically from an antibiotic resistant infection.
While doing some reading on rings, I came across some interesting stuff about
Monoids and syntax. That’s right up my alley, so I decided to write a post about that.
When I first talked about rings, I said that a ring is an algebraic
abstraction that, in a very loose way, describes the basic nature of integers. A ring is a full abelian group with respect to addition – because the integers
are an abelian group with respect to addition. Rings add multiplication with an
identity – because integers have multiplication with identity. Ring multiplication doesn’t include an inverse – because there is no multiplicative inverse in
the integers.
But a ring isn’t just the set of integers with addition and multiplication. It’s an abstraction, and there are lots of thing that fit that abstraction beyond the basic realization of the ring of integers. So what are the elements of those
things? They can be pretty much anything – there are rings of topological spaces,
rings of letters, rings of polynomials. But can we use the abstraction of
the ring to create an abstraction of an object that resembles an integer, rather than an abstraction that resembles the set of all integers?
This recipe is based on a recipe for Moroccan spiced duck breasts, from The Soul of a New Cuisine,
Marcus Samuelsson’s new African cookbook. Chef Samuelsson is the guy who’s
responsible for getting me to eat beef after not touching the stuff for
nearly two years. He’s a very interesting guy – born in Ethiopia, but
adopted as a baby and raised in Sweden. He’s famous in NYC for being the
chef at a Swedish restaurant, called Aquavit, where he was the youngest chef
ever to get 3 stars in a New York Times restaurant review.
A few years ago, he became interested in African cuisine, and
spent a lot of time travelling around Africa, studying the cuisine. He’s
written a fantastic cookbook based on the experience. Roughly two weeks ago, he opened a new African restaurant in NYC called Mercato 55. My wife and I had dinner there last saturday, and it was fantastic.
Anyway, as I said, his book has a recipe for Moroccan spiced duck breast. It’s a bit of a fusion dish – french style seared rare duck breast, cooked with moroccan spice blends and a Moroccan orange sauce. Duck breast is too expensive for my kids, so I made his dish for me and my wife, and worked out this variation for my kids. I actually think I like the variation a bit more – the flavor of the spices penetrates the duck much more nicely in a well-done roast duck. I’ve also simplified the recipe a bit.
Ingredients
Two ducks
4 cups orange juice
2 cinammon sticks
Several large onions
1 teaspoon cardamom pods
1 teaspoon whole allspice
1 teaspoon turmeric
2-3 whole cloves
1 teaspoon black pepper
2 large cloves garlic
2 tablespoons chilled butter
Instructions
Put all of the dry spices together into a hot pan, and stir around until they become fragrant. Then move them to a blender or food processor, and grind them to a coarse powder.
Mince the garlic and one half of the onion.
Put the orange juice into a pot with the garlic, onion, and spices, and
heat to a simmer. Let it simmer about ten minutes, and then cool to room temperature.
Take 2 ducks, cut out the back, and press flat. Cut a light crosshatch pattern
over the skin of the breasts, and trim off excess fat. Sprinkle with kosher salt, and then lay them out in a large roasting pan.
Put the orange-juice mixture through a fine sieve, and then pour it over
the ducks. Let it sit for at least two hours.
Remove 3/4ths of the marinade from the roasting pan, leaving the remainder in the pan. Keep the marinade – we’re going to cook it into a sauce later.
Cut several 1-inch thick slices of onion, and set them up as stands in the roasting pan. Set the ducks on top of the onions.
Preheat the oven to 300 degrees. Put the ducks in, and cook for 2 to 3 hours. (It’s important to let it cook for a long time. Duck is terrific rare, and it’s terrific when it’s been cooked for a very long time; it’s tough as leather in between. We’re going for the meltingly tender well-roasted duck here.) Every half hour, baste the duck with the marinade in the pan. If the pan starts to get dry, and a cup of water.
When the duck is done, finely mince half an onion, a clove of garlic, and a small bunch of flat-leaf parsley. Put the onion and garlic into a saucepot with the reserved marinade. Heat to a simmer, and let it cook at a low simmer for 10 to 15 minutes. Then add the parsley, and salt to taste.
Right before serving, turn the heat off on the sauce, and add two tablespoons of cold butter, whipping it in with a whisk. This should turn the sauce a little bit thicker, and give it a nice glossy appearance.