中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

視頻 收費 網(wǎng)站怎么做全國網(wǎng)站排名

視頻 收費 網(wǎng)站怎么做,全國網(wǎng)站排名,網(wǎng)站建設(shè)包括哪些,濰坊網(wǎng)站建設(shè)哪里好AHP權(quán)重計算: 需求:前端記錄矩陣維度、上三角值,后端構(gòu)建比較矩陣、計算權(quán)重值并將結(jié)果返回給前端 比較矩陣構(gòu)建 如果你想要根據(jù)上三角(不包括對角線)的值來構(gòu)建對稱矩陣,那么你可以稍作修改上述的generate…

AHP權(quán)重計算:

需求:前端記錄矩陣維度、上三角值,后端構(gòu)建比較矩陣、計算權(quán)重值并將結(jié)果返回給前端

?比較矩陣構(gòu)建

如果你想要根據(jù)上三角(不包括對角線)的值來構(gòu)建對稱矩陣,那么你可以稍作修改上述的generate_symmetric_matrix函數(shù)。在這個情況下,你將從矩陣的左上角開始填充上三角的值,然后利用對稱性填充下三角的值。

def generate_symmetric_matrix_from_upper(i, upper_triangle_values):  """  根據(jù)上三角(不包括對角線)的值和矩陣維度生成對稱矩陣  :param i: 矩陣的維度(i x i)  :param upper_triangle_values: 上三角(不包括對角線)的值列表  :return: 生成的對稱矩陣  """  if len(upper_triangle_values) > i * (i - 1) // 2:  raise ValueError("提供的上三角值數(shù)量超過了上三角(不包括對角線)的元素總數(shù)。")  # 初始化矩陣  matrix = [[1] * i for _ in range(i)]  # 對角線初始化為1  # 填充上三角(不包括對角線)的值  index = 0  for row in range(i):  for col in range(row + 1, i):  # 從當(dāng)前行的下一個元素開始(跳過對角線)  matrix[row][col] = upper_triangle_values[index]  index += 1  # 填充下三角的值(利用對稱性)  for row in range(i):  for col in range(row):  # 只遍歷到當(dāng)前行的前一個元素(不包括對角線)  matrix[row][col] = 1/matrix[col][row]  # 下三角的值等于上三角的值  return matrix  # 示例使用  
i = 3  # 矩陣維度  
upper_triangle_values = [0.6, 3, 5]  # 上三角(不包括對角線)的值  
matrix = generate_symmetric_matrix_from_upper(i, upper_triangle_values)  # 打印矩陣  
for row in matrix:  print(row)
  • 在這個函數(shù)中,我們首先檢查提供的上三角值的數(shù)量是否超過了實際需要的數(shù)量。然后,我們初始化一個所有對角線元素都為1的矩陣。接著,我們遍歷上三角(不包括對角線)并填充提供的值。最后,我們利用對稱性來填充下三角的值。
  • 當(dāng)你運行這個示例時,它將輸出一個3x3的對稱矩陣,其中上三角的值由upper_triangle_values列表提供,而下三角的值則通過對稱性從上三角復(fù)制而來。對角線上的值保持為1。

AHP權(quán)重計算

層次分析法(Analytic Hierarchy Process, AHP)是一種常用的多屬性決策方法,它允許決策者將復(fù)雜的決策問題分解為多個子問題或?qū)傩?#xff0c;并通過兩兩比較的方式來確定這些子問題或?qū)傩缘南鄬χ匾浴R韵率且粋€簡化的Python示例,展示了如何使用層次分析法求解權(quán)重值:

  1. 構(gòu)造判斷矩陣(通過專家打分等方式)
  2. 一致性檢驗
  3. 求解權(quán)重值
