• No se han encontrado resultados

Teoría de la Complejidad Computacional Tema II: Modelos de Computación

N/A
N/A
Protected

Academic year: 2022

Share "Teoría de la Complejidad Computacional Tema II: Modelos de Computación"

Copied!
29
0
0

Texto completo

(1)

Teor´ıa de la Complejidad Computacional Tema II: Modelos de Computaci´ on

Mario de J. P´erez Jim´enez

Grupo de Investigaci´on en Computaci´on Natural Dpto. Ciencias de la Computaci´on e Inteligencia Artificial

Universidad de Sevilla

[email protected] http://www.cs.us.es/~marper/

M´aster Universitario en Matem´aticas Curso 2016-2017

(2)

´Indice del tema I

I Modelo de computaci´on de las m´aquinas de Turing.

• Sintaxis.

• Sem´antica.

• M´aquinas de Turing con k cintas.

• M´aquinas de Turing no deterministas.

I Modelo de computaci´on GOTO.

• Programas GOTO.

• Funciones computables en el modelo GOTO:

(3)

Modelos de Computaci´ on

Formalizaci´on matem´atica del concepto deprocedimiento mec´anico:

I Sintaxis.

I Sem´antica.

Modelos de computaci´on orientado a:

I Programas(Ej: modelo GOTO).

I Funciones(Ej: funciones recursivas).

I M´aquinas(Ej: m´aquinas de Turing).

Modosde computaci´on:

I Determinista.

I No-determinista.

I Secuencial.

I Paralelo.

3 / 29

(4)

M´ aquinas de Turing: Sintaxis (I)

Es una tupla, M = (Q, q0, F , Σ, B, ., δ) tal que:

Q es un alfabeto (estados).

q0∈ Q (estado inicial).

F = {qh, qy, qn} ⊆ Q (estados finales, todos ellos distintos entre s´ı).

Σ es un alfabeto (de la m´aquina) tal que Q ∩ Σ = ∅ (s´ımbolos).

B ∈ Σ (s´ımbolo blanco).

. ∈ Σ (primer s´ımbolo), . 6= B.

δ es una aplicaci´on de (Q − F ) × Σ en Q × Σ × {0, 1, −1} (funci´on de transici´on) tal que:

? Si δ(q, .) = (q0, s0, x ) entonces s0= . ∧ x = 1.

? Si s 6= . y δ(q, s) = (q0, s0, x ) entonces s06= ..

(5)

M´ aquinas de Turing: Sintaxis (II)

Una m´aquina de Turing M consta de:

I Unacinta infinitaa la derecha con primera casilla.

I Unacabeza de trabajo lectora/escritoraque se puede desplazar a lo largo de la cinta.

Si δ(q, s) = (q0, s0, x ), diremos que M pasa de q a q0, sustituye s por s0y se mueve seg´un el valor de x ∈ {0, 1, −1}.

s s s s s s s s s s

s1 2 3 4 5 6 7 8 9 10 11BB B B B B B B B B Unidad de Control

q

5 / 29

(6)

M´ aquinas de Turing: Sem´ antica (I)

Configuraci´on(descripci´on instant´anea) de una m´aquina de Turing M:

∗ Una terna (q, w , u) tal que q ∈ Q, w ∈ Σy u ∈ Σ. Una configuraci´on (q, w , u) puede ser interpretada como sigue:

? q es el estado actual en que se encuentra M.

? . w u es la palabra escrita en la cinta de M.

? Si w no es la cadena vac´ıa, M analiza el ´ultimo s´ımbolo de w . Caso contrario, analiza el s´ımbolo . de la primera casilla.

s s s s s s s s s s

s1 2 3 4 5 6 7 8 9 10 11BB B B B B B B B B Unidad de Control

q

w u

(7)

M´ aquinas de Turing: Sem´ antica (II)

Sea C = (q, w , u) una configuraci´on de M.

Si q = q0, w es la cadena vac´ıa λ y u ∈ (Σ − {B}): C es laconfiguraci´on inicialcon dato de entrada u y notaremos C = Iu.

Si q ∈ F : C es unaconfiguraci´on de parada.

Si q = qy: C es unaconfiguraci´on de aceptaci´on.

Si q = qn: C es unaconfiguraci´on de rechazo.

Configuraci´on siguiente: Sea (q, w1. . . wr −1wr, u1u2. . . us) una configuraci´on de M.

Si δ(q, wr) = (q0, wr0, −1), diremos que la configuraci´on siguiente de (q, w1. . . wr −1wr

| {z }

,z }| { u1u2. . . us)

es (q0, w1· · ·wr −1

| {z }

,

z }| {

wr0u1u2. . . us).

Si δ(q, wr) = (q0, wr0, +1), diremos que la configuraci´on siguiente de (q, w1. . . wr −1wr

| {z }

,z }| { u1u2. . . us)

es (q0, w1. . . wr −1wr0u1

| {z }

,z }| { u2. . . us).

Si δ(q, wr) = (q0, wr0, 0), diremos que la configuraci´on siguiente de (q, w1. . . wr −1wr

| {z }

,z }| { u1u2. . . us) es

(q, w1. . . wr −1

wr0

| {z }

,z }| { u1u2. . . us).

7 / 29

(8)

M´ aquinas de Turing: Sem´ antica (III)

Unacomputaci´onC de una MT es una sucesi´on (finita o infinita) de configuraciones (C0, C1, . . . , Cr), r ∈ N ∪ {∞}, tal que

I C0es una configuraci´on inicial (asociada a un dato de entrada u ∈ (Σ − {B})).

I Para cada i < r , la configuraci´on Ci +1es la configuraci´on siguiente de Ci. I La computaci´on C es de parada si

? r ∈ N y la ´ultima configuraci´on Cres (q, λ, u0), siendo q ∈ {qy, qn, qh) y u0∈ (Σ − {B}).

Si q = qy: Maceptael dato u. Escribiremos M(u) = Y .

Si q = qn: Mrechazael dato u. Escribiremos M(u) = N.

Si q = qh: elresultadode la computaci´on es u0∈ (Σ − {B}). Escribiremos M(u) = u0.

I Si la computaci´on C es de parada, escribiremos M(u) ↓

I Si la computaci´on C no es de parada, escribiremos M(u) ↑

(9)

Decisi´ on y aceptaci´ on de un lenguaje en una MT

Sea M una MT cuyo alfabeto de trabajo es Σ.

Sea L un lenguaje sobre Σ \ {B}.

I M decideel lenguaje L sii para cada u ∈ (Σ − {B}):

? Si u ∈ L, entonces M(u) = Y .

? Si u /∈ L, entonces M(u) = N.

I M aceptael lenguaje L sii para cada u ∈ (Σ − {B}):

? Si u ∈ L, entonces M(u) = Y .

? Si u /∈ L, entonces M(u) ↑.

9 / 29

(10)

Lenguajes recursivos y recursivamente enumerables

I L ⊆ (Σ − {B})esrecursivosii existe una MT que decide L.

I L ⊆ (Σ − {B})esrecursivamente enumerablesii existe una MT que acepta L.

Proposici´on 1: Todo lenguaje recursivo es r.e.

Proposici´on 2: Existen lenguajes r.e. que no son recursivos.

(11)

Ejemplo de una MT de decisi´ on

Q = {q0, q1, q2, q01, q20, q3, qh, qy, qn}; Σ = {0, 1, B, .}

(Q − F ) × Σ Q × Σ × {0, 1, −1}

(q0, 0) (q1, ., 1) (q0, 1) (q2, ., 1) (q0, B) (qy, B, 0) (q0, .) (q0, ., 1) (q1, 0) (q1, 0, 1) (q1, 1) (q1, 1, 1) (q1, B) (q10, B, −1)

(q2, 0) (q2, 0, 1) (q2, 1) (q2, 1, 1) (q2, B) (q20, B, −1)

(q10, 0) (q3, B, −1) (q10, 1) (qn, 1, 0) (q01, .) (qy, B, 1) (q20, 0) (qn, 1, 0) (q20, 1) (q3, B, −1) (q02, .) (qy, ., 1) (q3, 0) (q3, 0, −1) (q3, 1) (q3, 1, −1) (q3, .) (q0, ., 1)

11 / 29

(12)

Funciones computables por m´ aquinas de Turing

I Una MT, M,calculaf : (Σ − {B})→ Σsii para cada u ∈ (Σ − {B}) se tiene que M(u) = f (u).

