The concept of *feasible computation* aims at those features and capacities of methods and algorithms for computing that are effective, applicable and reliable in the ordinary conditions of life. In practical circumstances, we care not only that a problem has an algorithmic solution in principle, but that it is solvable within the context in which the problem arises. This means that within natural variations of conditions, the solutions generated must continue to be valid or correct, and that solutions are produced sufficiently quickly for the context. It is efficient and reliable computability under the practical constraints of the context that *feasible computation* connotes.

Given a computational problem, contextual needs place certain constraints on what constitutes an acceptable solution and an acceptable computational cost. The nature of the problem will determine what counts as an acceptable solution. Algorithmic theorem verification, for instance, requires that a rigorous proof be constructed. Mathematical models of real world phenomena, however, being subject to various forms of error, can accept a range of valid approximate solutions. What counts as an acceptable computational cost is determined by the nature of the problem-solving context, which introduces various types of constraints. These constraints include conceptual, mathematical, programming, hardware, electricity use, financial and human resource limitations, as well as what other algorithms are already available for the given problem.

Thus, whether a problem is feasibly solvable depends on what counts as feasible (sufficiently reliable and efficient) given the constraints of a problem-solving context. What counts as a reliable computation can also vary depending on the context. In some cases, with image recognition for example, it may be acceptable to have a machine learning algorithm that is 80% accurate on images of a certain type, since, say, the algorithm will only be used on images of that type and an 80% success rate is deemed acceptable. For financial software distributed globally, on the other hand, no level of error is acceptable, and the result of computation must be independent of context.

Moreover, a problem that is infeasiblly solvable can become feasible by reformulating the problem. Since the computational problem itself is also a product of a context, it can be influenced by contextual constraints. Initially it might seem desirable to use exact methods of solution for a computational design problem. But if the available exact algorithms are too expensive, and a computationally cheaper approximate method is available that introduces sufficiently small error, the practical problem becomes feasibly computable by changing its formulation as a computational problem.

We see, therefore, that feasible computation picks out an *experiential* condition on computational reliability and complexity, in the sense that a feasible problem-solving method ensures the experience of reliable and efficient solutions where that method is deployed. Taking efficiency *and* reliability into account in the process of algorithm design and implementation is then seen to promote such experiences.

As computers become more and more embedded in every aspect of our global society, and users increasingly tend to trust the results of computation, the results of computation have greater and greater influence on our beliefs and decisions. As a result, the need for feasible algorithms is becoming increasingly important in our lives.