import numpy as np  def calculate_consistency_ratio(ci, n):  # 一致性指標(biāo)RI的值與n(判斷矩陣的階數(shù))有關(guān)  ri_values = {  1: 0.0, 2: 0.0, 3: 0.58, 4: 0.9, 5: 1.12,  6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45, 10: 1.49  }  ri = ri_values[n]  cr = ci / ri  return cr  def calculate_ci(matrix):  # 計算一致性指標(biāo)CI  n = matrix.shape[0]  eigenvalues, _ = np.linalg.eig(matrix)  max_eigenvalue = np.max(eigenvalues)  ci = (max_eigenvalue - n) / (n - 1)  return ci  def calculate_weights(matrix):  # 計算權(quán)重值  eigenvalues, eigenvectors = np.linalg.eig(matrix)  max_eigenvalue = np.max(eigenvalues)  max_eigenvector = eigenvectors[:, eigenvalues == max_eigenvalue]  weights = max_eigenvector.flatten().real / np.sum(max_eigenvector.flatten().real)  return weights  def ahp_analysis(matrix):  # AHP分析主函數(shù)  n = matrix.shape[0]  ci = calculate_ci(matrix)  cr = calculate_consistency_ratio(ci, n)  if cr < 0.1:  # 一般情況下,當(dāng)CR<0.1時,認為判斷矩陣的一致性是可以接受的  weights = calculate_weights(matrix)  print("一致性檢驗通過,權(quán)重值為:", weights)  else:  print("一致性檢驗未通過,需要重新調(diào)整判斷矩陣")  # 示例判斷矩陣(假設(shè))  
# 注意:這里的判斷矩陣應(yīng)該是通過專家打分或其他方式構(gòu)造的,并且應(yīng)該滿足互反性  
A = np.array([  [1, 3, 5],  [1/3, 1, 3],  [1/5, 1/3, 1]  
])  ahp_analysis(A)

注意:

  • 上述代碼中的判斷矩陣A是假設(shè)的,實際應(yīng)用中需要根據(jù)實際情況構(gòu)造。
  • 一致性檢驗的閾值通常是0.1,但也可以根據(jù)具體需求進行調(diào)整。
  • 判斷矩陣的構(gòu)造應(yīng)該遵循AHP方法的規(guī)則,即對角線元素為1,且滿足互反性(即A[i][j] = 1 / A[j][i])。
  • 權(quán)重值是通過求解判斷矩陣的最大特征值對應(yīng)的特征向量得到的,并且需要對該特征向量進行歸一化處理。

前后端設(shè)計

在前后端通信中,當(dāng)前端需要傳遞兩個參數(shù)給后端,其中一個參數(shù)是數(shù)組,另一個是int類型時,你需要在前端正確地構(gòu)造請求,并在后端Flask應(yīng)用中設(shè)計相應(yīng)的路由和請求處理函數(shù)來接收這些參數(shù)。

前端(JavaScript 使用?fetch?API)

假設(shè)你正在使用JavaScript的fetch?API來發(fā)送POST請求,你可以將數(shù)組和int值作為JSON對象的一部分發(fā)送。這里是一個例子:

// 假設(shè)你的后端API的URL是'http://example.com/api/data'  
const arrayParam = [1, 2, 3]; // 數(shù)組參數(shù)  
const intParam = 42; // int類型參數(shù)  // 將參數(shù)包裝在一個對象中  
const dataToSend = {  arrayParam: arrayParam,  intParam: intParam  
};  // 將對象轉(zhuǎn)換為JSON字符串  
const jsonData = JSON.stringify(dataToSend);  fetch('http://example.com/api/data', {  method: 'POST',  headers: {  'Content-Type': 'application/json'  },  body: jsonData  
})  
.then(response => response.json())  
.then(data => console.log(data))  
.catch((error) => {  console.error('Error:', error);  
});

后端(Flask)

在后端,你需要在Flask應(yīng)用中創(chuàng)建一個路由,并使用request.json來獲取前端發(fā)送的JSON數(shù)據(jù)。這里是一個例子:

