https://github.com/alekpopovic/random_search
random_search implementation in elixir
https://github.com/alekpopovic/random_search
elixir
Last synced: 3 months ago
JSON representation
random_search implementation in elixir
- Host: GitHub
- URL: https://github.com/alekpopovic/random_search
- Owner: alekpopovic
- Created: 2025-06-15T00:26:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-15T17:09:27.000Z (about 1 year ago)
- Last Synced: 2026-03-06T05:16:31.176Z (4 months ago)
- Topics: elixir
- Language: Elixir
- Homepage: https://hex.pm/packages/random_search
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RandomSearch
[](https://github.com/alekpopovic/random_search/actions/workflows/elixir.yml)
## Pseudocode for Random Search
```elixir
Input: NumIterations, ProblemSize, SearchSpace
Output: Best
Best ← ∅;
foreach iteri ∈ NumIterations do
candidatei ← RandomSolution(ProblemSize, SearchSpace);
if Cost(candidatei ) < Cost(Best) then
Best ← candidatei ;
end
end
return Best
```
## Usage
```elixir
iex(1)> problem_size = 2
2
iex(2)>
nil
iex(3)> search_space = Enum.map(1..problem_size, fn _i -> [-5, 5] end)
[[-5, 5], [-5, 5]]
iex(4)>
nil
iex(5)> max_iter = 100
100
iex(6)>
nil
iex(7)> RandomSearch.search(search_space, max_iter)
> iteration=1, best=27.211555936224904
> iteration=2, best=11.695082466263408
> iteration=3, best=11.695082466263408
> iteration=4, best=11.695082466263408
> iteration=5, best=7.436281064286609
> iteration=6, best=7.436281064286609
> iteration=7, best=5.398333646980341
> iteration=8, best=5.398333646980341
> iteration=9, best=5.398333646980341
> iteration=10, best=5.398333646980341
> iteration=11, best=5.398333646980341
> iteration=12, best=5.398333646980341
> iteration=13, best=5.398333646980341
> iteration=14, best=5.398333646980341
> iteration=15, best=5.398333646980341
> iteration=16, best=5.398333646980341
> iteration=17, best=5.398333646980341
> iteration=18, best=5.398333646980341
> iteration=19, best=5.137844582377334
> iteration=20, best=5.137844582377334
> iteration=21, best=5.137844582377334
> iteration=22, best=5.137844582377334
> iteration=23, best=5.137844582377334
> iteration=24, best=5.137844582377334
> iteration=25, best=1.843194550462348
> iteration=26, best=1.843194550462348
> iteration=27, best=1.843194550462348
> iteration=28, best=1.843194550462348
> iteration=29, best=1.843194550462348
> iteration=30, best=1.843194550462348
> iteration=31, best=1.843194550462348
> iteration=32, best=1.843194550462348
> iteration=33, best=1.843194550462348
> iteration=34, best=1.843194550462348
> iteration=35, best=1.843194550462348
> iteration=36, best=1.843194550462348
> iteration=37, best=1.843194550462348
> iteration=38, best=0.15059162709981933
> iteration=39, best=0.15059162709981933
> iteration=40, best=0.15059162709981933
> iteration=41, best=0.15059162709981933
> iteration=42, best=0.15059162709981933
> iteration=43, best=0.15059162709981933
> iteration=44, best=0.15059162709981933
> iteration=45, best=0.15059162709981933
> iteration=46, best=0.15059162709981933
> iteration=47, best=0.15059162709981933
> iteration=48, best=0.15059162709981933
> iteration=49, best=0.15059162709981933
> iteration=50, best=0.15059162709981933
> iteration=51, best=0.15059162709981933
> iteration=52, best=0.15059162709981933
> iteration=53, best=0.15059162709981933
> iteration=54, best=0.15059162709981933
> iteration=55, best=0.15059162709981933
> iteration=56, best=0.15059162709981933
> iteration=57, best=0.15059162709981933
> iteration=58, best=0.15059162709981933
> iteration=59, best=0.15059162709981933
> iteration=60, best=0.15059162709981933
> iteration=61, best=0.15059162709981933
> iteration=62, best=0.15059162709981933
> iteration=63, best=0.15059162709981933
> iteration=64, best=0.15059162709981933
> iteration=65, best=0.15059162709981933
> iteration=66, best=0.15059162709981933
> iteration=67, best=0.15059162709981933
> iteration=68, best=0.15059162709981933
> iteration=69, best=0.15059162709981933
> iteration=70, best=0.15059162709981933
> iteration=71, best=0.15059162709981933
> iteration=72, best=0.15059162709981933
> iteration=73, best=0.15059162709981933
> iteration=74, best=0.15059162709981933
> iteration=75, best=0.15059162709981933
> iteration=76, best=0.15059162709981933
> iteration=77, best=0.15059162709981933
> iteration=78, best=0.15059162709981933
> iteration=79, best=0.15059162709981933
> iteration=80, best=0.15059162709981933
> iteration=81, best=0.15059162709981933
> iteration=82, best=0.15059162709981933
> iteration=83, best=0.15059162709981933
> iteration=84, best=0.15059162709981933
> iteration=85, best=0.15059162709981933
> iteration=86, best=0.15059162709981933
> iteration=87, best=0.15059162709981933
> iteration=88, best=0.15059162709981933
> iteration=89, best=0.15059162709981933
> iteration=90, best=0.15059162709981933
> iteration=91, best=0.15059162709981933
> iteration=92, best=0.15059162709981933
> iteration=93, best=0.15059162709981933
> iteration=94, best=0.15059162709981933
> iteration=95, best=0.15059162709981933
> iteration=96, best=0.15059162709981933
> iteration=97, best=0.15059162709981933
> iteration=98, best=0.15059162709981933
> iteration=99, best=0.15059162709981933
> iteration=100, best=0.15059162709981933
%{vector: [0.04869593956801754, -0.3849939383541088], cost: 0.15059162709981933}
```
## Installation
```elixir
def deps do
[
{:random_search, "~> 0.1.0"}
]
end
```
Documentation can be found at .