I Unafunci´on f es recursivasii existe una MT que calcula f . Un ejemplo: Q = {q0, q1, qh, qy, qn}; Σ = {0, 1, B, .}

(Q − F ) × Σ Q × Σ × {0, 1, −1}

(q0, 0) (q0, 0, 1) (q0, 1) (q0, 1, 1) (q0, B) (q1, B, −1) (q0, .) (q0, ., 1) (q1, 0) (qh, 1, 0) (q1, 1) (q1, 0, −1) (q1, B) (q1, B, 0) (q1, .) (qh, ., 1)

Hallemos M(01)

1.q. 0 1 B.0 5. . 0 q1 B.1 2. . q0 1 B.0 6. . q0 0 B.1 3. . 0 q1 B.0 7. . q1 0 B.h 4. . 0 1 B.q0

(13)

M´ aquinas de Turing que resuelven problemas

¿C´omoresolver un problemaX ?

I Si X es un problema de decisi´on,

? UnaMT resuelve X si decide el lenguaje LX asociado a X .

I Si X es un problema identificado por una aplicaci´on fX : LX → Σ,

? UnaMT resuelve X si calcula la funci´on fX.

13 / 29

(14)

M´ aquinas de Turing con k cintas

I En cada instante la m´aquina se encuentra en un estado.

I Consta de k cintas, infinitas a la derecha con primera casilla.

I Cada cinta tiene una cabeza que en cada instante:

? Analiza una casilla.

? Puede reescribir sobre la casilla.

? Puede cambiar de estado (el mismoen todas las casillas).

? Se puede desplazar: 0, 1, −1.

(15)

M´ aquinas de Turing con k cintas

I Para realizar una computaci´on con entrada u ∈ Σ:

? Se registra la entrada en la primera cinta.

? Las restantes cintas est´an en blanco.

? Todas las cabezas apuntan a la primera casilla.

? La m´aquina se encuentra en el estado inicial.

? La funci´on de transici´on act´ua sobre cada cinta.

• Si termina en qh, la salida es el contenido de la cinta k–´esima.

Teorema : Para cada MT, M, con k cintas existe una MT, M0, con una cinta tal que M(u) = M0(u), para cada entrada u.

¿Qu´epeaje se ha de pagarpara “pasar” de una MT con k cintas a una MT con una cinta que sea equivalente a ella?

15 / 29

(16)

M´ aquinas de Turing no deterministas

Es una tupla, M = (Q, q0, F , Σ, B, ., δ) tal que:

Q es un alfabeto (estados).

q0∈ Q (estado inicial).

F = {qh, qy, qn} ⊆ Q (estados finales, todos ellos distintos entre s´ı).

Σ es un alfabeto (de la m´aquina) tal que Q ∩ Σ = ∅ (s´ımbolos).

B ∈ Σ (s´ımbolo blanco).

. ∈ Σ (primer s´ımbolo), . 6= B.

δ es una aplicaci´on de (Q − F ) × Σ en P(Q × Σ × {0, 1, −1}) (funci´on de transici´on) tal que

? Si (q0, s0, x ) ∈ δ(q, .) entonces s0= . ∧ x = 1.

? Si (q0, s0, x ) ∈ δ(q, s) y s 6= . entonces s06= ..

Toda MT determinista es una MT no determinista.

Teorema : Si una MT no determinista decide L, entonces existe otra MT determinista con tres cintas que decide L.

¿Qu´epeaje se ha de pagarpara “pasar” de una MTND que decide L a una MTD que

(17)

Modelo de computaci´ on GOTO: Sintaxis

Modelo secuencial y determinista (conjunto de datos: N).

El lenguaje de programaci´on GOTO

1. Variables:

De entrada: X1(= X ), X2, X3, ...

De salida: Y

Auxiliares: Z1(= Z ), Z2, Z3, ...

VAR: conjunto de todas las variables de GOTO.

2. Etiquetas: A1, B1, C1, D1, E1, A2, B2, C2, D2, E2, . . .

Notaci´on: A = A1, B = B1, C = C1, D = D1, E = E1. 3. Instrucciones b´asicas: Para cada variable V y cada etiqueta L:

Incremento: V ←− V + 1

