Comprensione delle prestazioni dei solutori QFBV SMT


9

I risolutori SMT come Z3 o Boolector utilizzano un insieme complesso di euristiche per risolvere i problemi. Tuttavia, ciò rende anche molto difficile prevedere le prestazioni di un tale risolutore per un determinato problema. La mia domanda è quindi:

Domanda

Esiste un modo per comprendere o ottenere approfondimenti sulle prestazioni di un risolutore SMT per uno specifico nella teoria dei bitvector liberi da quantificatori (QFBV)?

Ciò include anche tutti gli strumenti di visualizzazione che aiuterebbero a capire dove il risolutore è "bloccato" / senza fare progressi.

applicazioni

  • Capire in anticipo in che modo diverse codifiche dello stesso problema influiscono sulle prestazioni del risolutore (lo stato dell'arte qui non può essere "basta provare alcune codifiche diverse e sperare che uno sia abbastanza veloce", giusto?)

  • Se un determinato problema non è risolvibile da un risolutore SMT a causa di vincoli temporali, trovare un modo per esprimere il problema in modo diverso in modo che possa essere risolto.

  • Evita di perdere tempo con le semplificazioni dei problemi specifici del dominio che non influiranno affatto sulle prestazioni del risolutore o influenzeranno negativamente le prestazioni del risolutore.

Ricerca esistente

Ho cercato di trovare ricerche su questo argomento, ma non sono stato in grado di trovare molto. Non ho ancora molta esperienza nel campo dei solutori SAT / SMT, quindi mi scuso se mi sono perso qualcosa.

  • SATzilla : prevede il solutore con le migliori prestazioni in base alle funzionalità estratte dal problema utilizzando tecniche di apprendimento automatico.

    Questo vale solo per SAT anziché SMT e non spiega i motivi delle prestazioni dei solutori.

  • Profiler dell'assioma Z3 Una visualizzazione del grafico di istanza Z3 e analisi dei loop corrispondenti

    Sembra che questo si concentri solo sulle teorie quantificate.

Risposte:


3

La risposta breve è no, non la capiamo. La risposta lunga è sì, abbiamo dei limiti, ma questi limiti non sono molto utili. È abbastanza chiaro che il tempo di esecuzione nel caso peggiore è esponenziale. Non è molto utile, perché sappiamo che in alcune / molte situazioni pratiche, sembra funzionare abbastanza rapidamente - e non sappiamo davvero perché.

Non sappiamo perché questo sia vero per i solutori di SAT, figuriamoci per QFBV. Capire perché i solutori di QFBV sono spesso veloci sembra difficile quanto capire perché i solutori di SAT sono spesso veloci, che è già al di là del nostro attuale livello di comprensione. Se cerchi di più su questo sito puoi trovare un riassunto dei tentativi attuali di comprendere quest'ultimo argomento.


grazie per la tua risposta! avevo già pensato che potrebbe essere il caso. Sai se c'è qualche ricerca che non cerca di trovare regole generali, ma visualizza invece il motivo delle lente prestazioni di un risolutore sat / smt (o in un altro modo aiuta l'utente a capire quale parte del problema sta dando e SMT solver touble)
bennofs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.