planner-core | conference planning tool is used by event planning | Microservice library
kandi X-RAY | planner-core Summary
kandi X-RAY | planner-core Summary
This conference planning tool is used by event planning professionals to help them plan events such as conferences, conventions and other large gatherings. It helps plan things like venues, lists of attendees and participants. It also assists in building the complete event schedule and points out potential scheduling and/or room conflicts while you're building it. The Conference Planner tool also allows sending emails to prospective speakers and attendees, and lets you build surveys to assist in collecting data before, during or after your event. This open-source Conference Planner core code is also used in a cloud-based event planning tool by Grenadine Technologies called the Grenadine Event Planner.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Returns the image for the image
- Sets the current locale for the current session .
- Gets a screenshot .
- Returns the current user .
- Return the full path for the request
- Parses routes for the given resource .
- Given a nested list of nested routes for ActiveResources
- Sets resources to be used to plan
- Search for a page
planner-core Key Features
planner-core Examples and Code Snippets
Community Discussions
Trending Discussions on planner-core
QUESTION
Recently I added OptaPlanner dependency to my build.gradle in order to use the Vehicle Routing Problem of the Library. When I tried to use the solver I received the following error
...ANSWER
Answered 2020-Apr-09 at 17:58I presume you're using getter annotations. Use field annotations instead.
It's an improvement we made to use MethodHandles instead of reflection to call getters, and they are faster, but it has compatibility issues on Android and Graal.
QUESTION
We have been using OptaPlanner for a potential On-Prem/Cloud solution. We are currently using drools-rules that are compiled at runtime (i think the default behaviour?).
OptaPlanner is pulling in the "Eclipse ECJ" dependency via the Drools compiler.
optaplanner-core -> drools-compiler -> ecj
ECJ uses the EPL 1.0 licence which we have been instructed should not be distributed.
My question(s):
- Does OptaPlanner support pre-compiled drools rules?
- Are there any alternatives if we were to exclude 'ecj'?
ANSWER
Answered 2019-Nov-22 at 16:03ConstraintStreams are probably a way to avoid ECJ, as the Drools implementation won't compile DRL. And the faster Bavet implementation won't use Drools at all. However, ConstraintStreams are still young... (but very actively being worked on).
QUESTION
I have a test program that uses optaplanner. There is no direct use of KIE API's but it looks like they are being invoked behind the scenes. This may be related to the fact that I am using DROOLS for the score calculation. The program works from the IDE or through maven, but I want to create a standalone jar that will not require maven. I used the maven assembly plugin to build a fat jar with all dependencies included to be run standalone.
When I run java -jar target/OptaPlannerTest-1.4-SNAPSHOT-jar-with-dependencies.jar
I get :
ANSWER
Answered 2017-Oct-11 at 15:24Run "mvn dependency:tree" and you'll see that optaplanner-core depends on kie-api, kie-internal-api, drools-core and drools-compiler. One of those will be missing in your fat jar.
QUESTION
I want to do a custom change move to chained planning entities.
When certain conditions are met suppose I want to move E
such that it comes after B
as in the example below.
A <- B <- C
and D <- E <- F
become A <- C
and D <- B <- E <-F
To achieve this I implemented a CustomChangeMove
:
ANSWER
Answered 2019-Jan-09 at 01:05I figured it out I think. So far my implementation seems to work good and the issue seems to be occurring in createUndoMove
code that I had not posted and which was wrong.
This full code seems to work (at least there are no exceptions being thrown):
QUESTION
My program works fine from my IDE (IntelliJ) but for some reason, when I try to create a jar file I get following error when I run the program from a terminal:
Exception in thread "main" java.lang.NullPointerException at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:461)
org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:331)
org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:220)
org.optaplanner.core.impl.solver.AbstractSolverFactory.buildSolver(AbstractSolverFactory.java:57)
org.optaplanner.EmployeeRoster.main(EmployeeRoster.java:31)
This is my line 31 in EmployeeRoster:
...ANSWER
Answered 2018-Feb-07 at 01:40For me, the issue had to deal with how I wanted to run the jar (java -jar), and consequently how I built the jar. The NullPointerException arose when I upgraded to optaplanner-core/7.4.1 from 6.4.0. This issue was not present back when I was still using 6.4.0.
Exception:
java.lang.NullPointerException at org.kie.internal.io.ResourceFactory.newByteArrayResource(ResourceFactory.java:66) at org.drools.compiler.kie.builder.impl.AbstractKieModule.getResource(AbstractKieModule.java:299) at org.drools.compiler.kie.builder.impl.AbstractKieModule.addResourceToCompiler(AbstractKieModule.java:264) at org.drools.compiler.kie.builder.impl.AbstractKieModule.addResourceToCompiler(AbstractKieModule.java:259) at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:243) at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:74) at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:250) at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:218) at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:176) at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:503)
The following is a temporary workaround I did to resolve the NullPointerException and just get the application to run.
- Use IntelliJ's gradle to build one big jar with all dependencies.
- Unzip the jar, for example, to unzippedJar/ directory.
- Modify unzippedJar/META-INF/kie.conf
- Rejar the files.
- Run the jar with java.
QUESTION
I have an Object like this:
...ANSWER
Answered 2017-Sep-25 at 13:37So I got the answer thanks to some guidelines I encountered on the RedHat webpage on Business Central: FIRING RULES USING KIE SERVER JAVA CLIENT API
Key in this case was adding the classes to the configuration options for the Kie client. Code below is valid for connecting with KIE server via REST when using Drools/Kie workbench 6.5.0. command is a valid BatchExecutionCommand:
QUESTION
What i want to achieve
Currently i am running large inputs in my OptaPlanner project and with the current implementation of the constraints they are taking a long time even to calculate the initial score. So a given solver destroys the whole benchmark because it gets stuck and can not terminate. As a score calculation type i am using Drools.
I am trying to achieve an early termination of a solver that after a certain amount of time still has not passed the initial score calculation(no "Solving started" is displayed). So in a single benchmark i want to run multiple different inputs and for each of them i want to have a given timer and if that timer expires before the initial score calculation is done i want the solver to be terminated immediately. A desirable option would be to have a percentage of how much of the score calculation was completed.
The reason why i'm not just jumping on to doing optimizations is because i want to have a baseline for comparison and keep track of the results as the optimizations go on. So the information how much percentage of the initial score calculation has passed is vital for me.
What i have/know currently
- The version of OptaPlanner that i'm using is the one from GitHub that has the whole source code open(it is not the official version from the website which is compiled in JAR's and the core is not editable)
- Implemented timers for each solver of the benchmark which after a given time period call the
solver.terminateEarly()
method. - Each solver runs on it's unique thread. So the relation solver : thread is 1:1. The way i am finding out which solver is currently executing the code is by doing a lookup in a
Map solverMap
where the key is the value of the hashCode of the thread executing the solver ->Thread.currentThread().hashCode()
. As the solvers start and finish this Map is being updated. This way i am able to do the lookup from all the places (optaplanner-examples, optaplanner-core, optaplanner-benchmark projects and Drools rules(example below)) - Found out
kcontext.getKieRuntime().halt()
from the Drools documentation which is used to terminate rule execution immediately. - Implemented specialized rules that will reach the then part after each change of a planning/shadow entity and from the then part checks first is the solver terminated early(by the corresponding Timer) and if it is calls
kcontext.getKieRuntime().halt()
. For example:
In the rule below the then part will be reached after each change in a ShiftAssignment instance and the rule execution will be stopped if the solver is set to be terminated early.
...ANSWER
Answered 2017-Mar-02 at 11:05If possible, I'd first focus on making the DRL faster, instead of these hacks. So that comes down to figuring out which score rules are slow. Use the score calculation speed (in the last INFO log line) to determine that by commenting out score rules and seeing their impact on the score calculation speed.
That being said, normally I'd advice to look at unimprovedSecondsSpentLimit
or a custom Termination
- but that indeed won't help as those aren't checked while the initial score is calculated from scratched: they are only checked between every move (so between every fireAllRules()
, usually 10k/sec).
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install planner-core
On a UNIX-like operating system, using your system’s package manager is easiest. However, the packaged Ruby version may not be the newest one. There is also an installer for Windows. Managers help you to switch between multiple Ruby versions on your system. Installers can be used to install a specific or multiple Ruby versions. Please refer ruby-lang.org for more information.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page