Squirrels may not be the smartest rodent out there, but they do have a surprisingly complex vocaliazation.

During a stroll at the Boston Common (with friends Junyi, Jon, and Peng) before dinner, we observed squirrels and ended up talking about squirrel voaclization.

A statue of George Washington at the Boston Common

An interesting analogy can be made to biconvex optimization. Without getting into formal mathematical definitions: there's a class of optimization problem where a non-convex optimization can be transformed into a series of convex optimization by iteratively fixing one variable and solving the other where constraining one variable makes the objective function a convex function (though global optimum is not gauranteed). Suppose a function with two variables \( f(x, y) \) that is non-convex. However, setting either \(x\) or \(y\) makes it convex. Hence, we iteratively repeat until satisfied:
\( f_x(y)\) is convex over \(Y\)
find the best \(y\)
\( f_y(x)\) is convex over \(X\)
find the best \(x\)

In a hypotehtical situation where two squirrels are attempting to communicate:

  • Suppose there are two squirrels: Squirrel Bob and Squirrel Alice.
  • Suppose Bob is trying to communicate with Alice.
  • However, Bob does not know the precise location of Alice.
  • The noise of the communication and the receptibility are both dependent on distance between Bob and Alice. Above a certain distance, the receptibility drops to zero. If Bob and Alice are close (distance) enough, the receptibility is high and the noise is low. There's an intermediate zone where the receptibility is sufficient but the noise/uncertainty is high.

In order to establish a bi-directional communication, Bob would do the following (vocalize and then localize based on the response. Roughly, repeat the process until sufficient enough signal-to-noise ratio):

procedure establish_bidirectional_communication is:
    create a search space for vocalization_direction
    initialize vocalization_direction based on prior of Alice's location
    
    while not tired and not high enough receptibility:
        select vocalization_direction from the search space
        vocalize
        listen for response
        if response
            localize
        end
        update the search space
   end

Hence, the squirrels have to localize to vocalize and vocalize to localize:
((((vocalize to localize) to vocalize) to localize) to vocalize) ...)


Update 2017-10-08:
Friend Jon brought up something interesting:
"Lewis signaling games, which come from a similar framework in this space but are generalized to multiple agents with different incentives."