...
 
Commits (2)
  • Falucho's avatar
    WIP · 3a16a2b3
    Falucho authored
    3a16a2b3
  • Faller's avatar
    DEMO · a3b79bee
    Faller authored
    a3b79bee
......@@ -13,8 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- <maven.compiler.source>1.8</maven.compiler.source>-->
<!-- <maven.compiler.target>1.8</maven.compiler.target>-->
<maven.test.skip>true</maven.test.skip>
</properties>
<dependencies>
......@@ -44,9 +43,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>C:/Desarrollo/glpk-4.65/w64</additionalClasspathElement>
</additionalClasspathElements>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
......@@ -72,6 +69,15 @@
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
<compilerArgs>--enable-preview</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
</project>
package uy.edu.fing.lrt.modelo;
import uy.edu.fing.lrt.controlador.ProblemaControlador;
import uy.edu.fing.lrt.controlador.PropiedadesControlador;
import uy.edu.fing.lrt.gui.Principal;
import uy.edu.fing.lrt.test.Parada;
import uy.edu.fing.lrt.util.GlpkUtil;
import uy.edu.fing.lrt.util.Logger;
import uy.edu.fing.lrt.util.PropiedadesEnum;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
......@@ -58,9 +67,10 @@ public final class Generador {
}
public static Individuo sol1() {
//127.379.180
return buildI(new int[]{2, 2, 3, 2},
new int[]{18, 32, 64, 6},
new int[]{16, 29, 65, 21, 22, 68, 70, 72, 83, 10},//ojo aca, no es 10, 12
new int[]{16, 29, 65, 21, 22, 68, 70, 72, 83, 10},
new int[]{20, 46, 48, 50, 52, 79, 11},
new int[]{19, 45, 49, 51, 7},
......@@ -76,9 +86,10 @@ public final class Generador {
}
public static Individuo sol2() {
//125.345.265
return buildI(new int[]{2, 2, 3, 2},
new int[]{18, 32, 64, 6},
new int[]{16, 29, 65, 21, 22, 68, 70, 72, 83, 12},//ojo aca, no es 10, 12
new int[]{16, 29, 65, 21, 22, 68, 70, 72, 83, 12},
new int[]{20, 46, 48, 50, 52, 79, 11},
new int[]{19, 45, 49, 51, 7},
......@@ -92,4 +103,47 @@ public final class Generador {
);
}
public static void main(String[] args) {
final var t1 = System.currentTimeMillis();
init();
final var t2 = System.currentTimeMillis();
final var costo = sol1().getCosto();
final var t3 = System.currentTimeMillis();
System.out.println(costo);
System.out.println("Demora INIT: " + (t2 - t1));
System.out.println("Demora Costo: " + (t3 - t2));
}
private static void init() {
InputStream isMat = Principal.class.getClassLoader().getResourceAsStream("10-bus.mat");
InputStream isPar = Principal.class.getClassLoader().getResourceAsStream("ubicacionProcesada.txt");
InputStream isAri = Principal.class.getClassLoader().getResourceAsStream("aristasV2.txt");
InputStream isNod = Principal.class.getClassLoader().getResourceAsStream("nodos.txt");
InputStream isProp = Principal.class.getClassLoader().getResourceAsStream("instancia1.prop");
try (
BufferedReader brMat = new BufferedReader(new InputStreamReader(isMat, StandardCharsets.UTF_8));
BufferedReader brPar = new BufferedReader(new InputStreamReader(isPar, StandardCharsets.UTF_8));
BufferedReader brAri = new BufferedReader(new InputStreamReader(isAri, StandardCharsets.UTF_8));
BufferedReader brNod = new BufferedReader(new InputStreamReader(isNod, StandardCharsets.UTF_8))
) {
ProblemaControlador problema = ProblemaControlador.getInstance();
problema.limpiar();
PropiedadesControlador.load(isProp);
GlpkUtil.config(PropiedadesControlador.getProperty(PropiedadesEnum.LIB_PATH));
brMat.lines().map(e -> e.split(" ")).forEach(problema::addODvalue);
brNod.lines().map(Nodo::new).forEach(problema::addNodo);
brAri.lines().map(Arista::new).forEach(problema::addArista);
brPar.lines().map(Parada::new).forEach(problema::addParada);
problema.datosCargados();
problema.check();
} catch (Exception ex) {
Logger.error(null, ex);
}
}
}
......@@ -3,7 +3,7 @@ package uy.edu.fing.lrt.util;
public enum PropiedadesEnum {
//La idea de los operadores geneticos es que tengamos varias impl y segun properties optemos por uno u otro
LIB_PATH("java.library.path", "C:\\Desarrollo\\glpk-4.65\\w64"),
LIB_PATH("java.library.path", "/usr/local/lib/jni:/usr/lib/jni"),
WORKSPACE("workspace", "../datos"),
PROPERTIES("properties", "properties/instancia1.prop"),
DEBUG("debug.eneable", "false"),
......
package uy.edu.fing;
import static org.junit.Assert.assertTrue;
/**
* Unit test for simple App.
*/
public class AppTest
{
public class AppTest {
/**
* Rigorous Test :-)
*/
public void shouldAnswerWithTrue()
{
assertTrue( true );
public void shouldAnswerWithTrue() {
}
}
......@@ -14,8 +14,6 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- <maven.compiler.source>1.8</maven.compiler.source>-->
<!-- <maven.compiler.target>1.8</maven.compiler.target>-->
</properties>
<dependencies>
......@@ -51,14 +49,6 @@
<compilerArgs>--enable-preview</compilerArgs>
</configuration>
</plugin>
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-compiler-plugin</artifactId>-->
<!-- <configuration>-->
<!-- <source>8</source>-->
<!-- <target>8</target>-->
<!-- </configuration>-->
<!-- </plugin>-->
</plugins>
</build>
......
# Actividad Integradora GFaller 2018
El codigo se encuentra en [LRT](/LRT)
## Requisitos
- [JDK11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html)
- [GLPK](https://www.gnu.org/software/glpk/)
- [GLPK-JAVA](http://glpk-java.sourceforge.net/)
- [MVN](https://maven.apache.org/download.cgi)
## Descarga
Se contamos con git podemos clonar el repositorio.
```git clone https://gitlab.fing.edu.uy/LRT-Project/LRT-AE.git```
Si no podemos descargarlo comprimido desde [aqui](https://gitlab.fing.edu.uy/LRT-Project/LRT-AE/-/archive/master/LRT-AE-master.zip)
```https://gitlab.fing.edu.uy/LRT-Project/LRT-AE/-/archive/master/LRT-AE-master.zip```
## Compilación
Para compilar se debe ejecutar:
```mvn clean install -DargLine='-Djava.library.path=/usr/local/lib/jni:/usr/lib/jni'```
Seteando la variable `java.library.path` con la ubicacion de `glpk-java`
## Ejecución
```java --enable-preview -jar LRTv2/target/LRTv2.jar```
## ANEXO
### Instalacion de GLPK-JAVA
- [Descargar](https://sourceforge.net/projects/glpk-java/)
- Descomprimir
- Verificar que se tiene `JAVA_HOME` seteado
- Ejecutar `./configure`
- Luego `make`
- Este paso necesita SVN
- Si no contamos con él se puede modificar el archivo `swig/Makefile.in`
- Quitando el comando `site` de la linea `@HAVEMVN_TRUE@ $(MVN) clean package site`
- Por ultimo ejecutamos `make install`
- Deberiamos tener una carpeta en `/usr/local/lib/jni` la cual es necesaria para que la applicación corra GLPK