DDCM Research Reports
DDCM Research Reports
Web view (GitHub Pages): https://azwanazamuddin.github.io/reports/
A wrapper for my PhD research reports on Dynamic Discrete Choice Models (DDCM) for activity-based travel demand.
The folder follows the HIIRM lab meeting template: each lab meeting has (1) a rolling thesis draft as the research overview document and (2) a per-meeting discussion doc in meetings/<semester>/.
Folder layout
reports/
├── README.md ← this file (landing page)
├── templates/ ← HIIRM meeting templates (English)
│ ├── instructions.md how the meeting process works
│ ├── meeting-template.md blank meeting-day document
│ └── thesis-template.md blank thesis draft
├── thesis/ ← rolling Master thesis draft
│ └── thesis-draft.md single source of truth — update before each meeting
├── slides/ ← interactive presentation decks (Slidev, built static HTML)
│ └── ddcm/ main DDCM research deck — rebuild with: slidev build --base /reports/slides/ddcm/
├── ddcm/ ← standalone HTML reports
│ └── work_timing_analysis.html
├── meetings/ ← per-meeting discussion docs
│ ├── 2025-fall/ M1 Fall 2025 (archive)
│ │ ├── *.md meeting docs
│ │ └── presentations/*.pdf slide exports for that semester
│ └── 2026-spring/ M2 Spring 2026 (current)
│ ├── *.md meeting docs
│ ├── figures/*.png figures used in meeting docs
│ └── presentations/*.pdf slide exports for that semester
Updating the slides deck: The slides/ddcm/ folder is a built Slidev output (not source). To rebuild after editing 4 - Projects/ddcm/ddcm_slides/slides.md:
cd "4 - Projects/ddcm/ddcm_slides"
npx slidev build --base /reports/slides/ddcm/
rsync -a --delete dist/ "../../../3 - Permanent Notes/reports/slides/ddcm/"
Then commit and push the updated slides/ddcm/ folder in the reports repo.
Two documents per meeting (HIIRM convention):
- Research overview → always
thesis/thesis-draft.md. Do not duplicate per meeting — update the single draft, Git history preserves versions. - Meeting-day discussion doc → a new file in
meetings/<semester>/, based ontemplates/meeting-template.md. Concise: what to discuss, current situation, stuck points, confirmations.
The big picture
I am building a computational framework that makes activity-based DDCM estimation tractable at city scale, and re-specifying its utility function so that activity timing emerges from preferences rather than from hard-coded rules.
Two things have been bottlenecks in activity-based demand modelling:
- State-space explosion — a single city has ~145 million states when you multiply time, zone, activity, duration, mode, vehicle, and history. Estimating anything on that is a 1000-CPU-day / 6.7 TB problem.
- Timing is usually assumed, not estimated — classic specs bolt hard time windows onto the model (e.g. “work happens 6 am–10 pm”). So behaviour is partly an input, not an output.
My contribution has three pieces:
| # | Piece | What it does |
|---|---|---|
| 1 | DDCM as a DAG | Time only moves forward, so the state-transition graph has no cycles. Backward induction is a reverse topological sort over a DAG — which means a GPU can process each time level in one batched kernel. |
| 2 | Reachability pruning | A forward BFS from feasible starts, with Hägerstrand space-time-prism constraints, keeps only states an agent can actually reach. 145M → 1.5M (~1%), no approximation. |
| 3 | μ(t) utility | Each activity gets a time-varying marginal-utility profile μₐ(t). Trip-making emerges from the gradient. Timing becomes an output. |
End-to-end result so far: full pipeline ~69 hours → 105 seconds (~2,400×), memory 6.7 TB → 6.5 GB, on a 144-zone Higashi-Hiroshima city network.
Current semester — M2 Spring 2026
Per-meeting discussion docs. Update thesis/thesis-draft.md before each meeting; add a new meeting doc per session.
| Date | Meeting Doc | Slides | Event / context |
|---|---|---|---|
| 2026-05-11 | Research Progress (M2, May 11, 2026) | — | Weekly progress. K=10 L-BFGS-B convergence (LL=−19,187, BHHH SEs), work timing gap analysis, 11 new lit reviews, JSPS outline finalized. |
| 2026-04-27 | Research Progress (M2, Apr 27, 2026) | — | Weekly progress. Gradient bug fixes (forbidden_masks, zone ID), c_change ridge diagnosis, cumulative utility diagnostic planned; JSPS/thesis writing updates. |
| 2026-04-19 | Master Thesis Progress (M2, April 2026) | April_Seminar_Presentation.pdf | M2 mid-semester progress presentation. Framework, μ(t), results, estimation diagnosis. |
Thesis draft (research overview document): thesis/thesis-draft.md.
Last semester — Archive (M1 Fall 2025)
Older reports kept for reference. These predate the DAG / reachability / μ(t) reframing and are not the current state of the work.
| Date | Report | Topic |
|---|---|---|
| 2025-10-08 | PUMCM for Activity-Based Models | Not used. Early brainstorm on PUMCM. |
| 2025-10-15 | Ideas on TD Estimation on DDCM | TD-learning ideas for DDC estimation. |
| 2025-11-04 | Readings & Implementation Plans | Lit-review notes + implementation roadmap. |
| 2025-11-09 | SMASO-X Presentation Summary | Summary of the SMASO-X talk. |
| 2025-11-26 | Tensor-Based Summary Update | Early tensor-graph framework write-up. |
| 2025-12-15 | Documentation & Re-framework | Algorithmic re-framework progress. |
| 2025-12-24 | Universal Graph & BI Optimization | Shared-graph structure + BI tuning. |
| 2026-01-07 | RMDP Theory & Implementation | Relational MDP theory + lifted solvers. |
| 2026-01-27 | Progress on Validation Plan | Seven-layer validation framework. |
Slide decks and PDFs from last semester: meetings/2025-fall/presentations/.
How to prepare for a meeting (HIIRM workflow)
- Update the thesis draft (
thesis/thesis-draft.md) to reflect current progress. Mark unwritten parts withTODO:. - Write a meeting-day doc — copy
templates/meeting-template.mdintomeetings/<semester>/YYMMDD - <short title>.mdand fill in:- What you want to discuss today (1–3 items)
- Current situation (what you did / what slipped)
- Definitions of any new terms
- Your own thoughts on each discussion item
- Where you are stuck
- Things to confirm
- Computational results, each with a link back to the generating code
- Commit and push to
azwanazamuddin/reports(this repo). - In the meeting, spend the first few minutes reading silently — no verbal explanation needed up front.
- After the meeting, fill in the “Action Items for Next Meeting” block at the bottom of the meeting doc.
Full instructions: templates/instructions.md.
Related in the vault
- Master thesis detailed outline —
3 - Permanent Notes/research-plan/MASTER_THESIS_OUTLINE.md - Research roadmap —
3 - Permanent Notes/research-plan/RESEARCH_PLAN.md - DDCM map of content —
5 - Indexes/index-ddcm.md - Active implementation —
4 - Projects/ddcm/ - Editable slide source (Slidev) —
4 - Projects/ddcm/ddcm_slides/slides.md