Monday, 3 November 2014

A few thoughts on Computational Antifragility

I consider antifragility as the one end of a spectrum of behaviors of a system interacting with an "environment". I use quotes there for "environment" is in fact just another system or system-of-systems also expressing a behavior. The need for antifragility, in my opinion, comes from the "opportunities" that may appear throughout the mutual interaction of these behaviors. A few examples may clarify what I mean. If E exercises a random behavior (or one that appears to S as random, or unintelligible) then S can't use any advanced behavior and must resort to worst-case analysis and predefined use of redundancy to mask out the negative effects of E's behavior. This is elasticity. On the other hand, if E exercises purposeful behavior, viz. intelligible behaviors such that a goal may be identified and pursued, then S can match E's behavior with something "more clever". A first thing that S may do is enacting a strategy towards a simple protection of its identity. This is entelechism ("being-at-work" so as to "stay-the-same"). This is a teleological / extrapolatory behavior that ranges from reactivity to proactivity. Once more, what to use depends on E's behaviors -- if the behavior of E may be anticipated, then proactivity is a good option, while if the behavior has a reduced "extrapolation horizon" then a better option could be reactivity. An important aspect to highlight is, in my opinion, that entelechism leaves no trace in S. "Genetically" speaking, the interaction with E leaves no trace. The impact on the identity of the system is nought. In other words if you run S a second time and deploy it in E, S will start from scratch. One could say that entelechism is memoryless -- it leaves no trace in S. A different approach is what I call "computational antifragility". Here S makes use of learning techniques that leave a trace in S's identity. Computational antifragility is proactivity with machine learning, it is "being-at-work while improving-the-self". This corresponds to Professor Taleb's concept of antifragility, applied to the context of computing systems.

The currently missing link is, in my opinion, the ability to reconfigure the system so as to select the resilience strategy best matching the current behavior of E. In other words, a self-resilient (or as I call it, an auto-resilient) approach is required, with an environment behavior classificator able to tell what options are made viable by E's behavior, a planner selecting the corresponding strategy and its parameters, and a reconfigurator able to re-weave the system according to the selected strategy.

Creative Commons License
A few thoughts on Computational Antifragility by Vincenzo De Florio is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.
Permissions beyond the scope of this license may be available at mailto:vincenzo.deflorio@gmail.com.