Strict Standards: Non-static method DB::connect() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 32

Strict Standards: Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 520

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 557

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 34

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 92

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB/common.php on line 1009

Strict Standards: Non-static method DB::isManip() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB/common.php on line 2200

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 97

Strict Standards: Non-static method DB::connect() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 32

Strict Standards: Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 520

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /usr/share/pear/DB.php on line 557

Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in /group/project/aicat/web/lib/database.php on line 34Catalogue of Artificial Intelligence Techniques

Singularity Avoidance

In robotics, a singularity is a situation that must be avoided at all costs – because when a singularity occurs, it means that there is a position within the robot's domain where one or more of the formulas in its software fail to resolve correctly – often due to a 'divide by zero' function, or other mathematical impossibilities – and thus the robot will cease to function.
This is – of course – opposed to the technological singularity (a.k.a the Singularity); the point in time where technology will advance at an astonishing rate in a very small amount of time.
The first thing that singularity avoidance is about is identifying the situations where singularities occur for each robot created – which in itself is a long and arduous task, identifying every possible situation where the robot could encounter a singularity. This would involve closely examining the software when one occurs, and then identifying the factor within the equation that caused it to fail, then adding to the software to make sure it avoids that situation – and others like it.
The other aspect of singularity avoidance is building subroutines which detect when singularities happen, and move the robot out of the situation causing it. This would usually involve shutting off the sensors, and simply forcing the robot to move into a situation where it the equation wouldn't fail. It would then probably record the situation and either build a new subroutine that avoid it, or inform the programmers of the situation. Thus, singularity avoidance is closely tied in with robotic learning.