Dove cercare questo tipo di problemi?
Il campo dell'informatica / matematica " calcolo simbolico " è una disciplina (non una famiglia di algoritmi) che mira a trovare soluzioni e algoritmi per risolvere questo tipo di problemi.
Più precisamente, una categoria di software chiamata "Computer algebra system (CAS)" riguarda la manipolazione simbolica applicata all'algebra . Per semplificare, questo tipo di sistemi ha bisogno di un parser e il loro core è un motore per la risoluzione delle equazioni e il riordino delle equazioni.
Anatomia (molto semplificata) di un CAS
Il parser applicherà le regole grammaticali per analizzare i termini in un'equazione e il raggruppamento di termini usando le regole grammaticali
Il motore implementa sistemi di riscrittura dei termini molto elaborati, il tipo di algoritmi che applica una serie di "regole di semplificazione" o "regole di riscrittura", al fine di raggiungere un obiettivo (ad esempio, tutte le x su un lato, tutte le y sull'altro).
Questo articolo offre una rapida introduzione a questa famiglia di algoritmi.
Ad esempio, una regola potrebbe essere
A + expression1 = expression2 ==> expression = expression2 - (A)
Ma ci sarebbero centinaia di regole come questa.
Inoltre, un sistema di riscrittura a termine deve avere una logica guida, per scegliere le riscritture più promettenti (ad esempio riarrangiamento). Puoi immaginarlo come una sorta di algoritmo di individuazione dei percorsi che cerca un percorso ottimale in un grafico di possibili riscritture, un po 'come se il tuo sistema GPS fosse alla ricerca di un percorso ottimizzato per le strade. E in questa logica, è necessario aggiungere alcune strategie, che rendono il TRS preferisce mettere gruppi di simboli da una parte o dall'altra del segno di uguale.
Non è un gioco da ragazzi!
Inutile dire che sono sistemi molto complessi. È più la cosa per un laboratorio di ricerca. Fortunatamente ci sono alcuni dei quali disponibili , anche alcuni open source con cui potresti iniziare.