//size membership function single 0 0 1 4 small 1 4 4 8 medium 4 8 8 10 large 8 10 10 18 huge 10 18 1000 1000 // edge low 0 0 20 35 moderate 20 35 35 60 sharp 35 60 60 100 extreme 60 100 1000 1000 rules: //size edge sharpest_edge -> value // single single low low 0 single low moderate 1 single low sharp 1 single low extreme 1 single moderate low 1 single moderate moderate 1 single moderate sharp 1 single moderate extreme 1 single sharp low 1 single sharp moderate 1 single sharp sharp 1 single sharp extreme 1 single extreme low 1 single extreme moderate 1 single extreme sharp 1 single extreme extreme 1 //small small low low 0 small low moderate 0 small low sharp 1 small low extreme 1 small moderate low 1 small moderate moderate 1 small moderate sharp 1 small moderate extreme 1 small sharp low 1 small sharp moderate 1 small sharp sharp 1 small sharp extreme 1 small extreme low 1 small extreme moderate 1 small extreme sharp 1 small extreme extreme 1 //medium medium low low 0 medium low moderate 0 medium low sharp 0 medium low extreme 0 medium moderate low 0 medium moderate moderate 0 medium moderate sharp 0 medium moderate extreme 1 medium sharp low 1 medium sharp moderate 1 medium sharp sharp 1 medium sharp extreme 1 medium extreme low 1 medium extreme moderate 1 medium extreme sharp 1 medium extreme extreme 1 //large large low low 0 large low moderate 0 large low sharp 0 large low extreme 0 large moderate low 0 large moderate moderate 0 large moderate sharp 0 large moderate extreme 0 large sharp low 0 large sharp moderate 0 large sharp sharp 1 large sharp extreme 1 large extreme low 0 large extreme moderate 1 large extreme sharp 1 large extreme extreme 1 //huge huge low low 0 huge low moderate 0 huge low sharp 0 huge low extreme 0 huge moderate low 0 huge moderate moderate 0 huge moderate sharp 0 huge moderate extreme 0 huge sharp low 0 huge sharp moderate 0 huge sharp sharp 0 huge sharp extreme 0 huge extreme low 0 huge extreme moderate 0 huge extreme sharp 0 huge extreme extreme 0