Roadmap: pysib — ACM TOMS Algorithm Paper¶
Target: ACM Transactions on Mathematical Software, Algorithm paper.
Submission = PDF do artigo + ZIP do software (CALGO).
0. Estratégia editorial¶
O artigo deve ser estruturado como um TOMS Algorithm paper, não como manual de usuário. A narrativa central deve deixar claras três contribuições:
- Pacote livre em Python para identificação polinomial clássica — implementação aberta e integrada dos estimadores ARX, SM, IV, correlation, OE, ARMAX e BJ, com convenção comum de modelos.
- Núcleo de otimização especializado em C para PEM não linear — otimizador desenhado especificamente para OE, ARMAX e BJ, com muitos passos pequenos, sensibilidades estruturadas, Gauss--Newton e LAPACK, viabilizado por implementação de baixo nível para reduzir overhead.
- Implementação aberta dos métodos filtrados / cost-function shaping — integração em software livre dos métodos filtrados fundamentados nos artigos já publicados, aplicados aos estimadores não lineares.
Reprodutibilidade não deve ser apresentada como contribuição científica; deve ser tratada como requisito transversal de conformidade com TOMS/CALGO. Todos os resultados do artigo devem ter drivers e saídas esperadas no pacote submetido.
Estrutura do artigo (implementada):
- Introduction (inclui related work)
- Problem and Model Classes
- Algorithms (Linear Estimators | Nonlinear PEM + Optimization Core | Filtered Continuation)
- Software Organization
- Numerical Results (Robustness under Noisy Data | Effect of Filtered Continuation)
- Conclusion
1. Artigo (manuscript) — status¶
1.1 Concluído¶
- [x] Introdução — 5 parágrafos: contexto, lacuna, pysib, contribuições, organização
- [x] Conclusão — três contribuições, resultados principais, disponibilidade CALGO
- [x] Abstract alinhado com três contribuições
- [x] Seção Algorithms reestruturada com três subseções
- [x] Software Organization — Python/C, convenção unificada, article/manual boundary
- [x] Numerical Results — Robustness under Noisy Data (tabela + figura)
- [x] Numerical Results — Effect of Filtered Continuation (tabela + figura)
- [x] Removido
lstlistingPython do artigo - [x] Removido
listingspackage não mais usado - [x] Tabela de arquitetura alinhada com nomenclatura das seções
- [x] Related work integrado na Introduction
- [x] Estrutura de seções alinhada com guidelines TOMS Algorithm
- [x] Seção Exact Recovery substituída por parágrafo sobre testes unitários
1.2 Pendente (ajustes finos)¶
- [ ] Prefixar título com
Algorithm XXXX:(número atribuído pela revista) - [ ] Verificar se há URLs inline que devem migrar para
\cite{} - [ ] Adicionar entrada
.bibapontando para versões futuras do software - [ ] Adicionar
altdescriptions às figuras (aviso acmart acessibilidade)
2. Experimentos — status¶
2.1 Concluído¶
- [x]
artigo/experiments/robustness_noisy_data.py— simulação Monte Carlo - [x]
artigo/experiments/robustness_noisy_data_plot.py— análise e figuras - [x]
artigo/experiments/robustness_noisy_data.npz— dados salvos - [x]
artigo/experiments/robustness_noisy_data_results.md— tabela estatística - [x]
artigo/experiments/robustness_noisy_data_parameters.pdf— histogramas SM/OE - [x]
artigo/experiments/filtered_continuation_oe.py— simulação Monte Carlo - [x]
artigo/experiments/filtered_continuation_oe_plot.py— análise e figuras - [x]
artigo/experiments/filtered_continuation_oe.npz— dados salvos - [x]
artigo/experiments/filtered_continuation_oe_results.md— tabela estatística - [x]
artigo/experiments/filtered_continuation_oe_errors.pdf— histograma + boxplot
2.2 Pendente¶
- [ ] Salvar arquivos de saída esperada em
expected_output/para validação CALGO
3. User Manual — status¶
- [x]
userManual/main.tex— overview, instalação, API reference, exemplos - [x]
userManual/main.pdfcompilado - [x] API reference cobre todas as funções públicas
- [x] Instruções de instalação com dependências
4. Software (ZIP para CALGO) — pendente¶
4.1 Estrutura do ZIP (obrigatória pelo guideline)¶
userManual.pdf
userManual/ ← fonte LaTeX do manual
Python/ ← código fonte pysib
Doc/ ← LICENSE, README top-level
- [ ] Reorganizar repositório ou preparar script de empacotamento para gerar o ZIP com essa estrutura
- [ ] Remover do ZIP:
.git,.gitignore,.soprecompilados,.o,.a - [ ] Drivers devem ter arquivo de saída esperada para comparação (
expected_output/) - [ ] Drivers não devem exigir input interativo (já atendido)
4.2 Código (pysib v1.0)¶
- [ ] Verificar que o pacote roda em Linux (além de macOS)
- [ ] Garantir que
make(oucmake) builda tudo de forma portável em Linux e macOS
5. Checklist final antes de submeter¶
- [ ]
make clean && makeno artigo: zero erros, zero warnings relevantes - [ ] Todos os drivers rodam sem erro em Linux e macOS
- [ ] Saídas dos drivers batem com
expected_output/ - [ ] ZIP tem a estrutura exata:
userManual.pdf,userManual/,Python/,Doc/ - [ ] Nenhum arquivo precompilado no ZIP
- [ ] Gerar códigos CCS corretos em https://dl.acm.org/ccs/ccs.cfm
- [x] Preencher ORCID no ScholarOne
- [ ] Contato prévio com editor recomendado para Algorithm papers (Tim Hopkins —
[email protected])