¿Qué significa decir que un algoritmo es sólido y completo?

La solidez y la integridad son conceptos más estrechamente conectados a los sistemas de inferencia lógica, y también a las ideas de falso positivo y falso negativo, o “errores tipo I y tipo II”.

Comprender lo que eso significa para un cierto algoritmo depende un poco de los detalles. Podría decir que un algoritmo es “sólido” si siempre puede confiar en su resultado cuando funciona, pero no funciona en todos los casos en que le gustaría que funcionara. Si solo está completo, funcionará en todos los casos importantes, pero también le dará resultados “falsos” que deberían haber sido rechazados.

Si el sistema es sólido, “nunca está mal”, nunca le da un falso positivo, puede confiar en sus positivos, pero tiene falsos negativos. Nunca está mal, pero a veces “olvida” reaccionar. Es vano, tan perfecto que teme cometer un error … Completo es lo contrario, no hay falsos negativos, pero puede tener falsos positivos. Puede confiar en que se activará cuando sea necesario, pero puede ser una falsa alarma. Es gatillo feliz. Si un clasificador es sólido y completo, tiene una sensibilidad y especificidad perfectas: ni falsos positivos ni negativos. Un mago nunca llega tarde, ni llega temprano …

Para un algoritmo que no es solo un clasificador, puede ser un poco más complicado entender lo que significa el término, solo tiene que definir cuáles son las entradas válidas y las salidas esperadas, y ver qué sale.