B1-2: Generative Stage 1b — Greedy алгоритм + STRtree коллизии #55

Closed
opened 2026-05-11 20:31:41 +00:00 by lekss361 · 0 comments
lekss361 commented 2026-05-11 20:31:41 +00:00 (Migrated from github.com)

Эшелон: 🎯 Product gaps — Phase 0 deliverables

Зачем

После B1-1 получим «один вариант». Нужно 3 реально разных + STRtree для производительности.

Что сделать

  • Greedy filling: iterate по grid из B1-1, размещать корпус если нет коллизий (STRtree.query)
  • 3 стратегии:
    • max_area: максимальная плотность, корпуса встык
    • max_insolation: разворот к югу + увеличенные отступы между корпусами
    • balanced: компромисс площадь/инсоляция
  • Performance target: 3 варианта ≤15с для участка 1 га
  • Профилирование cProfile + flame-graph если >15с
  • Pydantic schema ConceptVariant фиксируется здесь (контракт с Person B / frontend B1-4)

Acceptance

  • 3 варианта реально различаются (test: median dist between corpus centroids variant_A vs variant_B >5m)
  • Без коллизий внутри одного варианта
  • p95 latency /concepts ≤15с на 1 га (3 prog runs)
  • ConceptVariant schema в backend/app/schemas/concept.py + TS-types через npm run codegen

Owner

backend-engineer

Effort

~5 дней

Dependencies

  • B1-1 (нужен grid + buildable area)

Risks

  • Greedy может застревать в локальных оптимумах — задокументировать в decisions/Generative_GreedyHeuristic.md
  • STRtree на 1000+ корпусов — memory OK, но проверить
**Эшелон:** 🎯 Product gaps — Phase 0 deliverables ## Зачем После B1-1 получим «один вариант». Нужно 3 реально разных + STRtree для производительности. ## Что сделать - Greedy filling: iterate по grid из B1-1, размещать корпус если нет коллизий (`STRtree.query`) - 3 стратегии: - **max_area:** максимальная плотность, корпуса встык - **max_insolation:** разворот к югу + увеличенные отступы между корпусами - **balanced:** компромисс площадь/инсоляция - Performance target: 3 варианта ≤15с для участка 1 га - Профилирование `cProfile` + flame-graph если >15с - Pydantic schema `ConceptVariant` фиксируется здесь (контракт с Person B / frontend B1-4) ## Acceptance - [ ] 3 варианта реально различаются (test: median dist between corpus centroids variant_A vs variant_B >5m) - [ ] Без коллизий внутри одного варианта - [ ] p95 latency `/concepts` ≤15с на 1 га (3 prog runs) - [ ] ConceptVariant schema в `backend/app/schemas/concept.py` + TS-types через `npm run codegen` ## Owner `backend-engineer` ## Effort ~5 дней ## Dependencies - **B1-1** (нужен grid + buildable area) ## Risks - Greedy может застревать в локальных оптимумах — задокументировать в `decisions/Generative_GreedyHeuristic.md` - STRtree на 1000+ корпусов — memory OK, но проверить
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#55
No description provided.