﻿FAHP(Fuzzy Analytical Hierarchy Proess) 模糊层次分析法工具 – 王灿的个人网站

## FAHP(Fuzzy Analytical Hierarchy Proess) 模糊层次分析法工具

1. 这是一个完全免费的工具。
This is a completely free tool.

2. 我不是专业码农，因此不能保证功能不出现问题。如果你在使用中发现任何bug，请和我联系，除了用户电脑本身的问题以外，绝大多数的问题都可以得到及时解决。
It is hard to get rid of all bugs, and I cannot make guarantee for the functionality of the tool. If you find any bug when using it, please contact with me. I promise that most of the problems (expect those caused only by your computer) could be solved in time.

3. 本工具基于Matlab 2015a GUI开发，因此，你的电脑中可能需要安装Matlab Runtime 2015a，具体请看此页
This tool is developed based on Matlab 2015a GUI, thus you might need to install Matlab Runtime 2015a in advance. You can refer to.

FAHP.zip

FAHP是一个易用的模糊层次分析法工具，是对一般的层次分析法的扩展，其主要目的也是通过不同准则之间的两两比较确定各准则的权重。用户可以方便地通过窗口界面定义层次结构，输入或导入成对比较矩阵，执行模糊层次分析（FAHP）或一般的层次分析（AHP），查看和保存结果。
FAHP is a easy-to-use tool for fuzzy analytical hierarchy process, which is a extension of general AHP. It is used for determining the weights of multiple criteria through pairwise comparison. You can conveniently define a hierarchical structure of multiple criteria, input / import pairwise comparison matrix, implement FAHP or general AHP, acquire and save the results.

AHP might be the most famous method for determining weights of multi-criteria. Recently I knew a more advanced method named FANP, i.e. fuzzy analytic network process. FANP differs with AHP in two aspects, the one is ANP instead of AHP, or saying a network structure instead of a hierarchical structure; the other is ‘F’, representing ‘fuzzy’. Currently we have already got some nice tools: yaahp for general AHP, and SD (super decision) for ANP & general AHP. So I just focus on writing a simple tool for the ‘fuzzy’ parts.

In pair comparison of general AHP, when we believe A is ‘moderately important’ than B, we can use a figure, saying ‘5’ to express the relative importance. That actually means the weight of A is 5 times of the weight of B. However, in FAHP, so-called ‘moderately important’ is a fuzzy conception. Can you explain how important is ‘moderately important’? Five times important might be most typical case, while how about 4 or 6 times important? Four times important is not so small to be judged as just ‘slightly important’, and 6 times is also not so great to be judged as ‘very important’. As a matter of fact, in many cases we are not able to accurately tell that figure. Consequently, it’s better to use a fuzzy interval rather than a fixed number.

In this tool, you could set the result of a comparison to a ‘triangular fuzzy scale’, which is defined by three values, namely lowest possible value, most promising value, largest possible value. For instance, if the relative importance (R.I.) of A compared to B is (4,5,6), then A is more important than B, most likely 5 times important, but other values are also possible. A should be at least 4 times important than B, while at most 6 times important. When a possible R.I. is in the range of 4-6, the further it leaves from 5, the lower its possibility; and beyond the range of 4-6, the possibility of any R.I. is zero. This definition gives us a triangular membership function of fuzzy set.

In this way, you could set fuzzy scales for all pairwise comparisons and then run FAHP. I have to say that although FAHP is more correct theoretically, it is still based on one’s subject judgement. What’s more, it seems that FAHP can not provide any new result that a general AHP could not generate.

Following is a example of land use suitability in urban planning illustrating how to use FAHP.

It seems that there exist different algorithms to solve FAHP. This tool will suggest a set of weights summing to one, and calculate the ratios of each two weights, i.e. relative importance (R. I.), then the degree of membership of this R. I. belonging to the fuzzy interval could be generated by triangular membership function. The higher the better.

Considering a case with only two criteria A and B. A is more important than B with the R. I. falling into fuzzy interval (2,3,4). Therefore, if the weight of A is 0.75 and B 0.25, then the ratio of 0.75 to 0.25 is exactly 3, just the same with the most promising value of the fuzzy scale, so the degree of membership is 1 (perfect); on the other hand, if the weight of A is 0.7 and B 0.3, then the ratio of 0.7 to 0.3 is 2.333, not exactly 3 but still between 2 to 4, now the degree of membership is (2.333-2)/(3-2) = 0.333.

When we have more than 2 criteria, we get multiple fuzzy scales of pairwise comparisons. The minimum degree of membership of all comparisons would be regarded as the consistency index of the whole model. Consequently, the finally object is to find a set of weights summing to 1, which maximize the minimum degree of membership.

Such a problem could be converted to a nonlinear program with constrains, which could be solved by fmincon in Matlab.

### This Post Has 6 Comments

1. 您好，想问一下为什么我安装了Matlab Runtime 2015a后，双击FAHP.exe,仍跳出提示说我没有安装Matlab Runtime8.5呢

1. 您好，这个我也不好判断，正常情况下不应该，可以再确认下版本，或者重装一下。如果还不能解决问题，您可以给我发邮件，我发源代码给您，源代码应该是不依赖特定版本的。

2. 請問所寫的fahp為2層，能自己加一層做方案決策嗎

1. 嗯嗯，应该是可以的。

3. 你好, 可以留下wechat嗎？因為我打算用java寫fahp 但是有一點問題完全解決不了

1. wechat在首页有