DCA · Algoritmo de planificación
El motor (backend_src/planning_logic.py) asigna canal + ancho a cada radio no congelado de cada AP, minimizando interferencia y respetando la regulación regional.
Conceptos del dominio
- AP / radio / banda: cada AP tiene 0-N radios por banda (2.4: 0-3, 5: 0-8, 6 GHz LPI: 0-3).
- CCI / ACI: interferencia co-canal (solape de sub-canales de 20 MHz) y de canal adyacente (separación mínima en MHz). Métricas en 4 categorías (
metrics.py): internas y con vecinos. - Vecinos: APs a menos de
thresholdmetros (distancia euclídea 2D — limitación conocida y declarada). - Regiones: canales válidos y DFS según
wifi_channel_configurations.json(ETSI/FCC/JP/CN/AU/ROW). - Calibración: 2 puntos + distancia real → escala px/m. Sin escala no hay plan.
Las 2 pasadas
- Greedy — asignación inicial rápida por orden de coste.
- Hill-climbing — refinamiento iterativo que intenta reducir el coste total (conflictos ponderados). 12 parámetros de coste ajustables vía
tuning_panel.
Robustez (F2)
- Presupuesto de tiempo cooperativo (
PLANNING_TIME_BUDGET_SECONDS=45): corte pordeadlineen el bucle de refinamiento y entre bandas → devuelve el mejor plan hasta ese momento + flagtimed_out. Evita colgar un worker Gunicorn. - Tope adaptativo de iteraciones:
min(solicitadas, 50000/nº_radios). - Radios congelados: se revalidan contra el plan resultante (
_detect_frozen_conflicts) y se siembran en el plan.
Límites RF (honestidad, NO modelo de propagación)
El modelo es distancia euclídea 2D: no modela atenuación de paredes, ni potencia TX, ni directividad real. La estrategia es declararlo en el informe y en Help, no fingir una predicción de cobertura (territorio Ekahau). Único refuerzo barato previsto: un factor de obstáculo opcional por pares de APs (multiplica la distancia efectiva). Ver [[concept—dca-tech—plan-mejora]] §F5 y §6 (NO-HACER).
Véase también
- [[concept—dca-tech—overview]]
- [[concept—dca-tech—arquitectura]]
- [[concept—dca-tech—plan-mejora]]