Foros del Web » Programando para Internet » PHP »

PHP OO convertir codigo java a php

Estas en el tema de convertir codigo java a php en el foro de PHP en Foros del Web. alguien me puede ayudar a resolver el algoritmo colonia de hormigas o pasar este codigo java a php el codigo java esta en el siguiente ...
  #1 (permalink)  
Antiguo 22/10/2013, 16:10
 
Fecha de Ingreso: octubre-2013
Mensajes: 1
Antigüedad: 11 años, 1 mes
Puntos: 0
convertir codigo java a php

alguien me puede ayudar a resolver el algoritmo colonia de hormigas o pasar este codigo java a php
el codigo java esta en el siguiente link

http://code.google.com/p/in-silico/source/browse/trunk/Proyectos/src/Colonia/Hormigas.java?r=137
  #2 (permalink)  
Antiguo 22/10/2013, 17:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: convertir codigo java a php

Bienvenido a FDW, lamentablemente, muchos de los que sabemos un poco de PHP no tenemos ni idea de Java y, por otra parte, recuerda que los foros son para ayudarte a corregir errores con códigos que no te funcionan, no para que alguien haga la tarea por ti.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/10/2013, 08:50
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 3
Respuesta: convertir codigo java a php

Pues hombre tanto como traducirtelo no... pero te puedo explicar conceptualmente que hace y que de lo que estan usando te toca hacerlo en php por que es clase propia de java.

Primero explicarte que hace el algoritmo. El algoritmo de la colonia de hormigas es una tecnica de optimizacion, tal cual como los algoriitmos voraces y dinamicos, este podria ser un algo dinamico. La idea del algoritmo es trabajar como una colonia de hormigas, ellas cuando caminan dejan un rastro de feromonas, si le fue bien, vuelve usar el mismo camino y el rastro de feromonas se vuelve mas fuerte, si no simplemente usa otro camino. Al final este algoritmo hace eso, plantea una solucion, si le va bien la vuelve a usar, si no prueba otra, al final la solucion con mas feromonas (la mas utilizada) sera la mejor.

El algoritmo es parecido al del agente viajero, debes pensarlo como un conjunto de nodos, una entrada y una salida y un monton de hormigas viajando de un lado a otro encontrando el mejor camino.

El algoritmo base es algo sencillo, tienes digamos unas hormigas y unos caminos. La primera hhormiga va del punto a al b por un camino aleatorio.
Luego la siguen otras hormigas.
Luego los caminos mas cortos siguen siendo usados fortalenciendo un rastro de feromonas.
Los caminos que son mas largos van perdiendo su rastro de feromonas por que son menos utilizados.
Y al final el camino con mas ferommonas sera el mejor y este tendra mejor probabilidad acorde al numero de iteraciones del algoritmo.


Te explico las clases que usa y por que es una mala idea el pensar en una traduccion tal cual.

package Colonia;
import java.awt.Color;
import java.awt.Graphics;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
Primero va la declaracion del paquete al que pertenece la clase (No hace falta en php)
lo correspondiente a awt son librerias graficas (hay si te la vez negra depediendo del uso que se le den puedes usar GD en php o buscar algo similar, ya tienes serios problemas aqui ya que el algortimo conforme va construyendo la ruta va actualizando el grafico y la logica de esta clase grapiish es como un pintor sobre un canvas, funcionalidad que tendrias que implementar tu).
Las de Java.io, son las clases de lectura de archivos, por alli no tienes problema

ArrayList es para declarar listas, nada que no puedas emular con arrays de php
Scanner Si te la vas a ver mas complicada, es una clase que separa una cadena en tokens parseando mediante una gramatica. Sin embargo php tiene su propias herramientas para parsear basando en expresiones regulares. Si no sabes que es un parser, es algo que evalua una cadena de entrada para encontrar coincidencias con una secuencia predeterminada.

Yo te diria que no pienses en copiarlo, mejor haste esta lista de tareas.

Encuentra el pseudocodigo del algoritmo. (Bien sea en texto o como tareas base).
Define la entrada y la salida. Si tu entrada no es un archivo que describa los pesos de unas aristas en un camino mal vas, por que esta es la entrada del algoritmo que nos das.
La salida de este algoritmo es un grafico sobre el cual vas pintando el camino, eso se te puede complicar un poco en php, yo te diria que mejor devolvieras un arreglo que te corresponndiera a el camino de aristas que eligio al finnal el algoritmo.

Intente explicarte un poco como va eso. Espero que desistas de la idea de traducir y intentes hacerlo por ti mismo. Por que creo que te vas a complicar muchisimo mas si no lo comprendes al principio.

Tu mejor aliado ahora mismo no es un lenguaje, seria una hoja de papel y un lapiz, has el pseudo alli, entiendelo y luego si lo programas.

Etiquetas: java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:11.