zomat/php-genetics

此包的最新版本(dev-master)没有可用的许可证信息。

dev-master 2023-09-11 20:41 UTC

This package is auto-updated.

Last update: 2024-09-11 23:03:38 UTC


README

此存储库包含了一个用于解决背包问题的遗传算法的PHP实现。背包问题是一个经典的优化问题,其中给定一组具有相关重量和价值的物品,目标是选择一个物品子集,以在不超过给定重量限制的情况下最大化总价值。

入门指南

以下说明将帮助您理解代码并为您自己的使用设置它。

先决条件

  • PHP 8.1 或更高版本
  • Composer 用于依赖管理

安装

  1. 将存储库克隆到本地计算机
git clone https://github.com/Zomat/php-genetics.git
  1. 导航到存储库目录
cd php-genetics
  1. 使用 Composer 安装所需依赖项
composer install

使用

在 knapsack.php 文件中,您可以找到一个遗传算法的示例配置。您可以通过修改代码中相关值来自定义算法参数和放入背包中的物品。以下是一个示例配置

$gaBuilder = new GeneticsAlgorithmBuilder;

$gaBuilder->setGenerationLimit(1000)
->setPopulationSize(10)
->setMutationLimit(1)
->setMutationProbability(0.5)
->setElitism(true)
->setWeightLimit(3000);

$gaBuilder->setItems(
    new Item('Laptop', 500, 2200),
    new Item('Headphones', 150, 160),
    // Add more items here...
);

try {
    $ga = $gaBuilder->build();
} catch (\Exception $e) {
    exit("Can't build algorithm: {$e->getMessage()}" . PHP_EOL);
}

$result = $ga->run();

echo "Result population: " . PHP_EOL;
echo $result->itemNames . PHP_EOL;
echo " => Fitness: " . $result->fitness . PHP_EOL;
echo " => Generation: " . $result->generation . PHP_EOL;
php knapsack.php

贡献

请随意通过打开问题或提交拉取请求来贡献。您的贡献非常受欢迎!

许可证

本项目采用MIT许可证。