fanboykun/decisionsupportsystem

决策支持系统方法计算器

v1.0-beta 2021-11-09 20:23 UTC

This package is auto-updated.

Last update: 2024-09-22 15:16:11 UTC


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包模板 生成的。