價格:免費
更新日期:2015-05-29
檔案大小:27M
目前版本:0.0.1
版本需求:Android 2.3.3 以上版本
官方網站:http://boilerplate.co.in
Email:ashish.ram.garg@gmail.com
聯絡地址:A 601, Rohan Leher, Baner Pune 411045 India
This app provides a Development Environment to program a wide class of problems which have Integer solutions. It uses a technique called Constraint Programming. The tools provided by this technique are designed to allow non-specialists to address problems in a variety of domains including planning & optimization, scheduling, logistics, financial analysis, bioinformatics etc. More importantly it can be used for fun and learning.
Constraint programming falls under the umbrella of Declarative Programming paradigm. It allows relations between variables to be stated in the form of constraints, specifying the properties of a solution to be found. The set of constraints are then solved by the engine by giving a value to each variable so that the solution is consistent with maximum number of constraints.
The app comes pre-installed with 25 problems & solutions to demonstrate the technique. Besides more problems will be continuously added to the cloud database by the community.
1. Printed Circuit Board - Path Finding
2. Enigma - Cryptarithmetic
3. Logic Squares - Puzzle
4. Furniture Loading - Critical Path
5. Lying Monks - Logic
6. Logic Blocks - Packing Puzzle
7. Interview Scheduling
8. Bales of Hay
9. Balanced Diet - Optimization
10. Photo shoot - Puzzle
11. Marathon - Puzzle
12. Magic Sequence
13. Survo Puzzle
14. Lights On
15. Zebra Puzzle
16. Knapsack Value
17. Dollar Change
18. N Queens
19. Sudoku
20. Knights Tour
21. Map Colouring - 4 colour theorem
22. Least Difference
23. Travelling Salesman Problem
24. Send More Money - Cryptarithmetic
25. Balancing Equations - Equation Solving
Note: Given the constraints of a small device, the app is more of 'Toy' for enthusiasts and students rather than a tool for solving real life problems. While the solutions can run on a smaller device, writing a solution itself is more convenient with more screen real estate at your disposal. So 'Tablets' are preferred.
Steps to Modelling and Solving
------------------------------------------------
Execution happens in two steps.
1. Model Definition
Execution in this phase happens outside solver engine. The objective of this phase is to make calls to the solver engine to define the model.
- Identify variables that help define the problem. Name the variables and register them with the Engine through Define Commands
- Constrain the variables and their interrelationships.
- Define the goal. It could be one of the following -
- Find a Feasible solution.
- Find the count of feasible solutions.
- Maximize/Minimize an objective (a variable).
- And, of course put lots of comments in the code.
2. Model Execution
The call to 'findSolution' transfers the execution control to the solver engine. The control returns only when the Solver has resolved the variables i.e. assigned values to them.
Important Notes
--------------------------
- As in most popular programming languages, all indices start from zero i.e. the first element in the collection is referred by the 0'th index.
- All ranges are closed ended i.e. both the first and the last entries are included in the range.
- While converting a two dimensional structure like a grid into a one dimensional structure like an array, the order of reading/parsing is left to right and top to bottom.
App Controls
---------------------
- To see problem details, longtap on a local problem.
- To download a cloud problem, longtap on the problem. You cannot directly work on a cloud problem until you download it locally.
- To open a local existing solution, go to problem details tap 'Solutions' and choose 'Local'. Then longtap on one of the solutions to open it.
- To download a cloud solution, go to problem details tap 'Solutions' and choose 'Cloud'.Then longtap on one of the solutions to download it.
- To 'Run', 'Publish', 'Save' etc. a Solution longtap on the white space outside the programming blocks to reveal a context menu.