Giter Club home page Giter Club logo

kiwi's Issues

[Feature Request] incremental update notification

Is there any easy way to see which variables have changed during a call to solver.updateVariables? The api doesn't seem to give me a convenient way to incrementally update anything depending on the kiwi solver's state (such as UI), without checking each variable individually.

2 possible approaches for the API that spring to mind are:

  1. Having the variable constructor take a callback
type VariableConstructor = (name?: string, callback: (variable: Kiwi.Variable, new_value: any) => void) => Kiwi.Variable;
  1. Returning a list of tuples of dirty variables and their new values from solver.updateVariables
type VariableValue = any;
type SolverUpdateVariables = (this: Kiwi.Solver) => [Kiwi.Variable, VariableValue][];

Thoughts?

Missing types

Hey, it looks like the new version doesn't ship the types.

Could not find a declaration file for module '@lume/kiwi'. '...../node_modules/@lume/kiwi/dist/kiwi.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/lume__kiwi` if it exists or add a new declaration (.d.ts) file containing `declare module '@lume/kiwi';`
"main": "dist/kiwi.js",
"types": "dist/kiwi.d.ts",

image

Distance constraint?

As far as I can tell, this library doesn't support squares or square roots. As a result, I'm not sure if the library even supports adding constraints that are distance-based. For example, a point (x1, y1) and point (x2, y2) with a constant distance as a constraint. Am I missing something?

[QUESTION] Timetable constrain solver

Cheers Community,

I would like to build a lesson planner and am looking for a constrain solver in NodeJS. Currently I have found OptaPlanner as a Java variant and your kiwi.js npm package.

Does anyone have experience with constrain solvers in NodeJs environment (kiwi.js) and maybe with timetables?

Current "hard" constrains are:

  • classes
  • rooms
  • subjects
  • Teachers
  • timeslots

The idea behind the constraint solver should be an automatic assignment of subjects/teachers/classes within given timeslots.

Thanks for your help!

How to get an objective function? I want to maximize/minimize stuff.

I am trying to model a home battery solution, where I want to optimize profit from buying/selling energy.
The result should charge the battery on cheap hours, and sell it on expensive hours, given the constraints.

The battery has a minimum and maximum capacity (SOC: 0 ... 5 kWh)
The charging / discharging speed has a minimum and a maximum (load: -2 ... 2 kW)
The energy prices vary per hour, and are known 24 hours in advance. (price[1] .... price[24])

What I am able to do is model the SOC and LOAD constraints. And I can model the profit.hour[n] = load.hour[n] x price.hour[n].
The total profit (objective function) would be profit.hour[1] + profit.hour[2] + ..... + profit.hour[24]

But now the big issue: How do I optimize to get maximum profit? (or alternatively minimize for cost)? I would like to see for each hour what the optimum load should be.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.