Once considered culturally determined, beginning around 1970 psychological researchers have found universal similarities in facial expression of emotion and the perception of those expressions by others. Most notably, while attempting to prove Darwin's hypothesis that facial expression was selected for benefiting communication within a species, Paul Ekman developed the Facial Action Coding System (FACS). The system grouped muscles that fired together or were imperceptible alone into "action units" by electrically stimulating individual facial muscles - in most cases, one such muscle corresponds to one action unit. Once the action units were determined, Ekman and colleagues studied the combinations of action units expressed by subjects when several metrics demonstrated the presence of certain emotions. These expressions were perceived by others as displaying the emotions experienced with near universal validity. Only fear and anger were significantly conflated, and which of the two emotions were ascribed correlated with the culture of the viewer.

While other systems for documenting facial expression exist, FACS is unique in that it allows descriptions of all possible indistinguishable expressions, not only those corresponding to certain emotions. Such attributes make the system ideal for representing facial expression in digital forms while allowing revision of ascribed emotional content. The combinations allowing for emotional inferences may then be revised as necessary according to newly available data by more heavily weighting certain factors. The system also describes methods to weigh intensity of emotion by degree of appearance change, number of action units expressed, duration of expression, or other benchmarks, though considerably less evidence supports their application to all emotions.

The correspondence between numerical action units and distinguishable facial expressions allows convenient representation of data determining facial expression. A boolean matrix with non-zero entries equal to the number of action units can represent all such information. For each action unit, corresponding to a given time t, assign it an entry in the matrix Mt; if the action unit is expressed at time t, assign a 1 in this entry. If the action unit is not expressed at time t, assign the entry the value 0. The all or nothing behavior of motor neurons controlling facial muscles and data collected on FACS permits such a simplification.

With this assignment, a given facial expression may be represented in matrix form and stored on a computer. Needle electrodes can be used to gather input from subjects about facial muscle contraction, and less intrusive solutions may be possible from visual or other input in the future. The first research project would focus on ways to algorithmically interpret this input by applying analysis to a matrix representing a given facial expression. Combinations of facial muscles expressing certain emotions may be considered subspaces of the given boolean vector space; projection of Mt onto such an emotional subspace followed by application of a norm may help measure the likelihood a measured expression corresponds to a certain emotion. Intensity may end up determined by voltage measured and the number of action units detected. Metrics can also be applied to measure the distance of a given expression from an emotional subspace. Hopefully combinations of these techniques will result in an algorithm that allows better than chance recognition of facial emotions.

Applications exist for teaching the autistic social cues, as well as reading input from the profoundly disabled; given the emotional hardwiring of such expressions, they may allow minimal control of computers by those with physical disabilities with minimal instruction for those with comorbid mental disabilities. This gives rise to additional difficulties; conscious expression of emotions result in different muscular contractions and more pronounced asymmetries. Calibration with individuals and general data results in algorithms that can avoid this difficulty by ignoring spontaneous and genuine expressions of emotion while taking input from those deliberately adopted by the user.

"Unmasking the Face," Paul Ekman

The Facial Coding System Manual and Investigator Guide, Paul Ekman

A lot of studies from Seashore Hall

The model I came up with myself. At least one other person independently developed the idea of a Boolean vector space representation, but he wanted visual recognition of emotions and moved to that next. I'm content with using it to control a computer and avoid his research entirely. I don't know if anyone thought up using matrix norms and subspaces to measure ambiguous expressions and determine a most likely guess of the corresponding emotion. I'd prefer to work on this topic alone as I hope to turn it into a publish of some sort.

Symbolic Dynamics and Error Correction, Carl Henning

3.

In symbolic dynamics, a shift space is a set of infinite words (strings) over an alphabet with a shift operator representing the progression of one state of the system to the next. It can be used to model a discrete system, particularly the data stored in a computer, and properties of the system can be derived from the restrictions placed on the space. In particularly, an infinite sequence of 0 and 1s can represent the data stored in a memory location in a hard drive at any given time. The shift operator corresponds to temporal or spatial progression, updating the present value - indexed at x0 - to the value stored in x1, and shifting all other values one to the left (equivalently, reducing their index by one).

In computing applications, physical necessity in design of a language may force strong restrictions over the infinite word representing a given system. Certain languages can be characterized by finite words (substrings) that never occur. If the language can be described so all impermissible words are of length = M, we may characterize them as of finite type. Such languages have strong overlap properties; given two words allowed in a shift of finite type, say uv and vw, given that v is of sufficient length, we may conjugate uvw with certainty that the word occurs in our language.

Systems such as this allow for error correction in an abstract sense for all shifts of finite type, given we can determine the blocks not allowed in the language. Schemes for encoding hard drive data forced from necessity allow this analysis; we may determine an error in reading or writing by simply checking that a given word doesn't appear in the infinite word representing the state of the data in the hard drive. Polarity changes in the magnet of the hard drive cancelling and clock drift in measuring intervals between electrical pulses both lead to errors which can be detected by such a system, checking for impermissible words (sequences of 0s and 1s) that are forbidden and indicate an error in transcription or retrieval. Hard drives achieve this in several ways, one of which introduces control bits between consecutive units of data and leads to representations and analysis by shifts of finite type. Such shifts also lend themselves readily to representation and analysis with digraphs, a tool in the exploration of any given language.

"An Introduction to Symbolic Dynamics and Coding," Douglas A. Lind, Brian Marcus

Approximation Algorithms and the Internet, Carl Henning

4.

NP-complete problems are seemingly intractable yet their solution is necessary in wide-ranging applications. To work around the computational complexity of such problems, approximation algorithms have been developed. These algorithms dispense with the restriction our solution must be exact; they allow for a certain inefficiency. For example, finding a minimum degree spanning tree of a graph is encountered when trying to determine internet routing; the minimum degree spanning tree represents the fewest network connections required to connect all computers in the network, and can form as a backbone for the network in case of emergency with those connections prioritized to prevent service interruptions. This problem is NP-complete, yet finding a backbone for internet routing requires searching thousands of capable connections for such a minimum spanning tree.

To make such computations feasible, approximation algorithms have been developed that allow finding a solution with error bounded by a certain degree. In this case, an approximation algorithm may not find a minimum degree spanning tree, but rather a spanning tree whose degree differs from the minimum possible by some given error bound. In practical applications most organizations willingly sacrifice the time required to solve such a difficult problem by accepting a somewhat imperfect solution; they've traded one inefficiency for another they can manage.

In some cases, we may repeat the algorithm a certain number of times and increase the probability of the exact answer. The Miller-Rabin test for primality is an algorithm that uses Fermat's little theorem with such methods, checking a number of cases that is sufficient to determine with a given probability that a number is prime. In the case of cryptography, checking primality is expensive enough that most algorithms readily sacrifice absolute certainty for a fraction of it. Should the number turn out composite, on average it's far quicker to pick another and restart the process than to have originally tested until a number was proven prime. Interestingly, primality testing is a polynomial time algorithm, yet for practical applications like cryptography the Miller-Rabin test is far more efficient. The success of the method demonstrates that even with polynomial time problems, approximation algorithms may result in a reduction of computing time sufficient enough to justify the inherent error in their use.

"A Friendly Introduction to Number Theory," Joseph H. Silverman

"Limits of Computation," Michael Sipser