Il problema complesso dello sviluppare sistemi che esibiscono comportamenti intelligenti è stato affrontato operando una scomposizione in sotto-problemi, ognuno con uno specifico ambito di ricerca. Ogni sotto-problema consiste nello studiare particolari abilità e proprietà che caratterizzano il sistema intelligente.
Relativamente all'ambito di applicazione di un determinato sistema intelligente questo presenterà soluzioni più o meno evolute per ogni sotto-problema.