Wikidebate/Algoritmo de debate
El algoritmo de debate es un algoritmo recursivo que computa el estado («sostenido» o «refutado») de cualquier argumento a partir de la estructura del árbol de debate en el cual está inserto. El algoritmo captura la idea intuitiva de que un argumento se debe considerar refutado cuando tiene objeciones sin refutar.
Algoritmo
editarDado un árbol de debate, el algoritmo etiqueta cada argumento como «sostenido» o «refutado» según las siguientes definiciones:
- SOSTENIDO: Sin objeciones sostenidas
- REFUTADO: Con objeciones sostenidas
Considerando que las objeciones también son argumentos, el algoritmo continúa recursivamente hasta el final del debate (las hojas del árbol de debate). Los argumentos al final no tienen objeciones sostenidas (no tienen objeciones en absoluto) así que el algoritmo las considera sostenidas y a partir de ahí puede resolver el estado de los otros argumentos.
Pseudocódigo
editarLa esencia del algoritmo se puede resumir en una simple función recursiva:
function getStatus( argument ) objections = getObjections( argument ) for each objection in objections do if getStatus( objection ) === SUSTAINED then return REFUTED return SUSTAINED
La función se llama a sí misma recursivamente hasta que llega a las hojas del árbol de debate. Entonces devuelve «sostenido» para cada hoja y resuelve el estado de todos los demás argumentos en el árbol.
Una formulación alternativa puede ser:
function isSustained( argument ) objections = getObjections( argument ) for each objection in objections do if isSustained( objection ) then return FALSE return TRUE
Véase también
editar- Wikidebate - Proyecto de debate que utiliza el algoritmo
- DebateTree.js - JavaScript que aplica el algoritmo en los wikidebates