Collaborative filtering when multiple items are rated multiple times by same user - collaborative-filtering

When trying to model as a recommendation problem the selection of an item that can be selected (and rated) by the same user many times, I can't find references of previous work.
It could be a context aware recommender system where context might be the time point in which the item is selected but where for example User1 can select item A (and rate it) then item A again (and give it a different rate) and then again item A can be selected n times.. then the same for item B, but item A could be again selected at any time point, and that could happen for any of the A, B, C... Z items. Could this be modelled somehow as a recommender system?

Related

Is there a way to total estimates and completed work in Azure DevOps queries?

We've come across a number of issues with our Azure DevOps projects and are trying to surface relevant information to the management team with queries and dashboards on projects. Mainly it's just been counting the number of results for particular queries, e.g. when a status hasn't changed in 30 days, number of blocked items, total items in current sprint etc.
What we've been asked for though is to be able to rollup the original estimate total for all work items, and also roll up the completed work as another value. The queries and other things I've seen only seem to be able to count, rather than sum up, but some of the widgets I've seen do appear to sum things for graphs (but I'm just looking for the values).
Can anyone suggest anything?
I imagine that you have two different options here. The first being is that you could leverage the new roll-up columns and aggregate some of this information on the backlog view. Some of this makes assumptions about how you are grouping and the hierarchy of your work items.
Add a rollup column
In the Column options dialog, choose Add a rollup column, select From quick list, and then choose from one of the options listed.
Choose from the menu provided.
Progress bar displays progress bars based on the percentage of associated descendant work items which have been completed or closed.
Total number displays the sum of descendant items or the associated fields of descendant items. Totals provide a measure of the
size of a Feature or Epic based on the number of its child items. For
example, Count of Tasks shows the sum of all tasks that are linked
to parent items. The active or closed state is ignored. Rollup column
menu
Remaining Work of Tasks shows the sum of Remaining Work of tasks that are linked to the parent item.
If you wanted to instead see the summarized details on a dashboard, I'd recommend downloading the Query Tile PRO marketplace extension. Let's say you had a query already defined:
The options support sums based on query fields:
And so you have the tile with the summation value you are wanting. Just replace with other fields that you might need.

Microsoft Access Form combo boxes and calculations

I have a question regarding a data entry form for project pricing estimates I am currently building.
To give you some context: The form will be used to enter data and complete calculations. It will replace an excel spreadsheet comprising of 59 columns, 1-15 rows (it varies by requirements) per project estimate. Average number of projects is 50-60 per year saved in respective customer folders. If there is an update to the estimate, a new version of the spreadsheet is created and saved in the respective customer folder. Hence, in certain scenarios, there are can be up to 10 versions saved per customer per project.
I am seeking to create a form-table combination for each of the customers: hence 10-15 forms with the same structure. Currently, I am only creating one form and table combination as a test. The table designed to replace the spreadsheet will use a total of 30 auto number foreign keys to store information. To be user friendly, I am using combo boxes in my form, where the user types in text but is stored as a foreign key in the table.
On top of this, I need to include calculations. For example, if the user selects certain options from my combo boxes, this will result in a calculated answer in an adjoining form field. Part of the calculated answer will use data in a linked table from another access database. Based on the options selected in the form combo boxes, the database will scan specific columns in the linked table to find matching entries to the selected combo box options. If a match exists, a price is extracted from that linked table. So say the combo box options selected are origin Miami and destination Salt Lake City, the database will scan for those 2 entries in the linked table. If that entry combination is found in the linked table, this price is to be used in the calculation. This price will then be multiplied by two other components entered by the user in the form, resulting in the calculated answer.
My questions:
Regarding the calculation example I gave above, can the above scenario be realistically accomplished in Microsoft Access? If so I am assuming I have to use VBA and/or Macros to do so?
a. If so, is it suitable to use my data entry form to complete it? Or is there an alternate way to achieve this result?
Will 30 combo boxes combined with such calculations have a significant impact on the speed of my form and database, especially as more data is added to the form and given that 10-15 forms will use the same structure? I have thus far included half of the combo boxes in 1 form, completed 1 test entry and I find that occasionally there is a slight lag when opening the form.
a. If it will impact my form's performance, what are my options/other form controls I can use to minimize lag and maximize speed?
Many thanks in advance!

Growing Tables with aggregations

