Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
Conversion
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Vladislav Kiselev
Conversion
Commits
c6b43534
Commit
c6b43534
authored
Dec 04, 2018
by
Vladislav Kiselev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Возможность запуска решателя из кода.
parent
dcc68822
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
72 additions
and
2 deletions
+72
-2
src/inport/Main.java
src/inport/Main.java
+72
-2
No files found.
src/inport/Main.java
View file @
c6b43534
package
inport
;
import
java.io.
IOException
;
import
java.io.
*
;
public
class
Main
{
private
static
void
removeDirectory
(
File
dir
)
{
if
(
dir
.
isDirectory
())
{
File
[]
files
=
dir
.
listFiles
();
if
(
files
!=
null
&&
files
.
length
>
0
)
{
for
(
File
aFile
:
files
)
{
removeDirectory
(
aFile
);
}
}
}
dir
.
delete
();
}
public
static
void
main
(
String
[]
args
)
{
if
(
args
.
length
<
1
)
{
if
(
args
.
length
==
0
)
{
System
.
out
.
println
(
"To few arguments."
);
return
;
}
String
type
=
args
[
0
];
switch
(
type
)
{
case
"solve"
:
{
String
fileName
=
args
[
1
];
File
directory
=
new
File
(
"temp_data"
);
if
(!
directory
.
exists
())
{
directory
.
mkdir
();
}
String
tempDir
=
"temp_data/"
;
String
minizincData
=
tempDir
+
"minizinc_data.dzn"
;
String
solverResults
=
tempDir
+
"solver_results.txt"
;
String
constraints
=
tempDir
+
"constraints.mzn"
;
TaskCase
task
=
new
TaskCase
();
try
{
try
(
FileWriter
res
=
new
FileWriter
(
constraints
))
{
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
Main
.
class
.
getResourceAsStream
(
"/constraints/conversion_1.mzn"
)));
String
line
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
res
.
write
(
line
+
"\n"
);
}
}
task
.
deserialize
(
fileName
);
ConversionUtil
.
portToMiniZinc_1
(
task
,
minizincData
);
long
start
=
System
.
currentTimeMillis
();
Process
p
=
Runtime
.
getRuntime
().
exec
(
"minizinc --solver Chuffed "
+
constraints
+
" "
+
minizincData
);
p
.
waitFor
();
long
finish
=
System
.
currentTimeMillis
();
System
.
out
.
println
((
finish
-
start
)
+
" milliseconds"
);
try
(
FileWriter
res
=
new
FileWriter
(
solverResults
))
{
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
p
.
getInputStream
()));
String
line
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
res
.
write
(
line
+
"\n"
);
}
}
ConversionUtil
.
resolveMiniZincResults
(
task
,
solverResults
);
task
.
serialize
(
fileName
);
}
catch
(
IOException
|
InterruptedException
ex
)
{
System
.
out
.
println
(
ex
.
getMessage
());
}
catch
(
ParserException
ex
)
{
if
(
ex
.
getMessage
().
equals
(
"No solution."
))
{
System
.
out
.
println
(
ex
.
getMessage
());
}
else
{
System
.
out
.
println
(
"ParserException : "
+
ex
.
getMessage
());
}
}
removeDirectory
(
directory
);
break
;
}
case
"to_MiniZinc_0"
:
{
String
input
=
args
[
1
];
String
output
=
args
[
2
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment