self-aware algorithm