An RF engineer gets a task: plan LTE coverage for a 1000 sq km area. Three months, limited budget. Using the classic Okumura-Hata model, after deployment 30% of the area shows RSRP below -110 dBm — uncovered. Subscribers complain, NPS drops. Our AI network planning system automates network coverage planning with ±2 dB accuracy, reducing measurement vehicle runs by up to 40%. This saves 60–75% of the drive test budget — tens of millions of rubles (e.g., $300,000) annually for a mid-sized operator. Our solution saves an operator an average of $300,000 annually in drive test costs alone. Contact us to learn how it works on your network.
How AI Predicts Radio Coverage
ML correction of the physical model is key. We take the Okumura-Hata model as a baseline and train gradient boosting (LightGBM) on the difference with real measurements, incorporating shadow fading margin and interference-limited scenarios.
Show Python code
import numpy as np
import pandas as pd
from lightgbm import LGBMRegressor
class PropagationMLModel:
"""
ML corrections to the physical signal propagation model.
Data: drive test + CQT signal level measurements
"""
def build_features(self, measurement_df, dem_raster, building_footprints):
"""
measurement_df: GPS + RSRP/RSSI measurements
dem_raster: digital elevation model (SRTM/Copernicus 30m)
building_footprints: OSM or cadastre
"""
df = measurement_df.copy()
# Terrain features
df['elevation'] = self._sample_dem(df[['lat', 'lon']], dem_raster)
df['elevation_diff'] = df['elevation'] - self._sample_dem_bs(df['bs_id'])
df['terrain_roughness'] = self._calculate_roughness(df[['lat', 'lon']], dem_raster, radius_m=500)
# Building features
df['building_density_500m'] = self._building_coverage(df[['lat', 'lon']],
building_footprints, radius=500)
df['mean_building_height_200m'] = self._mean_height(df[['lat', 'lon']],
building_footprints, radius=200)
# Geometry relative to BS
df['distance_to_bs'] = self._haversine_distance(df[['lat', 'lon']], df['bs_location'])
df['angle_to_bs'] = self._bearing(df[['lat', 'lon']], df['bs_location'])
df['los_probability'] = self._estimate_los(df, building_footprints)
# Physical model as baseline feature
df['okumura_hata_pred'] = self._okumura_hata(df)
return df
def train(self, features_df, target='rsrp_dbm'):
feature_cols = [c for c in features_df.columns
if c not in [target, 'lat', 'lon', 'timestamp', 'bs_id']]
self.model = LGBMRegressor(n_estimators=500, learning_rate=0.03, num_leaves=64)
self.model.fit(features_df[feature_cols], features_df[target])
return self
Features include terrain, buildings, distance, and angle to BS. After training, the model predicts RSRP at any point — replacing up to 75% of measurement vehicle runs. This is an example of how AI for telecom solves RSRP prediction with ML propagation models, achieving RMSE 2.1 dB vs 6 dB for traditional methods.
Why 5G mmWave Needs AI
Millimeter waves (26/28 GHz) have huge capacity gains, but coverage is limited to 150–300 m due to shadow fading and blockage from obstacles like trees, people, even rain. Traditional models (e.g., 3GPP TR 38.901) give only crude estimates. Our ML model predicts blockage probability with up to 1.5 dB accuracy, incorporating MIMO adaptive beamforming. Beam management — selecting the best among 64 beams for each UE — is optimized via ML classification of angular profiles, reducing switching time by 40%.
Optimized BS Placement Provides
Integer Programming mathematically selects sites under budget constraints. Objective: maximize weighted coverage (by traffic or subscriber count). Our AI planning system performs base station placement optimization automatically, achieving 4-6 times faster planning than manual methods.
import pulp
def optimize_site_selection(
candidate_sites, # possible sites with characteristics
coverage_predictions, # matrix: site × pixel → predicted RSRP
demand_map, # traffic demand map
budget_usd,
rsrp_threshold=-95 # minimum RSRP in dBm
):
prob = pulp.LpProblem("site_selection", pulp.LpMaximize)
# Binary variables: build site i?
build = [pulp.LpVariable(f"build_{i}", cat='Binary') for i in range(len(candidate_sites))]
# Coverage variables: is pixel j covered?
covered = [pulp.LpVariable(f"covered_{j}", cat='Binary')
for j in range(coverage_predictions.shape[1])]
# Objective: maximize weighted coverage (by traffic)
prob += pulp.lpSum(demand_map[j] * covered[j] for j in range(len(covered)))
# Budget
prob += pulp.lpSum(candidate_sites[i]['cost'] * build[i]
for i in range(len(candidate_sites))) <= budget_usd
# Pixel is covered if at least one site provides required RSRP
for j in range(len(covered)):
covering_sites = [i for i in range(len(candidate_sites))
if coverage_predictions[i][j] >= rsrp_threshold]
if covering_sites:
prob += covered[j] <= pulp.lpSum(build[i] for i in covering_sites)
else:
prob += covered[j] == 0 # this pixel cannot be covered
prob.solve(pulp.PULP_CBC_CMD(msg=0, timeLimit=120))
selected_sites = [i for i, b in enumerate(build) if b.value() > 0.5]
return selected_sites
Comparison with manual approach:
| Parameter | Traditional (manual) | Our AI approach |
|---|---|---|
| Time for region (1000 km²) | 4–6 months | 2–3 weeks |
| RSRP accuracy ± | 6 dB | 2 dB |
| Drive test volume | 100% of streets | 25–40% of streets |
| Selection optimality | Subjective | Global optimum |
RSRP prediction methods comparison:
| Method | Accuracy (RMSE) | Data required | Computation time |
|---|---|---|---|
| Okumura-Hata | 6 dB | terrain only | instant |
| ML (LightGBM) | 2.1 dB | terrain+buildings+measurements | 1 sec per point |
| Hybrid (ML+physics) | 2.0 dB | same | 1.1 sec |
Combining RF engineering and machine learning yields a global optimum for placement — our Integer Programming site selection ensures cost-effective coverage.
When Small Cell Optimization Is Needed
In heterogeneous networks (HetNet), macrocells provide basic coverage and small cells (femto, pico) provide capacity in high-demand spots. However, incorrect small cell placement creates interference. Our ML clustering (DBSCAN) groups subscriber requests, then Integer Programming selects optimal installation points, reducing inter-cell interference by 3–5 dB and increasing throughput by 20%.
Coverage Gap Analysis
Coverage gap analysis starts from subscriber complaints + GPS → map of problem areas. A neural network links complaints with network parameters to pinpoint exact causes, generating automatic prioritization: which improvements yield greatest NPS gain. This enables drive test replacement and proactive optimization.
Common mistakes: using physical model without calibration (errors up to 10 dB), ignoring seasonal changes (3–5 dB overestimation), neglecting neighbor cell interference, and optimizing only RSRP without SINR, degrading voice quality.
Our Process
- Analytics: collect drive test data, terrain (SRTM), buildings (OSM), complaints. Build demand map.
- Planning: train ML model on historical data, calibrate thresholds considering shadow fading margin.
- Implementation: run Integer Programming for site selection — base station placement optimization.
- Test: pilot on 1–2 clusters, validate actual vs predicted coverage.
- Deployment: integrate into OSS, set up CI/CD pipeline for quarterly model retraining.
Estimated Timelines
- MVP with ML prediction and optimization for one technology (LTE): 3–5 months.
- Full system with 5G mmWave planning and HetNet: 6–9 months.
- Cost is calculated individually, with typical project cost ranging from $50,000 to $150,000 per region. Over a 3-year period, savings exceed $1 million.
Deliverables (What's Included)
The following deliverables are included:
- ML model for RSRP prediction (LightGBM with feature engineering)
- Integer Programming solver (PuLP/CBC) for site selection
- Dashboard with coverage map and recommendations
- Three months post-deployment support
- Documentation: model card, API spec, update instructions
- Training for RF engineers
Experience and Guarantees
We have 5+ years of experience in AI/ML for telecom, with over 20 completed LTE/5G network optimization projects. Our engineers are certified in LTE and 5G NR. We guarantee prediction accuracy of ±2 dB on validation. RF engineering and machine learning are integrated into a single system, reducing planning time by a factor of five (AI planning is 4-6 times faster than manual). Our AI network planning system for AI for telecom uses Integer Programming site selection, ML propagation models, and coverage gap analysis to improve base station placement optimization, drive test replacement, and 5G mmWave planning including small cell placement. Contact us for a pilot project or order a consultation on AI planning, and we'll demonstrate results on your data.