Decremento: V ←− V − 1

Condicional: IF V 6= 0 GOTO L

Skip: V ←− V

Instrucciones etiquetadas: [K ] V ←− V + 1; [K ] V ←− V − 1; [K ] IF V 6= 0 GOTO L;

[K ] V ←− V , siendo K una etiqueta distinta de E .

Programa GOTO:Sucesi´on finita de instrucciones b´asicas (etiquetadas o no) cuya ´ultima instrucci´onNOes Y ←− Y.

Si P = I1, . . . , Ines un programa GOTO, lalongitudde P es n (se notar´a por |P|).

ElPrograma Vac´ıo: consta de 0 instrucciones.

GOTOP: conjunto de todos los programas GOTO.

17 / 29

(18)

Modelo de computaci´ on GOTO: Sem´ antica (I)

Sea P = I1, . . . , Inun programa GOTO.

var (P): conjunto de todas las variables que aparecen en P.

Unestadode P es una aplicaci´on s de VAR en N: si s(V ) = m, notaremos V = m.

Unaconfiguraci´onde P, es un par σ = (i , s) donde 1 ≤ i ≤ |P| + 1 y s es un estado de P.

Configuraci´on inicial: i = 1, s(V ) 6= 0 para un n´umero finito de variables de entrada y s(V ) = 0 para cada variable que no sea de entrada.

Configuraci´on de parada: i = |P| + 1.