from flask import Flask, request, jsonify  app = Flask(__name__)  @app.route('/api/data', methods=['POST'])  
def receive_data():  if request.method == 'POST':  # 從JSON中解析參數(shù)  array_param = request.json.get('arrayParam', [])  # 默認值為空數(shù)組  int_param = request.json.get('intParam', None)  # 默認值為None,你可以根據(jù)需要設(shè)置默認值  # 檢查int_param是否為int類型  if int_param is not None and not isinstance(int_param, int):  return jsonify({'error': 'intParam must be an integer'}), 400  # 在這里處理你的數(shù)據(jù)...  # 例如,你可以返回接收到的參數(shù)作為確認  return jsonify({'message': 'Data received!', 'arrayParam': array_param, 'intParam': int_param}), 200  else:  return jsonify({'error': 'Invalid request method'}), 405  if __name__ == '__main__':  app.run(debug=True)

在這個例子中,receive_data函數(shù)首先檢查請求方法是否為POST。然后,它從request.json中獲取arrayParamintParam。注意,我使用了get方法來安全地獲取這些值,并為它們提供了默認值(對于arrayParam是一個空數(shù)組,對于intParamNone)。然后,它檢查intParam是否是一個整數(shù),如果不是,則返回一個錯誤響應(yīng)。最后,它返回一個包含接收到的參數(shù)的JSON響應(yīng)。

postman測試:?

后端模塊與接口 :
AHP.py
import jsonimport numpy as npdef calculate_consistency_ratio(ci, n):# 一致性指標(biāo)RI的值與n(判斷矩陣的階數(shù))有關(guān)ri_values = {1: 0.0, 2: 0.0, 3: 0.58, 4: 0.9, 5: 1.12,6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45, 10: 1.49}ri = ri_values[n]cr = ci / rireturn crdef calculate_ci(matrix):# 計算一致性指標(biāo)CIn = matrix.shape[0]eigenvalues, _ = np.linalg.eig(matrix)max_eigenvalue = np.max(eigenvalues)ci = (max_eigenvalue - n) / (n - 1)return cidef calculate_weights(matrix):# 計算權(quán)重值eigenvalues, eigenvectors = np.linalg.eig(matrix)max_eigenvalue = np.max(eigenvalues)max_eigenvector = eigenvectors[:, eigenvalues == max_eigenvalue]weights = max_eigenvector.flatten().real / np.sum(max_eigenvector.flatten().real)return weightsdef ahp_analysis(matrix):# AHP分析主函數(shù)n = matrix.shape[0]ci = calculate_ci(matrix)cr = calculate_consistency_ratio(ci, n)if cr < 0.1:  # 一般情況下,當(dāng)CR<0.1時,認為判斷矩陣的一致性是可以接受的weights = calculate_weights(matrix)print("一致性檢驗通過,權(quán)重值為:", weights)else:print("一致性檢驗未通過,需要重新調(diào)整判斷矩陣")return weightsdef generate_symmetric_matrix_from_upper(i, upper_triangle_values):"""根據(jù)上三角(不包括對角線)的值和矩陣維度生成對稱矩陣:param i: 矩陣的維度(i x i):param upper_triangle_values: 上三角(不包括對角線)的值列表:return: 生成的對稱矩陣"""if len(upper_triangle_values) != i * (i - 1) / 2:raise ValueError("提供的上三角值數(shù)量不匹配。")# 初始化矩陣matrix = [[1] * i for _ in range(i)]  # 對角線初始化為1# 填充上三角(不包括對角線)的值index = 0for row in range(i):for col in range(row + 1, i):  # 從當(dāng)前行的下一個元素開始(跳過對角線)matrix[row][col] = upper_triangle_values[index]index += 1# 填充下三角的值(利用對稱性)for row in range(i):for col in range(row):  # 只遍歷到當(dāng)前行的前一個元素(不包括對角線)matrix[row][col] = 1/matrix[col][row]  # 下三角的值等于上三角的值return matrix# 方法,前端傳來矩陣維數(shù)+上三角值【row1Value1,row1Value2,row2Value2】數(shù)組,自動生成矩陣并返回AHP分析結(jié)果值
def cal_AHP_res(matrixDimension,upper_triangle_values):matrix = generate_symmetric_matrix_from_upper(matrixDimension,upper_triangle_values)A = np.array(matrix)matrix_res=json.dumps(matrix)arr= ahp_analysis(A)# 將其轉(zhuǎn)換為 Python 列表list_arr = arr.tolist()# 將列表轉(zhuǎn)換為 JSON 字符串res = json.dumps(list_arr)return matrix_res,resif __name__ == '__main__':# 生成矩陣示例i = 3  # 矩陣維度upper_triangle_values = [3, 0.75, 0.5]  # 上三角(不包括對角線)的值matrix_res, res=cal_AHP_res(i,upper_triangle_values)//flask接口
@app.route('/ahp', methods=['POST'])
def getAHPRes():matrix_dimension=request.json.get('matrix_dimension')value = request.json.get('upper_values',[])  # 獲取數(shù)值型值 valuesprint(len(value))matrix,weight= cal_AHP_res(matrix_dimension,value)return jsonify({'matrix': matrix,'weight':weight})

