fanboykun / decisionsupportsystem
决策支持系统方法计算器
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
这是一个用于执行决策支持系统某些方法的Laravel包。请确保始终使用最新版本的Laravel,最低PHP版本为7.4。
安装
您可以通过Composer安装此包
composer require fanboykun/decissionsupportsystem
您不需要进行任何配置,它已经准备好了,可以直接使用,因为它的功能仅基于您选择的方法进行计算(以下将进行解释)
使用方法
在您的控制器中导入类
use Fanboykun\DecissionSuppportSystem\DecissionSuppportSystem;
然后在您的函数中将其用作参数,例如
public function calculate (DecissionSupportSystem $decissionSupportSystem) { // for example, let's use moora as the method, you can choose what method you want to use, method list and the function are available below $result = $decissionSupportSystem->mooraOperator($your_data_to_calculate); return $result; }
或者您也可以创建一个新的类实例,例如
public function calculate () { // for example, let's use moora as the method, you can choose what method you want to use, method list and the function are available below $decissionSupportSystem = new DecissionSupportSystem(); $result = $decissionSupportSystem->mooraOperator($your_data_to_calculate); return $result; }
注意:返回的数据类型是数组,返回的数据如下示例所示
$returned_data = [ ['alternative_id' => 1, 'optimized_value' => 0.9, 'rank' => 1,], ['alternative_id' => 2, 'optimized_value' => 0.8, 'rank' => 2,], ['alternative_id' => 3, 'optimized_value' => 0.6, 'rank' => 3,], ['alternative_id' => 4, 'optimized_value' => 0.5, 'rank' => 4,], ['alternative_id' => 5, 'optimized_value' => 0.4, 'rank' => 5,], ]
索引的键是 alternative_id,按照 optimized_value 的值排序,并添加一个名为 rank 的索引。
所需数据
以下是所需和接受的数据示例,请确保遵循此步骤,因为读取和计算数据取决于数组索引名称。您可能具有不同的索引名称,因此您必须映射其名称和值。
从数据库获取数据并映射示例
public function getData(DecissionSupportSystem $decissionSupportSystem) : array { $data_to_calculate = Criteria::with('alternatives')->get() ->map(function ($item, $key){ return [ 'criteria_id' => $item->id, 'name' => $item->name, 'type' => $item->is_cost, 'weight' => $item->weight, 'max_value' => $item->max_value, 'alternatives' => $item->alternatives->map(function ($item, $key){ return [ 'alternative_id' => $item->id, 'name' => $item->name, 'value' => $item->pivot->value, ]; })->toArray() ]; })->toArray(); // example, we use moora method $result = $decissionSupportSystem->mooraOperator($data_to_calculate); return $result; }
在上面的示例中,我们使用Eloquent从数据库中获取数据,我们从具有与 Alternative 模型 ManyToMany 关系的 Criteria 模型获取数据。如果您对多对多关系仍然感到困惑,请确保阅读Laravel文档。
可接受的数据类型
从上面的解释中,我们知道要传递的所需数据。以下我将向您展示数据类型
可用方法和其功能
- waspas
waspasOperator()
- moora
mooraOperator()
请记住,您必须使用 DecissionSupportSystem 类,无论是将类作为参数传递到您的函数中,还是在其函数内部创建新的类实例。
目前,可用的方法只有这些,我很快会添加新的方法。
更新日志
请参阅 更新日志 获取有关最近更改的更多信息。
贡献
请参阅 贡献指南 获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 irfanramadhan1812@gmail.com 而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。
Laravel包模板
此包是使用 Laravel包模板 生成的。