Si σ = (j , s) una configuraci´on de P que no es de parada, laconfiguraci´on siguienteσ0= (j0, s0) de σ (σ `pσ0) se define como sigue:

. Si Ij≡ V ←− V + 1 y s(V ) = m, entonces j0= j + 1 y s0se obtiene de s sustituyendo el valor V = m por el valor V = m + 1.

. Si Ij≡ V ←− V − 1 y s(V ) = m, entonces j0= j + 1 y si m > 0, entonces s0se obtiene de s sustituyendo el valor V = m por el valor V = m − 1 (si m = 0, entoncess0= s).

. Si Ijes de tipo SKIP, entonces j0= j + 1 y s0= s.

. Si Ij≡ IF V 6= 0 GOTO L, entonces σ0= σ. Adem´as,

Si s(V ) = 0, entonces j0= j + 1 (ir a la siguiente instrucci´on o terminar si j = n).

Si s(V ) 6= 0 y existe k tal que Ikes la primera instrucci´on etiquetada con L, entonces j0= k (ir a la primera instrucci´on etiquetada con L).

(19)

Modelo de computaci´ on GOTO: Sem´ antica (II)

Ejecuci´on de un programa GOTOP = I1, . . . , In.

I Unacomputaci´on(o ejecuci´on) C de P es una sucesi´on (finita o infinita) de configuracionesσ1, . . . , σi, . . . tal que:

? σ1= (1, s1) es una configuraci´on inicial;

? Si σino es de parada, entonces σi`Pσi +1.

I P(a1, . . . , ak): computaci´on de P con dato de entrada (a1, . . . , ak) es la que corresponde a la configuraci´on inicial σ1= (1, s1), siendo

s1(X1) = a1, s1(X2) = a2, . . . , s1(Xk) = aky s1(V ) = 0, para las restantes variables V

I Si C = s1, . . . , si0 es una sucesi´on finita, diremos que

? C es de parada:P(a1, . . . , ak) ↓

? La configuraci´on si0es de parada.

? P(a1, . . . , ak) = b, siendo b el valor de Y en la configuraci´on de parada si0 (resultado de ejecutar el programa P con dato de dentrada (a1, . . . , ak)).

I Si C es una sucesi´on infinita, diremos que C no es de parada: P(a1, . . . , ak) ↑

I S´olo las computaciones de parada proporcionan resultados.

19 / 29

(20)

Un ejemplo

P ≡

[A] IF X 6= 0 GOTO B Z ←− Z + 1 IF Z 6= 0 GOTO E [B] X ←− X − 1

Y ←− Y + 1 IF X 6= 0 GOTO A

HallemosP(3):

σ1= (1, {X = 3, Y = 0, Z = 0}) σ2= (4, {X = 3, Y = 0, Z = 0}) σ3= (5, {X = 2, Y = 0, Z = 0}) σ4= (6, {X = 2, Y = 1, Z = 0}) σ5= (1, {X = 2, Y = 1, Z = 0}) σ6= (4, {X = 2, Y = 1, Z = 0}) σ7= (5, {X = 1, Y = 1, Z = 0}) σ8= (6, {X = 1, Y = 2, Z = 0}) σ9= (1, {X = 1, Y = 2, Z = 0}) σ10= (4, {X = 1, Y = 2, Z = 0}) σ11= (5, {X = 0, Y = 2, Z = 0}) σ12= (6, {X = 0, Y = 3, Z = 0}) σ13= (7, {X = 0, Y = 3, Z = 0})

(21)

Funciones GOTO–computables

Sean P un programa GOTO y k ≥ 1.

I Funci´on de aridad k calculada por P:

Es la funci´on [[P]](k): Nk − → N, definida por

[[P]](k)(a1, . . . , ak) = P(a1, . . . , ak) = resultado de ejecutar P con dato de entrada (a1, . . . , ak)

Unafunci´onf de aridad k ≥ 1 esGOTO–computablesi existe un programa GOTO, P, tal que f = [[P]](k).

I G-COMP: conjunto de todas las funciones GOTO computables.

I G-COMP(k): conjunto de todas las funciones GOTO computables de aridad k.

21 / 29

(22)

Ejemplos de funciones GOTO–computables

I Lafunci´on identidadIdN: N → N definida por IdN(x ) = x , ∀x ∈ N.

IF X 6= 0 GOTO B Z ←− Z + 1 IF Z 6= 0 GOTO E [B] X ←− X − 1

Y ←− Y + 1 IF X 6= 0 GOTO B

I Lafunci´on vac´ıaf(k), k ≥ 1: f(k)(x1, . . . , xk) ↑, ∀(x1, . . . , xk) ∈ Nk.

[A] Z ←− Z + 1 IF Z 6= 0 GOTO A

I Lafunci´on nulaO(k), k ≥ 1: O(k)(x1, . . . , xk) = 0, ∀(x1, . . . , xk) ∈ Nk. Es calculada por cualquier programa que pare siempre y en el que no aparezca la variable de salida Y .

(23)

Codificaci´ on de programas GOTO

Cadaprograma GOTOse codifica por un n´umero natural: #(P)

? Todo n´umero naturalcodificaun ´unico programa GOTO.

Para ello, se codifican lasinstrucciones GOTO: #(I )

? Todo n´umero naturalcodificaun ´unica instrucci´on GOTO.

Para ello, se codifican:

I Lasvariables.

I Lasetiquetas.

I Losformatosde las instrucciones (skip, incremento, decremento y condicional).

Si P = (I1, I2, . . . , In) es un programa GOTO, se define el c´odigo de P as´ı:

#(P) = [#(I1), #(I2), . . . , #(In)] − 1

23 / 29

(24)

Programas universales (I)

Cuesti´on:

Para cada n ≥ 1, ¿es computable la funci´on de aridad (n + 1) que asigna a cada n-tupla (x1, . . . , xn) y cada programa GOTO P el resultado de la computaci´on P(x1, . . . , xn)?

Responderemosafirmativamentea esta cuesti´on.

I Un programaUnque calcule esa funci´on de aridad (n + 1) se denomina programa universal.

I La funci´on de aridad (n + 1) que calcula Un se notar´a porUn.

[[Un]](n+1)(x1, . . . , xn, #(P)) = [[P]](n)(x1, . . . , xn) = Un(x1, . . . , xn, #(P)) Teorema. Para cada n ≥ 1,existeun programa GOTO, Un, tal que para todo

~x ∈ Nny todo programa GOTO, P, se tiene:

[[Un]](n+1)(~x , #(P)) = [[P]](n)(~x )

B´asicamente, un programa universal es unint´erprete de GOTO.

(25)

El programa universal U

n Z ←− Xn+1+ 1

S ←−Qn i =1(p2i)Xi K ←− 1

(1) inicializaci´on

[C ] IF K = Long (Z ) + 1 GOTO F (2) test de parada

U ←− r ((Z )k) P ←− pr (U)+1

IF l (U) = 0 GOTO N IF l (U) = 1 GOTO A IF P - S GOTO N IF l (U) = 2 GOTO M

K ←− µi ≤ Long (Z )[l ((Z )i) + 2 = l (U)]

GOTO C





















(3) paso de computaci´on de Xn+1

[M] S ←− qt(S , P) GOTO N [A] S ←− S ·P [N] K ←− K + 1

GOTO C [F ] Y ←− (S )1













(4) salida

25 / 29

(26)

Funciones ´ındice

I Para n ≥ 1 y e ∈ N, se define la funci´on GOTO–computable n-aria de ´ındice e, as´ı: ϕ(n)e (x1, . . . , xn) = Un(x1, . . . , xn, e).

•Obs´ervese que: ϕ(n)#(P)= [[P]](n).

P0 P1 P2 . . . Pn . . . . ϕ(1)0 ϕ(1)1 ϕ(1)2 . . . ϕ(1)n . . . . ϕ(2)0 ϕ(2)1 ϕ(2)2 . . . ϕ(2)n . . . . ϕ(3)0 ϕ(3)1 ϕ(3)2 . . . ϕ(3)n . . . .

..

. ... ... ... ... ... ϕ(k)0 ϕ(k)1 ϕ(k)2 . . . ϕ(k)n . . . .

..

. ... ... ... ... ... En donde #(Pi) = i .

(27)

Conjuntos recursivos y recursivamente enumerables

Lafunci´on caracter´ısticade un conjunto A ⊆ Nk, es la funci´on total:

CA(~x ) =

 1 si ~x ∈ A 0 si ~x ∈ Nk− A

Lafunci´on caracter´ıstica parcialde un conjunto A ⊆ Nk, es la funci´on parcial:

CA(~x ) =

 1 si ~x ∈ A

↑ si ~x ∈ Nk− A

Definici´on. Un conjunto A ⊆ Nk esrecursivosi la funci´on caracter´ıstica CAes GOTO–computable.

Definici´on. Un conjunto A ⊆ Nk esrecursivamente enumerable(r.e.) si la funci´on caracter´ıstica parcial CAes GOTO–computable.

Resultados:

I Si un conjunto es recursivo, entonces tambi´en es r.e.

I Existen conjuntos r.e. que no son recursivos.

I Un conjunto A ⊆ Nkes recursivo si y s´olo si los conjuntos A y A son r.e.

27 / 29

(28)

Decidibilidad de problemas de decisi´ on

Un problema de decisi´on X = (EX, θX) es:

I decidible(oresoluble algor´ıtmicamente) si el conjunto LX asociado al problema es recursivo.

I indecidible(oirresoluble algor´ıtmicamente) si el conjunto LX asociado al problema no es recursivo.

I semidecidible(oparcialmente decidible) si el conjunto LX asociado al problema es recursivamente enumerable.

(29)

El problema de la parada

Enunciado informal. Dado un programa GOTO, P, y un dato de entrada ~x , determinar si P para sobre ~x .

Cuesti´on informal. ¿Es resoluble algor´ıtmicamente el problema de la parada?

Cuesti´on formal: Determinar si el conjunto K0= {(x , y ) ∈ N2: ϕ(1)x (y ) ↓} es recursivo.

Resultado: El conjunto K0es r.e. pero no es recursivo.

Es decir:

I El problema de la parada esindecidiblepero, en cambio, essemidecidible.

29 / 29

Referencias

Documento similar

Pero un texto legal no modifica per se la realidad, una praxis médica que por tradición ignora el valor autonomía del paciente, de tal ma- nera que hoy en día uno se muere

Pérez-Arellano JL, Pardo J, Hernández-Cabrera M, Carranza C, Angel-Moreno A, Muro A. Manejo práctico de una eosinofilia. En un segundo apartado se estudian las causas principales

Entre los representantes del género Aristolochia presentes en Cuba se encuentra Aristolochia lindeniana, descrita por DUCHARTRE (1864), basado en una colecta de Lin- den (Linden

Calcular los l´ımites

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

(1886-1887) encajarían bien en una antología de textos históricos. Sólo que para él la literatura es la que debe influir en la historia y no a la inversa, pues la verdad litera- ria

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Por lo que se requiere construir una teoría de la racionalidad con intención práctica, que conduzca la crítica de las formas sociales de realización de la razón, para lo cual