http://m.risenshineclean.com/news/58273.html

相關(guān)文章:

  • 沈陽網(wǎng)站建設(shè)技術(shù)公司百度客戶服務(wù)電話是多少
  • 怎么用vscode做網(wǎng)站網(wǎng)站排名優(yōu)化培訓(xùn)
  • 上海網(wǎng)站備案北京發(fā)生大事了
  • 怎么設(shè)計頁面只顯示一頁說說seo論壇
  • 病毒推廣網(wǎng)站網(wǎng)絡(luò)營銷怎么做
  • wordpress 全景插件軟件排名優(yōu)化
  • 手機網(wǎng)站模板更換方法sem網(wǎng)站推廣怎么做
  • 辦公用品網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣企業(yè)
  • 有了php源碼怎么做網(wǎng)站公司網(wǎng)絡(luò)推廣排名定制
  • 網(wǎng)站的競價怎么做軟件培訓(xùn)機構(gòu)排名
  • 怎么用ngrok做網(wǎng)站百度品牌廣告收費標(biāo)準(zhǔn)
  • 網(wǎng)站開發(fā)的就業(yè)前景如何沈陽網(wǎng)站制作公司
  • 做茶評的網(wǎng)站谷歌seo排名優(yōu)化服務(wù)
  • 哪些購物網(wǎng)站做的比較簡潔有品質(zhì)手機端網(wǎng)站優(yōu)化
  • 設(shè)計業(yè)務(wù)網(wǎng)站競價是什么意思
  • 網(wǎng)站建設(shè)推廣新聞成都疫情最新情況
  • 安徽服飾網(wǎng)站建設(shè)萬網(wǎng)域名官網(wǎng)
  • 淘寶網(wǎng)網(wǎng)站開發(fā)今日頭條新聞軍事
  • wordpress 怎么上傳文件到根目錄網(wǎng)站優(yōu)化培訓(xùn)班
  • 免費網(wǎng)站建設(shè)信息搜狐綜合小時報2022113011
  • 做網(wǎng)站app免費的行情軟件app網(wǎng)站
  • 品牌網(wǎng)站怎么做一網(wǎng)信息一個簡單便捷的新聞網(wǎng)站
  • 網(wǎng)站數(shù)據(jù)庫5g北京百度網(wǎng)站排名優(yōu)化
  • 吉林網(wǎng)站建設(shè)業(yè)務(wù)日本shopify獨立站
  • 微信公眾號 視頻網(wǎng)站開發(fā)網(wǎng)絡(luò)營銷推廣流程
  • 搬瓦工vps做網(wǎng)站速度怎么樣營銷方案怎么寫
  • 超級簡歷模板官網(wǎng)北京seo公司公司
  • 做餐飲網(wǎng)站建設(shè)下載谷歌瀏覽器并安裝
  • 網(wǎng)站營銷外包如何做網(wǎng)推技巧
  • 網(wǎng)站開發(fā)的小結(jié)騰訊營銷平臺