Calculations with context
FAHP fuzzy criterion-weight calculator
Explore geometric means, fuzzy weights and centroid defuzzification for triangular fuzzy comparisons of two to six criteria.
From imprecise judgments to explicit weights
Compare 2–6 criteria with positive triangular fuzzy numbers. Follow every arithmetic step, inspect contradictions in the modal judgments, and see how changing the input spread affects the final weights.
Implemented variant: triangular-fuzzy row geometric mean, reciprocal-sum fuzzy weights, centroid defuzzification, then crisp normalization. The weighting steps follow Ayhan (2013), section 3, steps 4–7. This is a specified later implementation in the geometric-mean family associated with Buckley; it is not presented as an exact reproduction of Buckley’s original 1985 method.
Synthetic maritime maintenance example
An invented teaching team is discussing the criteria for prioritizing maintenance studies: safety impact, service continuity and maintenance resources. Its three hypothetical judgments are (2, 3, 4), (4, 5, 6) and (1, 2, 3). These numbers are not observations from a vessel or an expert survey. The output weights the criteria only; no equipment, maintenance action or vessel is ranked.
Inputs and CSV creation stay in this page. No calculator data is sent or stored persistently. Downloads happen only on an explicit button click.
Trace the current result
The method and worked example remain readable without JavaScript. Interactive controls are disabled until initialization.
Symbols and arithmetic assumptions
| Symbol | Meaning |
|---|---|
| n; i, j, k | Number of criteria and their indices. |
| ãᵢⱼ = (lᵢⱼ, mᵢⱼ, uᵢⱼ) | Positive triangular comparison of criterion i against j. |
| μ(x) | Membership degree from 0 to 1; not a probability density. |
| r̃ᵢ = (rᵢL, rᵢM, rᵢU) | Componentwise row geometric mean. |
| Sᴸ, Sᴹ, Sᵁ | Sums of the lower, modal and upper row-mean components. |
| w̃ᵢ = (wᵢL, wᵢM, wᵢU) | Approximate triangular fuzzy weight before defuzzification. |
| dᵢ; pᵢ | Centroid value; final normalized crisp weight. |
| s; Δpᵢ | Log-spread scenario multiplier; difference from the current pᵢ. |
For l < m < u, μ(x) rises linearly from 0 at l to 1 at m, then falls linearly to 0 at u. Outside [l, u] it is 0. Coincident endpoints represent a degenerate triangle; l = m = u is a crisp value. Membership is compatibility with a judgment, not frequency.
μ(x) = (x − l)/(m − l), l ≤ x ≤ m; μ(x) = (u − x)/(u − m), m ≤ x ≤ u. (l < m < u)
For positive triples, this implementation uses componentwise addition and multiplication, reciprocal endpoint reversal and componentwise roots. Products, reciprocals and roots of triangular membership functions are generally not exactly triangular under the extension principle. Retaining only three components is the explicit approximation used here; dependencies between a numerator and its sum-denominator are not resolved by interval optimization.
(l₁, m₁, u₁) ⊕ (l₂, m₂, u₂) = (l₁ + l₂, m₁ + m₂, u₁ + u₂)
(l₁, m₁, u₁) ⊗ (l₂, m₂, u₂) ≈ (l₁l₂, m₁m₂, u₁u₂)
The method, step by step
1. Build a reciprocal matrix
ãᵢᵢ = (1, 1, 1); ãⱼᵢ = (1/uᵢⱼ, 1/mᵢⱼ, 1/lᵢⱼ).
2. Aggregate within each row
r̃ᵢ = ((∏ⱼ lᵢⱼ)¹⁄ⁿ, (∏ⱼ mᵢⱼ)¹⁄ⁿ, (∏ⱼ uᵢⱼ)¹⁄ⁿ). Numerically, each component is exp[(Σⱼ ln aᵢⱼ)/n].
3. Form fuzzy weights
Sᴸ = Σᵢ rᵢL; Sᴹ = Σᵢ rᵢM; Sᵁ = Σᵢ rᵢU. Then w̃ᵢ = (rᵢL/Sᵁ, rᵢM/Sᴹ, rᵢU/Sᴸ). The denominator order is reversed.
4. Defuzzify, then normalize
dᵢ = (wᵢL + wᵢM + wᵢU)/3; pᵢ = dᵢ/(Σₖ dₖ). This order matters. Defuzzifying the input matrix first is a different calculation.
Worked synthetic substitution
For the first criterion, r̃₁ = ((1 × 2 × 4)¹⁄³, (1 × 3 × 5)¹⁄³, (1 × 4 × 6)¹⁄³). The complete trace below is calculated from the fixed synthetic example, independent of your editable inputs.
First-criterion substitution
w̃₁ = (2/4.659174; 2.466212/3.803951; 2.884499/3.011532) = (0.4292606; 0.648329; 0.9578179)
d₁ = (0.4292606 + 0.648329 + 0.9578179)/3 = 0.6784692
p₁ = 0.6784692/1.064492 = 0.6373641
Row criterion relative to column criterion; each cell is (l, m, u).
| Criterion | C1 · Safety impact | C2 · Service continuity | C3 · Maintenance resources |
|---|---|---|---|
| C1 · Safety impact | (1; 1; 1) | (2; 3; 4) | (4; 5; 6) |
| C2 · Service continuity | (0.25; 0.3333333; 0.5) | (1; 1; 1) | (1; 2; 3) |
| C3 · Maintenance resources | (0.1666667; 0.2; 0.25) | (0.3333333; 0.5; 1) | (1; 1; 1) |
| Criterion | Row geometric means r̃ᵢ | Fuzzy weight w̃ᵢ | Centroid dᵢ | Normalized weight pᵢ | Rank |
|---|---|---|---|---|---|
| Safety impact | (2; 2.466212; 2.884499) | (0.4292606; 0.648329; 0.9578179) | 0.6784692 | 0.6373641 (63.73641%) | 1 |
| Service continuity | (0.6299605; 0.8735805; 1.144714) | (0.1352086; 0.2296508; 0.3801103) | 0.2483232 | 0.2332786 (23.32786%) | 2 |
| Maintenance resources | (0.3815714; 0.4641589; 0.6299605) | (0.0818968; 0.1220202; 0.2091827) | 0.1376999 | 0.1293574 (12.93574%) | 3 |
(Sᴸ; Sᴹ; Sᵁ) = (3.011532; 3.803951; 4.659174); Σdᵢ = 1.064492
The fuzzy endpoints do not form a jointly attainable probability vector. Their sums generally differ from 1, and an upper endpoint may exceed 1. They are componentwise approximation results, not confidence intervals or guaranteed bounds on all possible normalized crisp weights. Only the final crisp vector p is normalized to sum to 1.
| Criterion | Sum |
|---|---|
| Final crisp weight sum | 1 |
| Modal fuzzy component sum | 1 |
| Fuzzy lower component sum | 0.6463661 |
| Fuzzy upper component sum | 1.547111 |
| Maximum reciprocal-product error | 0 |
Values in the display are rounded. Calculations and exports retain full JavaScript numeric precision. Rank ties use an absolute weight tolerance of 10⁻¹².
Modal-only transitivity diagnostic
For each i < j < k, compare mᵢⱼ × mⱼₖ with mᵢₖ. Exact multiplicative transitivity makes their ratio 1. The displayed maximum mismatch factor is exp(max |ln(mᵢⱼ) + ln(mⱼₖ) − ln(mᵢₖ)|). This descriptive check is not Saaty’s CR and is not a formal fuzzy consistency test. A wide triangle cannot repair contradictory modal judgments.
The modal triads are not exactly transitive. Review the comparisons; no judgment has been automatically changed. This tool applies no acceptability threshold.
Maximum modal mismatch factor: 1.2
| Triad | mᵢⱼ × mⱼₖ | mᵢₖ | Implied / direct |
|---|---|---|---|
| C1 / C2 / C3 | 6 | 5 | 1.2 |
Read the limits before making a decision
- Weights describe relative stated importance, not accident probabilities, failure rates, benefit measures or a maintenance schedule. Ranking criteria does not rank alternatives. No risk threshold, certification or operational recommendation is produced.
- Criterion definitions, hierarchy structure and independence assumptions require judgment outside this calculator. Overlapping criteria can double-count concerns; the tool does not discover missing criteria or dependencies.
- The selected fuzzy-number scale, aggregation rule and defuzzification rule are modeling choices. Other FAHP variants can produce other weights. No method is universally best for every decision.
- The input spread represents imprecision of judgments. It is not a statistical uncertainty model. There is no sampling distribution, parameter estimation or empirical validation here.
- Reciprocity is enforced by construction. Agreement with that construction is a software check, not proof of consistent or credible judgments. Contradictory comparisons remain visible and should be reviewed by the decision maker.
Method provenance
Primary sources checked 8 October 2026. The maritime example, modal diagnostic and spread scenarios are authored educational additions. No publication claims are inferred from this implementation.
- Ayhan (2013), section 3, equations 4–7: implemented weighting sequence; full text.
- Meixner (2009), equations 4–6, 9 and 13–15: triangular operations, geometric group aggregation and centroid context; full text.
- Buckley (1985), Fuzzy hierarchical analysis: founding geometric-mean reference. Bibliographic record and abstract only were verified; no claim of reproducing its full original method.
fahp-tfn-gm-centroid-1.0.0
The calculation interface could not load. The example and explanation below remain readable; reload the page to recalculate.
Related context
The method explanation and worked example are on this page. The articles below provide additional context.
All calculators