# Quick introduction: the algorithmic lens

March 23, 2019 8 Comments

Computers are a ubiquitous tool in modern research. We use them for everything from running simulation experiments and controlling physical experiments to analyzing and visualizing data. For almost any field ‘X’ there is probably a subfield of ‘computational X’ that uses and refines these computational tools to further research in X. This is very important work and I think it should be an integral part of all modern research.

But this is not the algorithmic lens.

In this post, I will try to give a very brief description (or maybe just a set of pointers) for the algorithmic lens. And of what we should imagine when we see an ‘algorithmic X’ subfield of some field X.

The algorithmic lens is not about computers or computer programs. In the same way that astronomy is not about telescopes and that thermodynamics is not about steam engines. Rather, the algorithmic lens recognizes that our theories, models & hypotheses are algorithms in their own right. Thus, we can use the conceptual tools built by theoretical computer scientists for analyzing and designing algorithms to evaluate and refine our scientific theories, models, and hypotheses.

In other words, whereas ‘computational X’ is a practical branch of X, ‘algorithmic X’ is a theoretical branch of X. ‘Algorithmic X’ is a suite of mathematical techniques taken from theoretical computer science and applied to the conceptual objects of X. A paper in ‘computational X’ might feature simulations, data crunching, and computer programs as central characters. A paper in ‘algorithmic X’ is more likely to include theorems, lemmas, proofs and conceptual analysis. As such, one can often view ‘algorithmic X’ as a branch of pure math that is focused on the computational aspects of X.

Unfortunately, a lot of the mathematics used by theoretical computer scientists is foreign to many classic scientists. Thus, there are much fewer fields with an ‘algorithmic X’ that there are with a ‘computational X’. And although many fields have ‘mathematical X’ branches, these are also slightly different from ‘algorithmic X’ — since these fields often draw on applied math and most often focus on differential equations and statistics. But so far ‘algorithmic X’ has integrated most deeply into fields that are deeply mathematical. Here it often compliments the corresponding mathematical and theoretical branches. The two most prominent examples are in physics and economics.

In physics, the relevant subfield is quantum information processing (QIP). In economics it is algorithmic game theory. These are both fascinating areas of research. And I have a little bit of formal experience with the former. In fact, back in 2010, when I was finishing undergrad, I first concentrated on QIP and worked in it for a number of years.

But over time I realized that the algorithmic foundations of QIP are pretty secure and in great hands. And I wanted to try after a field where they were less clearly developed. That is why I shifted to evolution. So I do much of my current work in the up and coming subfield of algorithmic biology.

I’ve already written in more detail about what theoretical computer science can offer biology in a prior post. For a more concrete example, see my post on theoretical versus empirical abstraction.

An important final point, is that the interaction of theoretical computer science with the natural sciences is not one sided. Although I am skeptical of claims about ‘learning’ algorithms from nature, I am less skeptical about foundational questions about nature as motivators for studying and developing new kinds of theoretical computer science. Thus, computer science has much to gain from going beyond questions related to technology. Computer science has much to gain by expanding its domain of inquiry to be the whole of the natural world.

I feel that Linguistics as a field would benefit by distinguishing “Algorithmic Linguistics” from “Computational Linguistics,” (and by more consistently labeling both as distinct from applied Natural Language Processing.) There is a small (but to my mind, important) subset of the field which is highly concerned with studying the complexity of the acquisition, processing, and production of language within different linguistic theories. This is all too often swallowed up by the general term Computational Linguistics, which also includes computational modeling and simulation, the use of certain “computational” statistical models (especially with language corpora), and NLP. “Mathematical Linguistics” is a rarer phrase that has a meaning closer to “Algorithmic Linguistics”, but which also includes work that formalizes existing linguistic theories in more explicit mathematical terms (which arguably should just be considered “Theoretical Linguistics”.)

This is a good point. I think similar distinctions could be useful in the cognitive sciences/psycholgoy.

It might be easier to introduce the ‘algorithmic X’ terminology in fields where that subfield hasn’t yet started to develop. In fields where it has, a more ambitious goal might be possible: make the algorithmic lens so prevalent that it is just second nature in the field and no longer needs an extra qualifier. One can dream, eh?

I wholeheartedly agree with this, and I as compling and NLP interact more and more, I think this algorithmic distinction will be very useful. FWIW, this discussion has been happening for a while in some linguist circles, as seen in this blog post.

http://facultyoflanguage.blogspot.com/2013/11/computational-linguistics-too.html

It would also be very helpful for theoretical CS join forces with those mathematical/algorithmic linguists, who often have mutual goals (speaking selfishly as I do learnability and automata theory). One can get a good look at the state of the field in the recent issue of the flagship journal Language, where a discussion on neural nets in linguistics drew all sorts of commentary (mine included).

https://muse.jhu.edu/issue/40022

Pingback: Local maxima and the fallacy of jumping to fixed-points | Theory, Evolution, and Games Group

Pingback: Four stages in the relationship of computer science to other fields | Theory, Evolution, and Games Group

Pingback: Introduction to Algorithmic Biology: Evolution as Algorithm | Theory, Evolution, and Games Group

Pingback: Idealization vs abstraction for mathematical models of evolution | Theory, Evolution, and Games Group

Pingback: Elements of biological computation & stochastic thermodynamics of life | Theory, Evolution, and Games Group