Data and Python code for multiobjective spherical sensor design using angular diversity
Description
This deposit contains Python code and computational results for arranging twelve sensors on a unit sphere. The study considers angular collision, geometric coverage and the loss of angular diversity when one sensor is removed. An NSGA-II-style variant with uniform parent selection is compared with random search over eight seeds, using 2,440 objective evaluations per method and run. The files include all evaluated configurations, objective values, nondominated archives and the selected compromise design. Additional analyses calculate exact dominated fractions within stated reference boxes and describe variation between paired runs. One Fibonacci layout and eight greedy maximin layouts provide geometric comparisons, with coverage checked on denser grids. The results show a trade-off between diversity and coverage; they do not establish better sensing accuracy or general superiority of the evolutionary method. All configurations and observations were generated computationally. Additional checks include an exact sign test, recomputation of 48 archived objective vectors, and fixed-layout angular resolution sensitivity at 18, 36 and 72 bins. These checks do not constitute independent physical validation or reoptimisation at alternative resolutions.
Files
Steps to reproduce
1. Download and extract Mendeley_Data_P4.zip to a writable directory. Open a terminal in the extracted directory containing requirements.txt and README.md. 2. Create a clean Python environment compatible with ENVIRONMENT.txt. Install dependencies with: python -m pip install -r requirements.txt 3. Preserve a copy of the frozen outputs before running any generator. The master seed is 34071985; task-specific offsets and parameters are explicit in the source. 4. Run implementation checks: python revision_experiments.py --task tests 5. Reconstruct the revised summaries from the archived evaluation checkpoints: python revision_experiments.py --task p4 Existing p4_run_*.npz files are reused. To rerun optimization from the fixed seed schedule, first move new_results/ to a separate backup directory, then execute the same command. This is more expensive than reanalysing checkpoints. 6. Inspect exact hypervolume summaries, paired differences, geometric comparator coordinates and dense-grid coverage results in new_results/, and the paired-run figure in new_figures/. 7. To regenerate the original reference experiment for this study only, run: python -c "import sys; sys.path.insert(0,'core'); import run_studies as r; r.setup(); r.paper4()" Its outputs are written to core/results/, core/figures/ and core/tables/. Compare them with the corresponding frozen files in legacy_results/. Do not run the full four-study pipeline merely to reproduce one study. 8. Compare generated numerical summaries with the frozen CSV files and verify file integrity using SHA256SUMS.txt. Timing is hardware dependent; last-bit numerical differences and evolutionary trajectories may differ across platforms. Separate revised outputs from legacy outputs; they are not interchangeable. POST HOC EDITORIAL CHECKS Run python editorial_checks.py to recompute the sign test, audit 48 archived objective vectors and evaluate angular resolution sensitivity. Outputs: editorial_results/checks.json and resolution_sensitivity.csv. This does not rerun the optimisation or replace its frozen outputs. To regenerate the submission figure from frozen values, run python render_editorial_figure.py. Outputs are written to editorial_figures/.
Institutions
- Universidad Nacional de ColombiaBogota D.C., Bogotá