Al tratar de iniciar el servicio de Wireless Zero Configuration (WZCSV) salió este error:
Las dependencias a las que hace referencia son RPC (el cual estaba corriendo) y NDISUIO , que no era capaz de encontrar en la consola
pero si en el registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDISUIO (HKLM\SYSTEM\... es donde el registro de windows guarda la configuración los distintos servicios y drivers)
La DWWord Start tenía valor 4 (deshabilitado)
Una vez cambiado a 1 (autostart), reiniciar el sistema y mi WIFI volvió a funcionar
jueves, 30 de septiembre de 2010
SQL Server 2008 Service Pack 2 disponible
En el siguiente blog del equipo de Ms SQL Server tenéis detalles y enlaces
El paquete es sólo para SQL 2008 no SQL 2008 R2
El paquete es sólo para SQL 2008 no SQL 2008 R2
jueves, 23 de septiembre de 2010
Recuperar archivos de CDs, DVDs, discos duros...
JFileRecovery es un magnífico (y gratuito) programa para recuperar archivos de CDs, DVDs o discos dañados.
Muy recomendable
Muy recomendable
lunes, 20 de septiembre de 2010
T-SQL y Algoritmos Genéticos
Os pongo este script como ejemplo de la utilización de T-SQL para programar algoritmos genéticos
Ttrata de calcular la siguiente función (típico ejemplo):
Maximizar f(x1, x2) = 21.5 + x1 sin(4πx1) + x2 sin(20πx2)
Sujeto a:
-3.0 <- x1 <- 12.1
4.1 <- x2 <- 5.8
Este script está basado en la solución que Willian Talada aporta en “A Genetic Algorithm Sample in T-SQL" para el problema del robot y las latas que plantea Melanie Mitchell en su libro “Complexity: A Guided Tour”, 2009
Para convertir los valores binarios a base 10, el algoritmo utiliza una simple función definida
de usuario llamada ConvertFromBase
Debido a las particularidades del lenguaje T-SQL, para simplificar elegí la selección
elitista (sólo los dos mejores) como mecanismo para obtener los distintos padres.
El resultado final son dos listas: una que incluye todos los padres, con todos los detalles y otra
con el valor- número de generación más alto
Ttrata de calcular la siguiente función (típico ejemplo):
Maximizar f(x1, x2) = 21.5 + x1 sin(4πx1) + x2 sin(20πx2)
Sujeto a:
-3.0 <- x1 <- 12.1
4.1 <- x2 <- 5.8
Este script está basado en la solución que Willian Talada aporta en “A Genetic Algorithm Sample in T-SQL" para el problema del robot y las latas que plantea Melanie Mitchell en su libro “Complexity: A Guided Tour”, 2009
Para convertir los valores binarios a base 10, el algoritmo utiliza una simple función definida
de usuario llamada ConvertFromBase
/* Función que convierte cualquier base a base 10 http://dpatrickcaldwell.blogspot.com/2009/05/converting-hexadecimal-or-binary-to.html*/ CREATE FUNCTION ConvertFromBase ( @value AS VARCHAR(MAX), @base AS BIGINT ) RETURNS BIGINT AS BEGIN -- just some variables DECLARE @characters CHAR(36), @result BIGINT, @index SMALLINT; -- initialize our charater set, our result, and the index SELECT @characters = '0123456789abcdefghijklmnopqrstuvwxyz', @result = 0, @index = 0; -- make sure we can make the base conversion. there can't -- be a base 1, but you could support greater than base 36 -- if you add characters to the @charater string IF @base < 2 OR @base > 36 RETURN NULL; -- while we have characters to convert, convert them and -- prepend them to the result. we start on the far right -- and move to the left until we run out of digits. the -- conversion is the standard (base ^ index) * digit WHILE @index < LEN(@value) SELECT @result = @result + POWER(@base, @index) * (CHARINDEX (SUBSTRING(@value, LEN(@value) - @index, 1) , @characters) - 1 ), @index = @index + 1; -- return the result RETURN @result; END
Debido a las particularidades del lenguaje T-SQL, para simplificar elegí la selección
elitista (sólo los dos mejores) como mecanismo para obtener los distintos padres.
El resultado final son dos listas: una que incluye todos los padres, con todos los detalles y otra
con el valor- número de generación más alto
SET nocount on
-- declarar tabla variable que albergará resultados
DECLARE @results table (secuencia int identity, NumGeneracion int, DNA varchar(33), x1 float, x2 float, valor float)
DECLARE
@i int,
@dna varchar(33), -- hijo que estará siendo testeado
@loop int,
@dna1 varchar(33), -- mejor hijo
@dna2 varchar(33), -- segundo mejor hijo
@Poblacion int, -- Población que se está evaluando
@k1 int,
@k2 int,
@NumGeneraciones int,
@NumDescendencias int
-- Número de generaciones a evaluar
SET @NumGeneraciones = 1000 -- generaciones
SET @NumDescendencias = 1000 -- descendencias
-- Test rápido
--SET @NumGeneraciones = 100
--SET @NumDescENDencias = 100
-- generar primera población
SET @loop = @NumDescENDencias
SET @Poblacion = 1
WHILE @loop > 0
BEGIN
SET @dna=''
SET @i=0
WHILE @i < 33 -- ya que el cromosoma tendrá una longitud de 33 bits
BEGIN
SET @dna = @dna + CAST(CAST(RAND() * 2 as int) as varchar(1)) -- generamos uno a uno cada bit
SET @i = @i+1
END
-- Una vez generado el cromosoma, pasamos a calcular x1, x2 y el valor de f
DECLARE @valor float
DECLARE @var1 dec
DECLARE @x1 float
DECLARE @x2 float
DECLARE @var2 dec
SET @var1 = CAST(SUBSTRING(@dna, 1, 18)as dec) -- extraemos 18 primeros bits
SET @var2 = CAST (SUBSTRING (@dna,19,15)as dec) -- extraemos restantes 15
-- Convertimos a decimal. Usamos Función personal (código adjunto)
SET @x1= CAST( dbo.convertfromBase(@var1,2)as float)
SET @x2= CAST( dbo.convertfromBase(@var2,2)as float)
SET @x1 = -3+( @x1 * 0.00005760 )
SET @x2 = 4.1+( @x2 * 0.0000518)
SET @valor = (SELECT 21.5 +( @x1 *sin(4*3.14159*@x1))+(@x2* SIN(20*3.14159*@x2)))
INSERT INTO @results (NumGeneracion, DNA, x1, x2, valor) SELECT @Poblacion, @dna, @x1, @x2,@valor
SET @loop = @loop -1
END
--Loop Generaciones
WHILE @Poblacion <= @NumGeneraciones
BEGIN
--Aplicamos una selección elitista: salvamos los mejores padres
SELECT @k1 = secuencia FROM @results WHERE NumGeneracion=@Poblacion AND valor = (SELECT max(valor) FROM @results
WHERE NumGeneracion=@Poblacion)
SELECT @k2 = secuencia FROM @results WHERE NumGeneracion=@Poblacion AND secuencia <> @k1 AND valor = (SELECT
max(valor) FROM @results WHERE NumGeneracion=@Poblacion AND secuencia <> @k1)
SELECT @dna1 = DNA FROM @results WHERE NumGeneracion=@Poblacion AND valor = (SELECT max(valor) FROM @results WHERE
NumGeneracion=@Poblacion)
SELECT @dna2 = DNA FROM @results WHERE NumGeneracion=@Poblacion AND DNA <> @dna1 AND valor = (SELECT max(valor) FROM
@results WHERE NumGeneracion=@Poblacion AND DNA <> @dna1)
-- Borramos el resto
DELETE FROM @results
WHERE NumGeneracion = @Poblacion
AND secuencia not in (@k1, @k2)
SET @Poblacion = @Poblacion + 1
-- hijos loop
SET @loop = @NumDescendencias
WHILE @loop > 0
BEGIN
-- aproximadamente mitad padre1 -mitad padre2
SET @i = CAST(RAND()* 33 as int)+1
SET @dna = left(@dna1,@i) + right(@dna2, 33 - @i)
-- + 5 mutaciones
SET @dna=STUFF(@dna,CAST(RAND()* 33 as int)+1,1, CAST(CAST(RAND() * 2 as int) as varchar(1)))
SET @dna=STUFF(@dna,CAST(RAND()* 33 as int)+1,1, CAST(CAST(RAND() * 2 as int) as varchar(1)))
SET @dna=STUFF(@dna,CAST(RAND()* 33 as int)+1,1, CAST(CAST(RAND() * 2 as int) as varchar(1)))
SET @dna=STUFF(@dna,CAST(RAND()* 33 as int)+1,1, CAST(CAST(RAND() * 2 as int) as varchar(1)))
SET @dna=STUFF(@dna,CAST(RAND()* 33 as int)+1,1, CAST(CAST(RAND() * 2 as int) as varchar(1)))
-- hijos nuevos y salvar resultados
SET @var1 = CAST(SUBSTRING(@dna, 1, 18)as dec)
SET @var2 = CAST (SUBSTRING (@dna,19,15)as dec)
SET @x1= CAST( dbo.convertFrombase(@var1,2)as float)
SET @x2= CAST( dbo.convertFrombase(@var2,2)as float)
SET @x1 = -3+( @x1 * 0.00005760 )
SET @x2 = 4.1+( @x2 * 0.0000518)
--21.5 + x1 sin(4πx1) + x2 sin(20πx2)
SET @valor = (SELECT 21.5 +( @x1 *sin(4*3.14159*@x1))+(@x2* sin(20*3.14159*@x2)))
INSERT INTO @results (NumGeneracion, DNA, x1, x2, valor) SELECT @Poblacion, @dna, @x1, @x2,@valor
SET @loop = @loop - 1
END
END
-- Sumario
SELECT *
FROM @results
WHERE NumGeneracion <= @NumGeneraciones
ORDER BY NumGeneracion asc, valor desc
-- Resultado Final
SELECT NumGeneracion,(valor)
FROM @results
WHERE valor in (SELECT max(valor) FROM @results)
ORDER BY NumGeneracion DESC
viernes, 17 de septiembre de 2010
Error 1053 al instalar SQL Server 2005
El problema de instalar SQL 2005 en una máquina con procesador multinúcleo. Microsoft lo explica aqui.
En mi caso, sólo funcionó copiar los ficheros Sqlos.dll y sqlservr.exe de otra máquina con SP3 actualizado a la carpeta BINN
Viene todo en el enlace (y en castellano)
:
En mi caso, sólo funcionó copiar los ficheros Sqlos.dll y sqlservr.exe de otra máquina con SP3 actualizado a la carpeta BINN
Viene todo en el enlace (y en castellano)
:
Suscribirse a:
Comentarios (Atom)

