Skip to content

feat: minor SEO and documentation improvements - #59

Merged
pFornagiel merged 6 commits into
mainfrom
docs/seo-improvements
Oct 17, 2026
Merged

pFornagiel merged 6 commits into
mainfrom
docs/seo-improvements

Conversation

@pFornagiel

Copy link
Copy Markdown
Collaborator

This PR makes the docs site and README better optimised for SEO and introduces small editorial changes. No library behaviour changes; the only code edits are to docstrings.

SEO and site metadata

  • docs/overrides/main.html: adds Open Graph and Twitter card meta tags with per-page title and description, plus an optional google-site-verification meta tag driven by extra.google_site_verification in mkdocs.yml.
  • JSON-LD: the old description said "continuous optimization" only. It now covers both continuous and discrete. Also adds alternateName, installUrl, sameAs and isAccessibleForFree, and broadens the keywords.
  • Page descriptions: adds a description front-matter field to the API reference pages, contributing.md and user-guide/discrete.md.
  • Site config: site_description now mentions both continuous and discrete optimization, and the homepage title is now "Local Optima Networks in Python".
  • Navigation: adds the missing pages Discrete Problems, API → Step Size and API → Discrete.
  • Copyright: updated to 2025-2026.

README

  • Adds an H1, image alt text, and Documentation and License badges.
  • Rewrites the Features list to cover discrete ILS, parallelization, step-size estimation and performance metrics.
  • Expands the Documentation section with direct links to key pages, and adds a References section citing the LON papers.

Parallel sampling docs (user-guide/sampling.md)

  • Adds a single Parallel Execution section with:
    • a table of every n_jobs value
    • notes on serialization and overhead
    • the reproducibility guarantee
    • a comparison of how BasinHoppingSampler and ILSSampler order results and time progress callbacks
  • The duplicated n_jobs explanations in the Basin-Hopping, ILS and discrete.md config tables now link to that section.

Docstrings

  • Removes the phrase "matching the earlier behavior" from the preserve_runs_without_transitions docstrings in both samplers, because that earlier behaviour was never defined.

@pFornagiel
pFornagiel requested a review from WojtAcht October 17, 2026 08:21
Comment thread README.md Outdated
- **CMLON Support**: Compressed Monotonic LONs for cleaner landscape analysis
- **Rich Metrics**: Compute landscape metrics including funnel analysis and neutrality
- **Beautiful Visualizations**: 2D and 3D plots with support for animated GIFs
- **LON Construction**: Local Optima Networks as `igraph` graphs generated from sampled data with support for Compressed Monotonic LONs (CMLONs) representation.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording: "with support for Compressed Monotonic LONs (CMLONs) representation" reads awkwardly. Maybe: "…generated from sampled data, including Compressed Monotonic LONs (CMLONs)."

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed in 0dfc15d, it does sound better

Comment thread README.md Outdated
- **Rich Metrics**: Compute landscape metrics including funnel analysis and neutrality
- **Beautiful Visualizations**: 2D and 3D plots with support for animated GIFs
- **LON Construction**: Local Optima Networks as `igraph` graphs generated from sampled data with support for Compressed Monotonic LONs (CMLONs) representation.
- **Continuous landscape exploration**: Configurable Basin-Hopping algorithm for data sampling, with automatic step-size estimation and pararellization.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "pararellization" → "parallelization".

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0dfc15d

Comment thread README.md Outdated
- **Continuous landscape exploration**: Configurable Basin-Hopping algorithm for data sampling, with automatic step-size estimation and pararellization.
- **Discrete landscape exploration**: Iterated Local Search sampler, with parallelization, built-in problems (OneMax, NK Landscape, Number Partitioning) and classes to define custom problem instances.
- **Landscape metrics**: Funnel analysis, neutrality, global and sink strength, plus search performance (success rate, deviation from the known optimum).
- **Visualization**: Configurable 2D and 3D LON plots, and animated rotating GIFs.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double space after the bullet dash (- **Visualization**).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0dfc15d

Comment thread README.md Outdated
### Custom Discrete Problems

You can define your own discrete problem by subclassing `DiscreteProblem`. For bitstring problems, inherit from `BitstringProblem` instead; it provides `random_solution()`, `local_search()`, `perturb()`, and `solution_id()` out of the box. You only need to implement `evaluate()`.
You can define your own discrete problem by subclassing `DiscreteProblem`. You can also extend built-in problems - for bitstring problems, extend `BitstringProblem`, which it provides `random_solution()`, `local_search()`, `perturb()`, and `solution_id()` out of the box, so you only need to implement `evaluate()`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar: "extend BitstringProblem, which it provides…" → "which provides…".

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0dfc15d

@WojtAcht WojtAcht left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@pFornagiel
pFornagiel merged commit e3b4614 into main Oct 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants