Fuzzy Sets and Systems 121 (2001) 491–503 www.elsevier.com/locate/fss A new approach for the execution and adjustment of a fuzzy algorithm Juan Luis Castro, Miguel Delgado, Carlos Javier Mantas ∗ Department of Computer Science and Articial Intelligence, University of Granada, 18071-Granada, Spain Received 23 March 1998; received in revised form 29 August 2000; accepted 1 November 2000 Abstract This paper presents a new methodology for executing and adjusting a fuzzy algorithm. It is based on a new concept of fuzzy formal language. The methodology consists of transforming the steps of a fuzzy algorithm into production rules of a fuzzy grammar, executing the algorithm according to the dynamics of this grammar and adjusting its execution using the learning capability of fuzzy formal languages. This methodology is applied for executing and adjusting a Turing machine with fuzzy states. c 2001 Elsevier Science B.V. All rights reserved. Keywords: Fuzzy algorithms; Fuzzy grammars; Fuzzy formal languages 1. Introduction According to Zadeh [11], “a fuzzy algorithm is an ordered set of fuzzy instructions which upon execution yield an approximate solution to a specied problem”. An example of fuzzy algorithm might be a cooking recipe. For example, a recipe to boil rice for one per- son: take a handful of rice, add twice as much water as rice in a pan, add a pinch of salt, light the gas, wait until the water boils, add the rice, wait about fteen minutes, then boil water again, turn the gas o. Out- come: boiled rice for one person. The steps in the previous fuzzy algorithm have a certain ambiguity, for instance, we do not know whether the step “take a handful of rice” means “take 90 grams of rice” or “take 110 grams of * Corresponding author. E-mail addresses: castro@decsai.ugr.es (J.L. Castro), delgado@ decsai.ugr.es (M. Delgado), cmantas@decsai.ugr.es (C.J. Mantas). rice”. According to the interpretation of these steps a dierent quantity of boiled rice will be obtained. The same happens with the step “wait about fteen minutes” and the boiled rice will be more or less hard. The outcome obtained, using the fuzzy algorithm to cook rice, is a fuzzy set dened on the universal set composed by the dierent kinds of boiled rice for one person, that are distinguished by the quantity and the quality (Fig. 1). These ideas are commented upon in [6,7] using fuzzy programs. In these works, a fuzzy program is viewed as a fuzzy set of non-fuzzy programs in the sense that fuzzy instructions are fuzzy sets of in- structions. In [9], the execution of a fuzzy program is seen as the execution of a non-fuzzy program cho- sen amongst the ones that make up the support of the fuzzy program, using backtracking to nd a se- quence of instructions that corresponds with a feasible execution of the fuzzy program. Therefore, the execution of a fuzzy program consists of executing a 0165-0114/01/$ - see front matter c 2001 Elsevier Science B.V. All rights reserved. PII:S0165-0114(01)00006-9