Today I will write about one of many aspects of learning and problem solving in general that I’m very passionate about.
Invisible things make the world go round. I don’t just mean that the basic building blocks of our universe are invisible. As a physicist, you can assume I also mean that. But there is a kind of aspect to problem solving that invokes something that isn’t just unseen by the naked eye, it is truly fiction. I’m talking about the cases like dropping a perpendicular line in geometry. In any given geometry problem, there are an infinite number of lines you can draw and most of them are decidedly unhelpful. However, a particular choice ( usually a perpendicular line) that comes with a constraint unlock the next step and allows you to say something new about the system. An iterative process of this kind, bootstraps knowledge together in such a way as to unlock problem solving. This is wondrous to me.
It doesn’t stop there. Physics is rife with such problems to solve. The brachistochrone problem was one of many like this for me in graduate school. Problem solving in this system was unlocked by a particular set of co-ordinate choice. For other problems the key was the ‘right’ choice of basis in a quantum mechanics course. The ‘right’ one was of course revealed by the choice making the problem tractable at all. The common frustration between myself and my peers was ‘how do you know in advance what to choose?’ The response was a disappointing, ‘you can’t always know.’ Progress is made by an arbitrary choice of something abstract, something fictional or something invisible.
More recently, I found this with a counting problem. I wanted to index the difference of the elements of a vector with itself so position 0 minus position (1,2,3, … ) then the difference of position 1 with position (2,3, … ) pretty easy to set up two loops over these indices. In python:
for i in range(0,maxi-1):
for j in range(i+1,maxi):
maxi being the total length of the vector of interest. This makes something like traversing an upper left triangular matrix. Well then I wanted a counter in this loop that goes (0,1,2,3,4….). It didn’t take too long for me to realize triangular numbers (n(n+1)/2) and indexing were involved but the specific form was a little illusive.
I started from what I could see (the elements of the vector) and I started counting from the bottom up of a smaller upper left triangular table. I reasoned that if I could count 1,2,3 from the bottom up, simple subtraction for the max value counts me down. I used a good problem solving step as well, I reduced my issue to something smaller but equivalent and worked on a whiteboard instead of the larger vectors I was interested in. I got to the end, redid it because I made some mistakes and back substituted some new variables I had created and I realized that the final form indicated a much simpler derivation than all the steps I had taken to get there.
Had I, from the beginning, imagined a square matrix with indices i,j (row,column) and imagined subtracting off the ends of the lines I could have almost just written down
j+i*maxi - 1/2(i+1)(i+2). Where the term,
j+i*maxi counts through a square and
1/2(i+1)(i+2) is a triangular number index but for the bottom-right triangular array that is then subtracted off. But in truth, that part doesn’t exist. It is invisible. It is fictional and it absolutely unlocks the solution to the problem at hand.
It is incredible to me that I have made a career out of solving problems by looking at invisible things.
Be well, stay safe
Next: Trying solutions that “shouldn’t” work