# Swiftpack.co - ejjonny/swift-slime as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
ejjonny/swift-slime 1.0.0
A lightweight stochastic optimizer based on slime mold (Slime Mold Algorithm)
⭐️ 2
🕓 2 days ago
.package(url: "https://github.com/ejjonny/swift-slime.git", from: "1.0.0")

# Slime

This is a Swift implementation of a Slime Mold Algorithm - a stochastic optimizer - generally based on this paper

The only dependency required by Slime is `SwiftNumerics`

# Visual Examples

Searching for the global maxima of `-abs(x + 100000) - abs(y + 100000) + sin(10 * x)`

Searching for the shortest path visiting 50 locations (traveling salesman)

# Use the Slime

In a SwiftPM project:

Add the following line to the dependencies in your Package.swift file:

``````.package(url: "https://github.com/ejjonny/slime", from: "1.0.0"),
``````

Add Slime as a dependency for your target:

``````.target(
name: "MyTarget",
dependencies: [
.product(name: "Slime", package: "Slime"),
]
),
``````

Add `import Slime` to your swift file.

``````var slime = Slime(
populationSize: 10,
maxIterations: 100,
lowerBound: [-1, -1],
upperBound: [1, 1],
method: .minimize, // Use .maximize if higher fitness values are better
fitnessEvaluation: { vector in
let x = vector[0]
let y = vector[1]
// Return a fitness value Double using the proposed vector
}
)
slime.run() // This runs the fitness evaluation many times, among other busy work, & will usually be expensive

slime.bestCells // An array of the top 3 Cells. Use Cell.position for the associated vectors
``````

This example is using a 2 dimensional solution space. The algorithm will work with any number of vector components if you're looking for a solution in hyperspace.

wikiversity

"Slime mold algorithm (SMA) is a population-based optimization technique which is proposed based on the oscillation style of slime mold in nature. The SMA has a unique mathematical model that simulates positive and negative feedbacks of the propagation wave of slime mold. It has a dynamic structure with a stable balance between global and local search drifts."

# TODO:

• Readme walkthrough of the math used in the algorithm
• Explore some deterministic changes

### GitHub

 link Stars: 2 Last commit: 11 hours ago
Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

### Release Notes

1.0.0
2 days ago

Initial release

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics