首页
社区
课程
招聘
[分享]Fuzzy + Security (business-to-consumer trust in electronic commerce)
发表于: 2009-5-29 05:12 6091

[分享]Fuzzy + Security (business-to-consumer trust in electronic commerce)

2009-5-29 05:12
6091
A fuzzy logic-based system for assessing the level of business-to-consumer (B2C) trust in electronic commerce

Fahim Akhter a,*, Dave Hobbs b, Zakaria Maamar c
a College of Information Systems, Zayed University, Box 19282, Dubai, UAE
b University of Bradford, Bradford, West, Yorkshire, UK
c Zayed University, Dubai, UAE

Abstract

The purpose of this paper is to present an application of fuzzy logic to human reasoning about electronic commerce (e-commerce) transactions. This paper uncovers some of the hidden relationships between critical factors such as security, familiarity, design, and competitiveness. We analyze the effect of these factors on human decision process and how they affect the Business-to-Consumer (B2C) outcome when they are used collectively. This research provides a toolset for B2C vendors to access and evaluate a user's transaction
decision process, and also an assisted reasoning tool for the online user.

※ 这篇 paper 是我于 2005 年向 Dave Hobbs 索取的,Fahim Akhter 当年的博导应该就是 Dave Hobbs,后来 Fahim Akhter 博士回到 Dubai 知名的大学 Zayed University 任教。
A fuzzy logic-based system for assessing the level of business-to-consumer (B2C) trust in electronic commerce 的精华在于 Table 1 及 Table 2 中,但作者很巧妙的留了一手。
作者发表这篇论文时,Electronic Commerce 的技术及应用非常纯熟,且 Fuzzy 的应用更是达到颠峰,说穿了,就是能做的题目都有人做了,要变出新花样真的有些难度。作者就利用 Fuzzy 的技术来探讨 website 的 security degree,而且刊登在 Expert Systems with Applications 这个期刊上,我猜作者应该是「投石问路」。
第二篇论文 A Fuzzy logic-based Approach for Supporting Decision-Making
Process in B2C Electronic Commerce Transaction 其实就是跟第一篇差不多,它的关键技术还是在 Table 1 及 Table 2,但这次的“关键”总算是放出来没有留一手了。我猜作者也没再留一手的必要。Why? International Journal of E-business Research 期刊的评价比 Expert System with Application 的还要高。Expert 这个是俗称的 SCI paper,而 E-Business 的是 SSCI paper。
第二篇我又向 Dave Hobbs 教授要,因为他没有,所以他请 Fahim Akhter 博士 email 给我,可是 Fahim Akhter 博士没给我电子文件,他只给我 scan paper to pdf file, 由于 file 太大,我把 files 分割成两部份放上来。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 274
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
恩,我觉得现在对模糊逻辑的研究挺全面的,可以主要研究对模糊逻辑的应用领域进行扩展,以及模糊逻辑与其他智能算法的结合方面。
我本人对模糊逻辑很感兴趣,希望多和楼主交流。
2009-5-30 20:47
0
雪    币: 2096
活跃值: (100)
能力值: (RANK:420 )
在线值:
发帖
回帖
粉丝
3
感興趣? 喔~那恭喜您~
不過~您得先學好 fuzzy 後~才有辦法和您一起討論~
不然會有雞同鴨講的問題 or 對牛彈琴狀況發生~
2009-5-30 21:10
0
雪    币: 274
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
不能够,
看着隶属度函数曲线和模糊规则库老亲切了。
2009-5-31 14:56
0
雪    币: 2096
活跃值: (100)
能力值: (RANK:420 )
在线值:
发帖
回帖
粉丝
5
不太懂您的意思~可以再說白話一點嗎?
什麼老親切的.....(不好意思.....我台灣來的....有些用詞我...還再學習中)
2009-5-31 17:12
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
6
to R大:

"不能够," :  我也不知道wangfir是什么意思.

"看着隶属度函数曲线和模糊规则库老亲切了"的意思是: 看着属度函数曲线模糊规则库 很亲切.

P.S.
"老亲切"的意思就是"很亲切", 想必wangfir哥们是来自东北的兄弟了. 据我自己的经验, 东北的兄弟说"老","挺"比较频繁; 而像我说"很","蛮"比较多, 比如"很好看","蛮漂亮的".
2009-5-31 23:57
0
雪    币: 97697
活跃值: (200839)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
熟练 或者 很了解.
2009-5-31 23:59
0
雪    币: 274
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
Sorry
我以后说普通话。
2009-6-8 21:16
0
雪    币: 2096
活跃值: (100)
能力值: (RANK:420 )
在线值:
发帖
回帖
粉丝
9
原來如此,學習到此一用詞。
謝謝大家解說。

To wangfir 大大~
既然很熟練,那可以開始進入主題,這篇可以繼續做出很棒的東西。
請來研~
謝謝~


Fig 1: Executed program.

附上源碼,希望有心人可以改的更好。
也希望熟 Fuzzy 的朋友熱烈參與討論。

/*funnzy control program
using by C language on May 09 2006.*/

#include <dos.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max(i,j) (i>j)?i:j
#define min(i,j) (i<j)?i:j

//float Security_value, Familiarity_value, Design_value;
long set , n, condition, output, select;
double r_value, grade_reg[3],grade[25],a1,b1,I;
double error[4];

double Trust_mambership[5][3]={{-0.15,0.05,0.25}, /* VeryLow fuzzy set */
              {0.05, 0.25,  0.45},  /* Low fuzzy set */
              { 0.25,  0.45,  0.65},  /* Moderate fuzzy set */
              {  0.45,  0.65, 0.85},  /* High fuzzy set */
              {  0.65, 0.85, 1.05}},  /* VeryHigh fuzzy set */
long Rule[25][3]={{1,1,5},{1,2,5},{1,3,5},{1,4,5},{1,5,5},
		 {2,1,5},{2,2,4},{2,3,4},{2,4,3},{2,5,3},
		 {3,1,4},{3,2,4},{3,3,3},{3,4,2},{3,5,2},
		 {4,1,3},{4,2,3},{4,3,2},{4,4,2},{4,5,1},
		 {5,1,1},{5,2,1},{5,3,1},{5,4,1},{5,5,1}};

long Trust_Rule[27][4] = {{3,3,3,5},{3,3,2,5},{3,3,1,4},
						{3,1,3,4},{3,1,2,3},{3,1,1,3},
						{3,2,3,5},{3,2,2,4},{3,2,1,3},

						{1,3,3,2},{1,3,2,2},{1,3,1,1},
						{1,1,3,1},{1,1,2,1},{1,1,1,1},
						{1,2,3,2},{1,2,2,1},{1,2,1,1},

						{2,3,3,3},{2,3,2,3},{2,3,1,2},
						{2,1,3,2},{2,1,2,2},{2,1,1,2},
						{2,2,3,3},{2,2,2,2},{2,2,1,2}
						};

int B2C_Rule[15][4] = {{4,1,1},{4,3,3},{4,2,2},
						{2,1,1},{2,3,2},{2,2,1},
						{3,1,1},{3,3,2},{3,2,2},
						{5,1,2},{5,3,3},{5,2,3},
						{1,1,1},{1,3,1},{1,2,1}};

/* ---------------------------------------*/
/* compute viriable and fuzzy set degree  */
/* ---------------------------------------*/
/*void compute_grade()
{
   if((r < membership[set][0]) || (r > membership[set][2]))
   {
		grade_reg[condition]=0;
   }
   else
   {
		if((r>membership[set][1]))
		{
			grade_reg[condition]=(membership[set][2]-r)/(membership[set][2]-membership[set][1]);
		}
		else
		{
			grade_reg[condition]=(r-membership[set][0])/(membership[set][1]-membership[set][0]);
		}
	}
   return;
}

void compute_grade1()
{
   if((r<membership1[set][0])||(r>membership1[set][2]))
   {
      grade_reg[condition]=0;
   }
   else
   {
		if((r > membership1[set][1]))
		{
			grade_reg[condition]=(membership1[set][2]-r)/(membership1[set][2]-membership1[set][1]);
		}
		else
		{
			grade_reg[condition]=(r-membership1[set][0])/(membership1[set][1]-membership1[set][0]);
        }
   }
   return;
}*/

void compute_trustgrade()
{
    if((r_value < Trust_mambership[set][0]) || (r_value > Trust_mambership[set][2]))
   {
      grade_reg[condition]=0;
	  //printf("%d, ",set);
   }
   else
   {
	   //printf("%d, ",set);
	    /*if(r_value >= 0.65)
		{
			grade_reg[condition] = 1;
		}*/
		if((r_value > Trust_mambership[set][1]))
		{
			grade_reg[condition]=(Trust_mambership[set][2]-r_value)/(Trust_mambership[set][2]-Trust_mambership[set][1]);
		}
		else
		{
			grade_reg[condition]=(r_value-Trust_mambership[set][0])/(Trust_mambership[set][1]-Trust_mambership[set][0]);
        }
   }
   return;
}

void compute_B2Cgrade()
{
   if((r_value < Trust_mambership[set][0]) || (r_value > Trust_mambership[set][2]))
   {
      grade_reg[condition]=0;
	  //printf("%d, ",set);
   }
   else
   {
	  // printf("%d, ",set);
		if((r_value >= Trust_mambership[set][1]))
		{
			grade_reg[condition]=(Trust_mambership[set][2]-r_value)/(Trust_mambership[set][2]-Trust_mambership[set][1]);
		}
		else
		{
			grade_reg[condition]=(r_value-Trust_mambership[set][0])/(Trust_mambership[set][1]-Trust_mambership[set][0]);
        }
   }
   return;
}

/*void fuzzy_controller()
 {
 a1=0;b1=0,I=0;
	for (n=0; n<=24 ; n++)
    {
		 condition=0;
		 r=error[0];
		 set=Rule[n][0]-1;
		 compute_grade();

		 condition=1;
		 r=error[1];
		 set=Rule[n][1]-1;
		 compute_grade1();

		 grade[n]=min(grade_reg[0],grade_reg[1]);
		 a1=a1+(grade[n]*membership2[Rule[n][2]-1][1]);
		 b1=b1+grade[n];
     }
     I=a1/b1;
     //gotoxy(20,18);
     printf("fuzzy controller output=%7.4f",I);
	 return;
}*/

void Trust_fuzzy_controller()
 {
 a1=0;b1=0,I=0;
	for (n=0; n<27 ; n++)
    {
		 condition=0;
		 r_value=error[0];
		 set=Trust_Rule[n][0];
		 compute_trustgrade();

		 condition=1;
		 r_value=error[1];
		 set=Trust_Rule[n][1];
		 compute_trustgrade();

		 condition=2;
		 r_value=error[2];
		 set=Trust_Rule[n][2];
		 compute_trustgrade();

		 grade[n]=min(grade_reg[0],grade_reg[1]);
		 grade[n]=min(grade[n],grade_reg[2]);
		 a1=a1+(grade[n]*Trust_mambership[Trust_Rule[n][3]-1][1]);
		 b1=b1+grade[n];
		 //if(grade[n] > 0)
			//printf("Rule %d Trust = %f\n",n+1,Trust_mambership[Trust_Rule[n][3]-1][1]);
     }
     I=a1/b1;
     //gotoxy(20,18);
     printf("\nTrust fuzzy controller output=%7.4lf\n",I);
	 return;
}

void B2C_fuzzy_controller()
 {
 a1=0;b1=0;
	for (n=0; n<15 ; n++)
    {
		 condition=0;
		 r_value=I;
		 set=B2C_Rule[n][0]-1;
		 compute_B2Cgrade();

		 condition=1;
		 r_value=error[3];
		 set=B2C_Rule[n][1];
		 compute_B2Cgrade();

		 grade[n]=min(grade_reg[0],grade_reg[1]);
		 a1=a1+(grade[n]*Trust_mambership[B2C_Rule[n][2]][1]);
		 b1=b1+grade[n];
		 //if(grade[n] > 0)
			//printf("Rule %d B2C = %f\n",n+1,Trust_mambership[B2C_Rule[n][2]][1]);
     }
     I=a1/b1;
     //gotoxy(20,18);
     printf("\nB2C fuzzy controller output=%7.4lf\n",I);
	 return;
}

normalization()
{
	printf("\nnormalization output = %7.4lf\n",(I-0.25)*1/0.4);
}


main()
{
       while(1){
		    printf("Security linguistic value(0.25~0.65) : ");
			scanf("%lf",&error[0]);
		    printf("Familiatrity linguistic value(0.25~0.65) : ");
			scanf("%lf",&error[1]);
			printf("Design linguistic value(0.25~0.65) : ");
			scanf("%lf",&error[2]);
			printf("Competitiveness linguistic value(0.25~0.65) : ");
			scanf("%lf",&error[3]);
		    
			Trust_fuzzy_controller();
			B2C_fuzzy_controller();
			normalization();


			printf("press \"0\" to exit or press any key to continue\n");
			select=getch();
			if(select == '0')
				break;
       }
	   return 0;
}
上传的附件:
2009-6-8 21:51
0
雪    币: 274
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
刚刚看到,感觉程序是和论文结合的。
我先研究研究,有想法了一起交流。
2009-7-5 18:39
0
雪    币: 2096
活跃值: (100)
能力值: (RANK:420 )
在线值:
发帖
回帖
粉丝
11
1) 這個 code 本身就是為那篇 paper 設計的。
2) 慢慢來,我等這個 code 也等了~好幾年~你上次來這已經差不多要一個月~我倒是不急~
2009-7-5 22:32
0
游客
登录 | 注册 方可回帖
返回
//