I'm looking at creating a table that could potentially be loaded with 100s of rows. I was hoping to use the growing option that the tables provide. I have a few questions.
If I have a aggregation which is a total for all the rows in that column, will it be the total of all rows or only of those that have been loaded. Or can this be set with a variable etc.
similar to above the select all feature to tick all the rows, will this select every row even the ones not included, or will it just select the loaded rows. Again is this just a variable that I can set.
This is a first time really using any of the UI5 table elements, and the sap said this which I didn't really understand:
"Show Aggregations
Show aggregations (such as totals) on the table footer (sap.m.Column, aggregation: footer).
Do not show aggregations in “growing” mode. It is not clear, if an aggregation will only aggregate the items loaded into the front end, or all items."
For the growing tables, by default all actions and aggregations will only be processed for the data already loaded. Your citation from SAP means that it is not clear to the end user if the aggregated data refers to the visible data or to all data.
If you want to implement something like "Select all" or "Delete All", it would be better to implement this in the backend. From the guidelines of sap.m.List:
In multiple selection mode, users can (de)select all items using the shortcut CTRL+A. This only affects items that have already been loaded to the front-end server. All other items are not (de)selected before they are loaded (for example, items added via lazy loading with growingScrollToLoad). This conflicts with the guideline that all items the user can reach by scrolling must be (de)selected.
To process all items, listen to the selectionChange event and to its flag selectAll. This indicates whether CTRL+A was triggered. As soon as an action is triggered, process the items accordingly. Depending on the number of items, consider processing them in the back end.

"Anylogic" Inventory management

I want to simulate a hospital. A patient(disease is illustrated with color) arrives at the hospital, and the doctor needs a medical cart to treat patient.
The medical cart have four different item categories. Three of the item categories relates to the color of the patient and one item category is used at every patient.
When a patient arrives a certain amount of the medical cart gets drained, until it reaches a certain inventory level and the cart is transferred to a location to be filled up. For instance blue patient arrives and blue stock is lowered along with the general stock. If there is three blue patients in a row the carts needs is send to be refilled even though it still have stock for other patients.
An full example of the thinking: There are 40 carts available-each with medicin etc. for 4 blue patients, 3 green,2 red and 10 general. If first four patients are blue the carts needs to be refilled and a new cart is activated.
So the patient flow is described with discrete modeling using the processes modeling librabry, but I cant quite figure out how to create the medical carts in a way such as the inventory levels depend on the number of patients that arrives and at a certain level be filled up. Should I use agent based or system dynamic modelling or continue with discrete modeling?
Your Cart MUST be a resource that is seized by the doctor... When you release the cart you create a selectOutput asking the question if the cart is filled or not with the necessary items... If it's not it goes refill as you can see in the following image:
Now to ask the "itemsMissing" question... you need your resource to be a Cart agent with one variable for each item that keeps count of how many items remain.
This is what I would do... but you need to investigate probably how the release block works with the resource task end block, which is something I can't teach here, so you will have to investigate the help documentation if you don't know.... And probably you will have to adapt this example to your particular case.

Query to work out possible destinations on a set of routes using SQL Server 2008

I'm writing an application that models train routes, which are stored in the database table [TrainStop] as follows:
TrainServiceId
StationCode
StopIndex
IsEnabled
So a given train follows a route and consists of several rows with the StopIndex indicating the order. The problem I am trying to solve is to say which stations a user can get to from a given starting station based on the train services that are available. This would be relatively straightforward BUT it is also possible to disable stops which means that a user cannot get to any destinations after that stop for that train service. It is also possible that multiple trains on different routes can share stations e.g.:
Train Service 1: A, B, C, D, E
Train Service 2: P, Q, B, C, D, R
So if a user is at B they can go to C, D, E and R but if station D is disabled on either service they can get to C only. If station E is disabled on service 1 the user can get to C, D and R.
Solving this problem is fairly straightforward within C# but I am wondering whether it can be solved elegantly and efficiently within SQL? I'm struggling to find a way, for each route, to rule out stations past a row that is not enabled.
I think I might set it up this way. Three tables:
ROUTE
List of routes
STATION
List of stations
ROUTEPATH (or route plan?)
Many-to-many table between route and station, including the StopIndex attribute
Whether a station is enabled or disabled is both an attribute of an individual station (station is closed) AND an attribute of the route path (station before "this" station is closed, so "this" is also closed). That means that IsEnabled should appear in bot the STATION and ROUTEPATH tables.
When a station is to be disabled:
Flag it as disabled in STATION
Flag it as disabled in ROUTEPATH
For each route containing that station, flag all stations with StopIndex greater than that station's as disabled (these last two can be done as one update query)
When a station is to be enabled, reverse the process.
There will of course be problems when more than one station becomes disabled--or rather, when some but not all disabled stations become enabled again. I think it would be better to make ROUTEPATH's attribute "IsDisabled", and make it an integer:
Zero means not disabled
Non-zero means disabled
Increment it by one for each "station disabled" action
Decrement it by one for each "station enabled" action
A system like this should lend itself to relatively simple queries.