Tuesday, 24 March 2009

A Women in Computing I admire - Barbara M. Smith


As you may be aware today is Ada Lovelace day (http://findingada.com/) the idea is to blog about a female who we admire in computing. I spent a long time thinking about who I should blog about today many people went through my head including, Sue Black, Wendy Hall, Ellen Spertus, Ursula Martin, Hannah Dee, Rebecca George, Gillian Arnold and Reeena Pau. Then I decided I should blog about the women who had effected me most in Computing. I thought about this for a long time than it struck me that the answer was Barbara Smith.

Barbara was my PhD supervisor. She is an expert in modelling in constraint programming (CP, for details see my previous post). Modelling means to take a real world problem and then to choose the variables, values and constraints that will allow you to solve the problem as a CP. Barabara's papers often take the form of: 'I tried to model it in the obvious way and it really did not work. So I made a few adjustments and then it worked a bit better. So then I turned the whole thing on its head found a radically different model and managed to solve a problem that nobody had previously solved.' The thought process needed to find the radically difficult model is astounding and something that I believe one Barbara can do.

Along with Ian Gent, Barbara Smith invented the Symmetry Breaking During Search (SBDS) algorithm which heralded the start of a whole new branch of CP research. Symmetry in a CP is when variables and or values can be swapped to find other symmetrical solutions. It use to be thought of as something that prevented you from solving a problem as you might have to search through many symmetric dead ends before finding a solution. SBDS is an algorithm which stops this from being the case. It dynamically places constraints when you find a dead end which stop you from visiting any symmetrical equivalents to this point. This algorithm meant that symmetry became a good thing to have in a problem as it gives you a handle on how to solve the problem and can be used to cut down the amount of search taken.

Prof. Barbara Smith is one of the unsung heroes of computer science. She has managed to juggle a career and a family extremely well. I particularly admire the way she coped with her husbands cancer diagnosis and subsequent treatment a few years ago. She is an example to all women that it is possible to have a very impressive research record in Computer Science, be a good teacher and have a family.

So I said at the start I wanted to blog about the person who had the most affect on me. Why did I choose Barbara Smith? She was my PhD supervisor and gave me a lot of time and energy I do not think I would ever have completed (almost to schedule) without her help. Her SBDS algorithm was an inspiration too my PhD which was also on Symmetry Breaking in CP an area I still dabble in occasionally. However, most importantly I am now lucky enough to accredit Barbara and her husband as close friends.

Tuesday, 6 January 2009

Happy New Year

So it is the start of a New Year this seems like a good time to start a Blog. My plan for this blog is that it will show exactly what an academic in computing fills there days with. I am often asked in meeting with people from the IT industry, especially those regarding the British Computer Society what being an academic is like, hopefully this will answer their questions.

At the moment it is outwith term time so I am concentrating on research so in this first post I will explain my research area which is call Constraint Programming. 

Problems often consist of choices. Making a choice that is compatible with all other choices made and optimal is difficult. Constraint Programming (CP) is the branch of Artificial Intelligence (AI), where computers help us to make these choices.

A constraint program consists of a set of variables, a set of values for each variable and a set of constraints. For example, the problem might be to to fit components (values) to circuit boards (variables), subject to the constraint that no two components can be overlapping. A solution to a CSP is an allocation of values to variables such that none of the constraints are violated. The goal of CP is to find one solution, all solutions or a good (optimal) solution to a problem. 

If you are interested in the technical details than there is a good tutorial at: http://4c.ucc.ie/web/outreach/tutorial.html which I helped to write.