Memcomputing is a novel physics-based approach to computation that employs memory to both process and store information on the same physical location. Its digital version is designed to solve combinatorial optimization problems. A practical realization of digital memcomputing machines (DMMs) can be accomplished via circuits of non-linear, pointdissipative dynamical systems engineered so that periodic orbits and chaos can be avoided. A given logic problem is first mapped into this type of dynamical system whose point attractors represent the solutions of the original problem. A DMM then finds the solution via a succession of elementary instantons whose role is to eliminate solitonic configurations of logical inconsistency (??logical defects??) from the circuit. I will discuss the Physics behind memcomputing and show many examples of its applicability to various combinatorial optimization problems demonstrating its advantages over traditional approaches. Work supported in part by DARPA, MemComputing, Inc. (http://memcpu.com/), and CMRR.