[gecode-users] Understanding cumulatives constraint
Roberto Pinto
librarama at gmail.com
Mon Jul 3 19:17:57 CEST 2006
Dear all,
I'm trying to compile a really basic example using the cumulatives
constraint, but I'm finding some problems that I hope you could help
me to solve.
My code is obtained starting from queens.cc, from which I inherited
the main structure changing the constraints.
I want to schedule 4 independent tasks on a single machine, which can
work one task at a time.
Hereby the complete and commented code:
/// START CODE---------------------------------------------------------------------
// Very basic scheduling problem.
#include "examples/support.hh"
#include "gecode/minimodel.hh"
class BasicScheduling : public Example {
protected:
IntVarArray q; //starting date
IntVarArray e; //ending date
public:
/// The actual problem
BasicScheduling(const Options& opt)
: q(this,4,0,20), e(this,4,0,20) ///for this example, I assumed only 4 tasks
{
IntArgs height(4);
IntArgs duration(4);
IntArgs limit(1);
IntArgs machine(4); ///let me understand: in this array, each
element represents the
///the machine assigned to a job, right?
for (int i = 0; i < 4; i++)
{
height[i] = 1; ///each task requires 1 unit of resource
per period
duration[i] = 4; /// each task lasts 4 periods
///that is, each task requires 4
resource units over 4 periods
machine[i] = 1; ///all tasks are worked on machine 1
}
limit = 1; ///the machine has only one resource
unit per period
for(int i = 0; i<4; i++)
post(this, e[i] - duration[i] = q[i] );
///the ending date depends on the starting date and the duration
/// that's all?
cumulatives(this, machine, q, duration, e, height, limit, true);
///Ok, in this case I could use cumulative constraint for a single
machine, but I want to ///extend the problem to more than 1 machines
branch(this, q, BVAR_SIZE_MIN, BVAL_MIN);
}
/// Constructor for cloning
///Indeed, I did not understand its purpose
BasicScheduling(bool share, BasicScheduling& s) : Example(share,s) {
q.update(this, share, s.q);
e.update(this, share, s.e);
}
/// Perform copying during cloning
/// same comment as above, I just cut&paste from queens.cc
virtual Space*
copy(bool share) {
return new BasicScheduling(share,*this);
}
/// Print solution
///doh, that's clear!!!
virtual void
print(void) {
std::cout << "\t";
for (int i = 0; i < q.size(); i++) {
std::cout << q[i] << ":"<<e[i]<<", ";
if ((i+1) % 10 == 0)
std::cout << std::endl << "\t";
}
std::cout << std::endl;
}
};
int
main(int argc, char** argv) {
Options opt("BasicScheduling");
opt.iterations = 2000;
opt.size = 4;
opt.c_d = 5;
opt.parse(argc,argv);
Example::run<BasicScheduling,DFS>(opt);
return 0;
}
///END CODE--------------------------------------------------------
I was expecting a solution like:
0:4, 5:9, 10:14, 15:19
instead I obtained:
0:4, 0:4, 0:4, 0:4
that is, it seems that all jobs are worked in parallel, while my
intention was to work them serially. I concluded I misinterpreted the
cumulatives constraint.
Can you help me using this constraint? maybe, can you provide me with
a working example (amending my code, for example :-) )
Thank you for you help.
Best wishes
Libra
More information about the gecode-users
mailing list


Don't forget to save settings after changing
Save
Backend
Host
Auth token (if necessary)
Check backend status
Notifications
Show 'Has contexts' popup (green)
Verbose errors (for debugging, may result in notification spam)
Behaviour
Highlight contexts (experimental, may result in slowdown on huge pages)
Blacklisted links and domains:
Source map
Style settings (CSS)
Sidebar style (DEPRECATED!)
If you had any settings here, please move them to the field above


Class for storing information about intersection of a Ray and a RenderObject.
More...
#include <Intersection.h>
Class for storing information about intersection of a Ray and a RenderObject.
◆ Intersection() [1/4]
◆ Intersection() [2/4]
| Intersection::Intersection |
( |
const RenderObject * |
intersect, |
|
|
const double & |
d |
|
) |
| |
◆ Intersection() [3/4]
◆ Intersection() [4/4]
| Intersection::Intersection |
( |
| ) |
|
◆ ~Intersection()
| Intersection::~Intersection |
( |
| ) |
|
Destructor of Intersection.
Note, that we only have to delete properties. It is not Intersection's responsibility to clean up intersect. In fact, chances are intersect is not even on the heap.
◆ does_intersect()
| bool Intersection::does_intersect |
( |
| ) |
|
◆ get_distance()
| double Intersection::get_distance |
( |
| ) |
const |
◆ get_object()
◆ get_properties()
Returns IntersectionProperties if they are stored here. Otherwise this method throws an exception.
Before calling this method you might want to call has_properties
- Returns
- Information about the intersection if these properties were stored here
◆ has_properties()
| bool Intersection::has_properties |
( |
| ) |
const |
- Returns
- True if information about intersection properties are stored in this object
◆ operator=()
◆ set_properties() [1/2]
RenderObject might choose to store information about the intersection here.
- Parameters
-
| p | Properties of the intersection |
◆ set_properties() [2/2]
| void Intersection::set_properties |
( |
const Material & |
mat, |
|
|
const Vector3D & |
normal |
|
) |
| |
RenderObject might choose to store information about the intersection here.
Setting the properties using this method will allow Scene to avoid calling intersect_properties of Renderobject. This might be desired if the surface normal/materials are calculated by RenderObjects ray_intersect already.
- Parameters
-
| mat | The material properties at the intersection point |
| normal | The surface normal at the intersection point |
◆ operator<
Decides which intersection is closer to the camera.
- Parameters
-
| first | The first intersection |
| second | The second intersection |
- Returns
- True if first is closer to the camera than second
◆ distance
| double Intersection::distance |
|
private |
◆ intersect
◆ properties
The documentation for this class was generated from the following files:


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Z
_
F
FileExtensions
- Enum in
view.enums
fillEntries(Object)
- Method in class view.editor.eventeditor.
ComponentTable
fillEntries(Object)
- Method in class view.editor.eventeditor.
EntityTable
fillEntries(Object)
- Method in class view.editor.eventeditor.
PropertyTable
fillEntries(Object)
- Method in class view.editor.eventeditor.
Table
flashCreatedEventText()
- Method in class view.editor.eventeditor.
EventEditorTab
forceAddComponent(IComponent, boolean)
- Method in interface api.
IEntity
Force add a component regardless of specs (enable true forceAdd).
forceAddComponent(IComponent, boolean)
- Method in class model.entity.
Entity
forceAddComponents(List<IComponent>, boolean)
- Method in interface api.
IEntity
Force add list of components regardless of specs (enable true forceAdd).
forceAddComponents(boolean, IComponent...)
- Method in interface api.
IEntity
Force add array/vargs of components regardless of specs (enable true forceAdd).
FRAMES_PER_SECOND
- Static variable in class testing.games.
ACGameMain
Friction
- Class in
model.component.physics
The friction component.
Friction()
- Constructor for class model.component.physics.
Friction
Empty constructor.
Friction(double)
- Constructor for class model.component.physics.
Friction
Construct with an initial value.
frictionProperty()
- Method in class model.component.physics.
Friction
Get the friction property.
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Z
_
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


THERAPY PAIN- menthol, methyl salicylate and capsaicin gel
Health Specialty.com
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.

DIRECTIONS
- APPLY ON CLEAN SKIN AND GENTLY RUB OVER AREA WITH PAIN. DO NOT USE MORE THAN 4 TIMES A DAY. WASH HANDS AFTER LOTION IS APPLIED AND RUBBED ONTO SKIN.
INACTIVE INGREDIENTS
Acrylates/C10-30 Alkyl Acrylates Crosspolymer, Butterbur Extract, Cetearyl Alcohol and Polysorbate 60, Glucosamine HCl, Glyceryl Stearate and Peg 100 Stearate, Hydroxypropyl Methylcellulose, Isopropyl Palmitate, Phenoxyethanol, Ethylhexylglycerin, Pine Bark Extract, Prickly Ash Bark Extract, Propylene Glycol, Sichuan Peppercorn Extract , Stearyl Alcohol, Water Deionsed, Willowbark Extract, Wintergreen Extract
|
THERAPY PAIN
menthol methyl salicylate capsaicin gel | ||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
|
| Labeler - Health Specialty.com (794053863) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| Health Specialty.com | 794053863 | manufacture(52137-1001) |


# gemcutter
This repository now contains only the `gemcutter` gem, which provides `gem yank` and `gem webhook`. The Rails app has moved to [rubygems/rubygems.org][rubygems]. Please update your links and remotes!
[rubygems]: github.com/rubygems/rubygems.org
gem install gemcutter
## Build Status [![Build Status](secure.travis-ci.org/rubygems/gemcutter.png)][ci]
[ci]: travis-ci.org/rubygems/gemcutter
## Dependency Status [![Dependency Status](gemnasium.com/rubygems/gemcutter.png)][gemnasium]
[gemnasium]: gemnasium.com/rubygems/gemcutter
## Contributing In the spirit of [free software][free-sw], *everyone* is encouraged to help improve this project.
[free-sw]: www.fsf.org/licensing/essays/free-sw.html
Here are some ways you can contribute:
- by using alpha, beta, and prerelease versions
- by reporting bugs
- by suggesting new features
- by writing or editing documentation
- by writing specifications
- by writing code (**no patch is too small**: fix typos, add comments, clean up inconsistent whitespace)
- by refactoring code
- by closing [issues][]
- by reviewing patches
[issues]: github.com/rubygems/gemcutter/issues
## Submitting an Issue We use the [GitHub issue tracker][issues] to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn’t already been submitted. You can indicate support for an existing issue by voting it up. When submitting a bug report, please include a [gist][] that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system. Ideally, a bug report should include a pull request with failing specs.
[gist]: gist.github.com/
- Fork the project.
- Create a topic branch.
- Implement your feature or bug fix.
- Add tests for your feature or bug fix.
- Run `bundle exec rake test`. If your changes are not 100% covered, go back to step 4.
- Commit and push your changes.
- Submit a pull request. Please do not include changes to the gemspec or version. (If you want to create your own version for some reason, please do so in a separate commit.)
## Supported Ruby Versions This library aims to support and is [tested against][ci] the following Ruby implementations:
- Ruby 1.8.7
- Ruby 1.9.2
- Ruby 1.9.3
- [JRuby][]
- [Rubinius][]
- [Ruby Enterprise Edition][ree]
[jruby]: www.jruby.org/ [rubinius]: rubini.us/ [ree]: www.rubyenterpriseedition.com/
If something doesn’t work on one of these interpreters, it should be considered a bug.
This library may inadvertently work (or seem to work) on other Ruby implementations, however support will only be provided for the versions listed above.
If you would like this library to support another Ruby version, you may volunteer to be a maintainer. Being a maintainer entails making sure all tests run and pass on that implementation. When something breaks on your implementation, you will be personally responsible for providing patches in a timely fashion. If critical issues for a particular implementation exist at the time of a major release, support for that Ruby version may be dropped.
Gemcutter is released under the MIT license. Please check the [LICENSE][] file for more details.
[license]: github.com/rubygems/gemcutter/blob/master/MIT-LICENSE


Man jailed for 'nauseating' rape of unwell girl
by Holly HumeA man has been jailed for eight years for a rape he committed in 2016 after the victim decided to pursue a prosecution two years later.
Rhys Street, 28, was found guilty on Monday November 18 at Chelmsford Crown Court of raping a young woman in her 20s after pretending to take care of her when she fell unwell.
Street, of Rembrandt Way in Colchester, had denied rape, sexual assault and two counts of assault by penetration.
His Honour Judge Turner told Street his conduct was inexcusable: "You took shameful disadvantage of this girl.
"More importantly, you took advantage when she was plainly unwell, you did so nauseatingly under the impression of looking after her.
"Rape is a grave offence, it's difficult to think of a more distressing assault.
"This sort of offence frequently leaves a destructive psychology legacy that will haunt someone for years to come."
As well as his eight year sentence, Street was put on the sex offenders register for life.
Essex Police did not reveal details of the offence but investigating officer Detective Constable Kelly Blackwell said: "This was a disgusting assault where Street used this woman's clear vulnerability to his advantage of her.
"The victim was brave enough to contact us and make a report, but, at the time, didn't wish to progress the investigation any further.
"We gathered the necessary evidence so that when, and if, she felt ready, we were able to take action against the perpetrator.
"Two years on and having made the decision to support a prosecution, we began criminal proceedings against Street.
"Thanks to this woman's bravery, she has not only helped to put Street behind bars but also ensured that he will be a registered sex offender for life, helping to protect other potential victims."


All Stories
{% for post in site.posts %}
{% if post.dotnet == true %}
{% include dotnetbox.html %}
{% endif %}
{% endfor %}
--- layout: page title: CompTIA Security+ All Posts comments: false ---


Success Message
Topic successfully added to favourites!
{% extends "base.html" %} {% load gravatar %} {% block css %} {{ block.super }} {% endblock %} {% block js %} {{ block.super }} {% endblock %} {% block title %}Komsu Komsu Huu{% endblock %} {% block sidebarjs%} {% endblock %} {% block content %} {% if favorite_topic == "success" %}
Topic successfully added to favourites!
Topic successfully removed from favourites!
You are not a member of this group!


1 Samuel 22:1
David therefore departed thence, and escaped to the cave Adullam: and when his brethren and all his father's house heard it, they went down thither to him.


To become a Tyrant your level must be over 40 and you must collect the Mark of the Challenger, the Mark of Glory, and the Mark of the Duelist.
I see that you have collected all 3 marks, but lack the training to advance. Come back when you have completed your training and I will advance your occupation to Tyrant.


Use this directive when you need to subscribe to the same observable multiple time in your template
Interval: {{interval}}
Object of observables: {{intervalsObj?.intTwo }} {{intervalsObj?.intOne}}
{{t.name}}
Use this function when you need to perform polling
Use this function when you have an expensive operation that you want to run inside a web worker


G. Fischer
Unread
Fischer is a key writer about meta-design; "designing for design", which intersects strongly with the problem of creating assets and learning trajectories for co-design workshops. This is an incredibly resonant paper for my work, given that it connects to co-design, but also design of software, the externalisation of constraints and in particular the externalisation through computational critics (automated problem-finding processes).
"Complex design problems require more knowledge than any one single
person can possess, and the knowledge relevant to a problem is
often distributed and controversial."
"Rather than being a limiting factor, 'symmetry of ignorance' can provide the foundation for social creativity."
"Social creativity can be supported by new media that allow owners of problems to contribute to framing and solving these problems."
"the activity or the product is not necessarily novel or original to a community of practice or society as a whole - but psychological, meaning it is personally novel and meaningful to the stakeholders who produced it"
"This paper explores three interrelated concepts: symmetry of ignorance, social creativity, and meta-design"
"The predominant activity in designing complex systems is that participants teach and instruct each other."
"Because complex problems require more knowledge than any single person
possesses, communication and collaboration among
all the involved stakeholders are necessary; for example, domain experts
understand the practice, and system designers know the technology."
"In order to bring important perspectives to the process of design, all stakeholders in the process should be designers and co-developers, not just consumers."
"End-users, as owners of problems, bring special perspectives to collaborative design activities that are of special importance for the framing of problems."
"approaches ...that view learning as collaborative knowledge construction [are] in sharp contrast to the teaching cultures of our schools, by which teaching is often fitted into a mold in which a single, presumably omniscient teacher explicitly tells or shows presumably unknowing learners something they presumably know nothing about"
"a human coach, a design critic, or a teacher can help the learner to identify the breakdown situation and to provide task-relevant information for reflection" £
"In our own work, we have explored the possibility of using computational critics to provide some of this support when humans are not present. Critics make argumentation serve design; this is, they support learners in their own activities." £
"Mutual competency supported by objects-to-think-with (externalization of ideas, concepts, and goals), leads to settings and opportunities for learning by all participants." £ especially the concept of objects-to-think-with
"Empowering individuals requires conceptual frameworks and computational environments that will give domain designers more independence from computer specialists. Past L 3 D research has developed conceptual frameworks to empower individuals by developing domain-oriented design environments (DODEs) [20], which make the computer invisible, and bringing tasks to the forefront in a variety of different domains. By being domain-oriented, they support (1) breakdowns, (2) critics, and (3) learning on demand." £ esp 'domain-oriented', and 'independence from computer specialists'
"Learning on demand ...is a promising approach to supporting creativity
for the following reasons: (1) it contextualizes learning by allowing it
to be integrated into work rather than relegating it to a separate phase;
(2) it lets learners see for themselves the usefulness of new
knowledge for actual problem situations, thereby increasing the
motivation for learning new skills and information; and
(3) it makes new information relevant to the task at hand, thereby
leading to better decision making, better products, and better
performance."
"Distributed cognition emphasizes that the heart of intelligent human performance is not the individual human mind but (1) groups of minds in interaction with each other or (2) minds in interactions with tools and artifacts."
"Externalizations: (1) create a record of our mental efforts, one that is "outside us" rather than vaguely in memory; and (2) represent situations that can talk back to us and form the basis for critique and negotiation."
"The ability to interact with the problem at hand and to have that situation 'talk back' is a crucial mode of design."
the effort required to contribute to organizational memory must be minimal so it will not interfere with performing the work at hand" £ important for rational of reconciliation
"Meta-design characterizes activities, processes, and objectives to create new media and environments that allow users to act as designers and be creative."
"A feasible design strategy to support users in their own domain of knowledge is that system designers make assumptions about classes of users and sets of tasks in which they want to engage - a design methodology leading to domain-oriented systems"
"A necessary, but not sufficient condition for meta-design is that software systems must have features that permit users to create customizations and extensions"
"The EDC is a meta-design approach with the goal of creating environments that are immersive and emergent. An immersive environment allows stakeholders to become deeply engaged in problem solving in the context of information, action, re ̄ection, and collaborations relevant to the situation, whereas an emergent environment addresses the need for this context to grow and evolve based on ongoing problem-solving activities. These intertwined concepts require the EDC to support stakeholders in (1) creating and capturing knowledge in the context of collaborative design activities; (2) sustaining the timeliness and utility of evolving information; (3) articulating their own knowledge in a form that other people can understand; (4) enhancing existing knowledge with new knowledge; and (5) creating tools that help stakeholders think, and help analyze their constructions and artifacts."
"The action space of the EDC is built using AgentSheets [37], a software environment for creating simulations and domain-oriented environments. AgentSheets applications include a collection of autonomous computational processes, called agents, that are comprised of a look (their on-screen representation), and a programmed behavior. Agents in AgentSheets are programmed in Visual AgenTalk, a programming environment suitable for end-user programmers."
"Meta-design is supported by the seeding, evolutionary growth, reseeding model" £ follow up reference here.
"Failing to make computation accessible with reasonable cognitive costs
to all people will reduce people's creativity. Furthermore, it will
prevent the emergence of computational environments that need to evolve
through the active contributions from their users."
This paper refers to a number of co-design workshop events supported with a "Domain-Oriented design environment" - a computational infrastructure to support reflection for different design domains. An example cited is a system for stakeholders to assign buses to routes in Boulder, Colorado (where the research team are based). These are domain-specific tools which support participants by allowing them to learn fundamentals about the problem, as well as learn perspectives from others, by externalising their thinking into a computer-supported scratch space which embodies the problem landscape. The authors assert that a single individual cannot be expected to have insight into all the important aspects of a real-world design, demanding that specific effort is invested in creating the conditions for exchange and consolidation of multiple stakeholders' insights. Designing for sharing within a design workshop helps others who have complementary knowledge (hence 'symmetry of ignorance') to engage with and collaborate over each others issues of concern. The computer supported design environment helps to make constraints from the domain explicit as part of participants' design exploration, (such as how quickly buses can get around, for example), which are implemented through simulated computational entities (having behaviours of their own, crafted to reflect the domain).
This paper reads like a position paper, which introduces key phrases, but relates them to a thread of research activity which is presented without a great deal of implementation detail. In general the authors are agitating for acknowledgement of meta-design as a recognised field of design, in which environments are crafted to help others engage in design through 'social creativity' and 'collaborative knowledge construction'. In particular they recognise the creative value of 'breakdowns' in which expectations cannot be achieved because of constraints in the domain, and rely on 'objects-to-think-with' to surface these breakdowns in a way that participants can address them.
The particular approach they recommend might apply very well to agent-oriented systems such as public-transport networks, in which each vehicle can be presented as an agent with simulated/programmed behaviour. This suggests that the approach only applies to a narrow set of domains, where this encoding of agent behaviours is feasible/comprehensible. This very important question is not explored within the paper.
Provided as part of Facemooc course reading materials.
Discusses the relevance of learning as a creative dimension (and epistemic learning/creativity relative to the participants pre-existing knowledge being relevant, not just new learning as a species).
Introduces "critiquing systems" as a mechanism for domain-specific reflection-in-action.
Symmetry of Ignorance is a term credited to Rittel in "Second Generation design methods" (from Cross' edited Developments in Design Methodology).


[§436B-28] Remedies or penalties cumulative. Unless otherwise expressly provided, the remedies or penalties provided by this chapter are cumulative to each other and to the remedies or penalties available under all other laws of this State. [L 1991, c 111, pt of §2]


this.defined = function () { tagg.log("defined-called", "tagg-script", "defined was called on this definition") } this.setup = function () { this.style.height = this.size + "px"; this.style.width = this.size + "px"; }


Fabian Schar and Christian Atsu back in contention for starts at Burnley this weekend
Newcastle United boss Steve Bruce was counting the cost of playing two games in the space of four days after the weekend
by Lee RyderBoth Ciaran Clark and Allan Saint-Maximin could miss the trip to Burnley this weekend after picking up muscle injuries in the 2-1 win over Southampton.
The Republic of Ireland international - who scored at Turf Moor last term - picked up a calf injury and came off at half-time against the Saints.
Although, Clark is in much better shape than Saint-Maximin after the French winger hobbled out of St James' Park admitting he'd suffered a "bad one" after sustaining a hamstring problem.
After the game Bruce said: "I toyed with changing us.
"It's the first time we've had three games in nine days and the extra day's recovery that Southampton had is huge.
"Because I didn't, we've probably picked up two muscle injuries which bear fruit of people not recovered.
"When people do it at half-time and full-time like they are, basically they are fatigued."
The good news for Bruce is that he has a healthy squad to bring in replacements.
Sean Longstaff and Andy Carroll came off the bench and played a big part.
While Atsu could be a simple choice to replace Saint-Maximin against the Clarets.
Bruce added: "I'm delighted to see Longy again.
"Look, the way to create the spirit when somebody comes into the team and does well is to reward them, and that's the way I've always tried to manage.
"I've had Fab Schar knocking on the door for weeks now he's back fit, but Dummett and Clark and Fede have been excellent.
"We've got Florian Lejeune as well, so we'll need them now.
"All of a sudden, we've got six or seven [I'm presuming he means injuries], so we need that big squad and that's when I'll use them all."


{% extends "llamas/base.html" %} {% block extrameta %}
Grayscale images, RBBI reconstructed color images, json files for the annotations
100,042 images. Checkout the repo. Take a closer look at the label information. Suggest benchmarks.
Links valid for 30 days! Do yourself a favor and use a download manager.
Scripts to get started are available at https://github.com/karstenbehrendt/unsupervised_llamas. Feel free to extend them.
108 GB Europe: {{europe_server}}/{{current_simlink}}/color_images.zip
34 GB Europe: {{europe_server}}/{{current_simlink}}/grayscale_images.zip
650 MB. Take a look at the repo! Europe: {{europe_server}}/{{current_simlink}}/labels.zip


This is some text!
Ruby is a programming language focused on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. The Ruby programming language is most commonly used with the Ruby on Rails framework. Ruby and Rails are typically used by younger companies and startups, especially for building interactive web applications.
Rails is a web development framework written in the Ruby language and typically referred to as “Ruby on Rails”. Rails was the first mainstream web framework to embrace the concept of convention over configuration, which improves productivity by setting sensible defaults that work for most projects.
PHP is a server-side scripting language designed primarily for web development but also used as a general-purpose programming language. PHP originally stood for Personal Home Page, but it now stands for the recursive acronym PHP: Hypertext Preprocessor.
Drupal is free, open source software that can be used by individuals or groups of users -- even those lacking technical skills -- to easily create and manage many types of Web sites. The application includes a content management platform and a development framework.
Java is arguably the most popular programming language today. It's used for everything from web applications to backend services to mobile applications to embedded systems. Students who learn Java programming will be able to create dynamic web applications, and be able continue into our Android track.
Android is a mobile operating system developed by Google, based on Linux and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android is the most popular operating system and used for a variety of purposes, including running mobile apps, taking photos, sending messages, etc.
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language. ... CSS is designed primarily to enable the separation of presentation and content, including aspects such as the layout, colors, and fonts.
C# (pronounced "C-sharp") is an object-oriented programming language from Microsoft that aims to combine the computing power of C++ with the programming ease of Visual Basic. C# is based on C++ and contains features similar to those of Java.
A Microsoft operating system platform that incorporates applications, a suite of tools and services and a change in the infrastructure of the company's Web strategy. The .NET Framework supports building and running of next gen of applications and XML Web services.


Ex-VCU men's basketball coaches never too far from program thanks to contract stipulation
by Ryan GaydosVCU men’s basketball coaches always find themselves returning to the Rams’ home arena even after they have moved on to other high-profile coaching positions.
That’s thanks to a contract stipulation the school has set in place for coaches since Jeff Capel’s successful time with the Rams from 2002 to 2006. The rule was inspired when the program was about to leave the Metro Conference, the New York Times reported Wednesday.
IONESCU SURPASSES 2,000 POINTS AS NO. 1 OREGON ROUTS UTAH ST
VCU sued the teams that left the conference and demanded they play the team at their home floor in Richmond. Richard Sander, who was the school’s athletic director from 1986 to 2006, told the newspaper he came up with the idea when Capel became the head coach.
“Knowing that it was tough to get home games, I just wrote in his contract that if he took a job at a pre-eminent institution that we’d play a home-and-home series,” Sander said. “When he left and went to Oklahoma, it became part of the buyout. When I hired Anthony [Grant] after that, we kept it in his contract and all the coaches since have had the same thing.”
EVANSVILLE UPSETS NO. 1 KENTUCKY AT RUPP ARENA IN FIRST-EVER MATCHUP
Capel left to coach Oklahoma after the 2005-06 season, but was forced to schedule a home-and-home series with VCU because of the contract, the New York Times reported.
The same stipulation was used for Anthony Grant, Sasha Smart, and Will Wade. Grant, who is currently with Dayton, left for Alabama in 2009. Smart left for Texas in 2015 and Wade bolted for LSU in 2018.
Wade and the LSU Tigers returned Wednesday only to lose 84-82.
“I’ve spent more time at VCU than I have anywhere else in my coaching career. I was there for six years — two years as a head coach and four years as an assistant,” he said before tipoff, according to the New York Times. “It’s going very be very odd to be on the other bench.”
CLICK HERE FOR MORE SPORTS COVERAGE ON FOXNEWS.COM
Among Capel, Grant, Smart and Wade, the Rams made the NCAA Tournament 10 times and reached the Final Four in 2011.
Current coach Mike Rhoades made the tournament for the first time last season and is currently 3-0 this year.


asd
ad
For Appointment
Test
Akibur Rahman
23yrs
Male
Mobile:<PHONE_NUMBER>01
123456789
Date 01/01/2019
CC
OE
Tests
Treatments
Advice


- GameManager - Class in <Unnamed>
-
GameManager defines how the game is set up and calls the methods needed for the game to be played.
- GameManager() - Constructor for class GameManager
-
Create a new GameManager with a GUI display of max height and width 500 pixels.
- GameManagerInterface - Interface in <Unnamed>
-
GameManagerInterface provides an abstract interface to a GameManager Class that should be implemented.
- GameState - Enum in <Unnamed>
-
Enumeration class GameState - Defining for the end of the game what the final state is - WON, LOST, INCOMPLETE
DO NOT CHANGE THIS FILE
- gameWon() - Method in class Board
-
Checks whether red, then blue, has won, using PlayerWon.
- gameWon() - Method in interface BoardInterface
-
Checks to see if either player has won.
- getAdjactents(int, int) - Method in class Coordinate
-
Returns a list of the valid coordinates around this coordinate
- getAiDistance() - Method in class PotentialMove
-
- getBelowHexPoint() - Method in class Hex
-
- getBoard() - Method in class GUIPanel
-
- getBoardView() - Method in class Board
-
Returns a deep copy of boardArray.
- getBoardView() - Method in interface BoardInterface
-
This method will return a two dimentional array of Pieces which represents the current state of the
board.
- getBottomRightPoint() - Method in class Hex
-
Get the bottom right corner of the bounding rectangle
- getBridges(int, int) - Method in class Coordinate
-
Returns a list of valid coordinates that are in appropriate positions to be bridges to/from this coordinate
- getColor() - Method in class Hex
-
- getColour() - Method in class ComputerPlayer_xvhn44
-
- getColour() - Method in class HumanPlayer
-
- getConnectedEdges() - Method in class Node
-
- getCoords() - Method in class Hex
-
- getCoords() - Method in class Node
-
- getDistance() - Method in class Graph
-
- getDistance() - Method in class Node
-
- getEndNode() - Method in class Graph
-
- getFirstMove() - Method in class PotentialMove
-
- getHex(Point) - Method in class GUIBoard
-
Get the hex that was clicked
- getHexes() - Method in class GUIBoard
-
- getHexPoly() - Method in class Hex
-
- getMove(Piece[][], Piece) - Method in class GUIFrame
-
- getMoveOptions() - Method in class DjikstraRunnable
-
Return the values for each potential move, as PotentialMove objects.
- getNode1() - Method in class Edge
-
- getNode2() - Method in class Edge
-
- getNodesMap() - Method in class Graph
-
- getNumberEqual() - Method in class PotentialMove
-
Return the number of second moves that are equally valid
- getOppDistance() - Method in class PotentialMove
-
- getOtherNode(Node) - Method in class Edge
-
Return node1 or node2, whichever is not passed as a parameter.
- getPieceColour() - Method in class Hex
-
- getPlays() - Method in class MCTSRunnable
-
- getPlays(int, int) - Method in class MCTSRunnable
-
Get the plays of a specific location
- getPreferredSize() - Method in class GUIPanel
-
- getRightHexPoint() - Method in class Hex
-
- getSecondMove() - Method in class PotentialMove
-
- getSize() - Method in class GUIBoard
-
Get the size of the board drawing
- getStartNode() - Method in class Graph
-
- getType() - Method in class Edge
-
- getType() - Method in class Node
-
- getValue() - Method in class PotentialMove
-
- getWeight() - Method in class Node
-
- getWins() - Method in class MCTSRunnable
-
- getWins(int, int) - Method in class MCTSRunnable
-
Get the wins of a specific location
- getWon() - Method in class GameManager
-
Calls board.gameWon()
- getX() - Method in class Coordinate
-
- getXPosition() - Method in class Move
-
Get the x coordinate of the move.
- getXPosition() - Method in interface MoveInterface
-
Get the x coordinate of the move.
- getY() - Method in class Coordinate
-
- getYPosition() - Method in class Move
-
Get the y coordnate of the move.
- getYPosition() - Method in interface MoveInterface
-
Get the y coordnate of the move.
- Graph - Class in <Unnamed>
-
A graph stores nodes such that the distance from a start to end node can be calculated.
- Graph() - Constructor for class Graph
-
Create the start and end nodes, initialise the node map.
- GUIBoard - Class in <Unnamed>
-
GameManager defines how the game is set up and calls the methods needed for the game to be played.
- GUIBoard() - Constructor for class GUIBoard
-
Create a blank object
- GUIFrame - Class in <Unnamed>
-
- GUIFrame(Piece[][], Dimension) - Constructor for class GUIFrame
-
- GUIPanel - Class in <Unnamed>
-
Created by Steven on 23/04/2016.
- GUIPanel() - Constructor for class GUIPanel
-
Create a new panel


Bangladesh win toss, bat first in 1st Test against India
by bdnews24.comBangladesh have been forced on the back foot early in the innings after losing both their openers in quick succession in the of the two Test matches against India in Indore.
The Tigers lost their first wicket with 12 runs on the board as left-hander Imrul Kayes (6) edged an Umesh Yadav outswinger to Ajinkya Rahane at first slip.
Shadman Islam (6) followed him back to the pavilion in the very next over after he nicked an Ishant Sharma delivery to Wriddhiman Saha behind the stumps.
Bangladesh are currently 19 for 2 as skipper Mominul Haque and Mohammad Mithun attempt to steady the ship.
Earlier, the Tigers won the toss and opted to bat first on a wicket with enough grass on it to cause problems for batsmen.
This is Bangladesh's first match of the World Test Championship. It also marks Mominul's debut as captain in the longer format as Bangladesh look to upset the top-ranked Test team in the world.
THE TEAMS
Bangladesh XI: 1 Imrul Kayes, 2 Shadman, 3 Mohammad Mithun, 4 Mominul Haque (capt), 5 Mushfiqur Rahim, 6 Mahmudullah, 7 Liton Das, 8 Mehidy Hasan Miraz, 9 Taijul Islam, 10 Abu jayed, 11 Ebadot
India XI: 1 Rohit Sharma, 2 Mayank Agarwal, 3 Cheteshwar Pujara, 4 Virat Kohli (capt), 5 Ajinkya Rahane, 6 Ravindra Jadeja, 7 Wriddhiman Saha (wk), 8 R Ashwin, 9 Ishant Sharma, 10 Mohammad Shami, 11 Umesh Yadav


--- layout: post title: 'Net::SSH 2.0 preview #1' post_id: 80 categories: - announcements - projects date: 2007-08-21 11:54:00.000000000 -06:00 author: Jamis permalink: 2007/8/21/net-ssh-2-0-preview-1.html ---
I’m really pleased with how Net::SSH v2 is turning out. I’ve actually got it to a point where it’s about ready for a first preview release! If you’re an adventurous soul, you can grab the preview release gem (version 1.99.0) here:
Note that Net::SSH v2 is not going to be 100% backwards compatible with 1.x. Many things will work mostly the same, but here are a few of the most significant gotchas:
Net::SSH.start
now uses a fixed parameter list, instead of the polymorphic monster it was. This makes it much easier to document, and use. The first parameter is always the host you are connecting to, and the second is always the username you’re connecting as. Options always come last.There are also a couple of (much needed!) short cuts for executing commands:
1 2 3 4 5 6 |
Net::SSH.start("localhost", "jamis") do |ssh| puts ssh.exec!("echo hello world!") ssh.exec("hello world") ssh.loop end |
The first, #exec!
, will block until the command finishes, and will return the output. The second will return immediately, before executing the command, and will run when the event loop does, writing output to the terminal.
The documentation is pretty much done, too. To see it, just install the gem, change to the net-ssh-1.99.0 gem directory, and run “rake manual”. Then open “doc/out/index.html” in a browser. It includes a brief tutorial, a quick-reference, and an FAQ-style “how do I do X” interface.
So! Give it a try. Remember that the current release of Net::SFTP won’t work with this new version (at all), and neither will Capistrano. But the lovely thing about RubyGems is that you can easily install and uninstall, on demand.
Oh, and before I forget, a couple of little teasers about what’s coming up:
1 2 3 4 5 6 7 8 9 10 |
require 'net/scp' Net::SCP.download("localhost", "jamis", "/Users/jamis/.bashrc", "./my-bash-rc") do |name, sent, total| if sent == 0 print "downloading #{name} (#{total}b): " elsif sent == total puts else print "." end end |
and…
1 2 3 4 |
require 'uri/open-scp'<EMAIL_ADDRESS>do |io| puts io.read end |


Before Change
experiment_object.submitter_institution = ", ".join(unique_people)[:255]
else:
experiment_object.submitter_institution = idf_dict["Person Affiliation"]
if "Protocol Description" in idf_dict:
experiment_object.protocol_description = ", ".join(idf_dict["Protocol Description"])
if "Publication Title" in idf_dict:
// This will happen for some superseries.
// Ex: E-GEOD-29536
// Assume most recent is "best:, store the rest in experiment annotation.
After Change
protocol_url = request_url + "/protocols"
protocol_request = utils.requests_retry_session().get(protocol_url, timeout=60)
try:
experiment_object.protocol_description = protocol_request.json()["protocols"]
except KeyError:
logger.warning("Remote experiment has no protocol data!",
experiment_accession_code=experiment_accession_code,


CVS Revision: "$Revision: 1.0 $"
number 1
Label For this Field
These text fields are not in a form
Disabled text box
Another Label (pointless- its a readonly box!)
readonly text boxes
This is used in text1 in form test1
These text fields are used to test :beforeText and :afterText
This Text After
This Text Before
This Field has javascript events in it
Password Fields
Password With Name
Password With ID ( the text here is a label for it )
Div Text


The tallest tower in Spain at 250 meters, Torre de Cristal stands prominently within the Cuatro Torres Business Area north of the city center in Madrid. This expanding financial district contains Spain’s four tallest towers, giving the business park its name. The towers are arranged along the Paseo de la Castellana, Madrid’s main north-south thoroughfare. Spaced apart to allow distinct views of each tower, the buildings re-define the skyline of Madrid.
Among the building’s energy-saving features is the high-performance, ventilated double-glazed curtain wall, the largest low-iron-glass installation in Europe at the time of the building’s construction. The curtain wall includes integrated blinds controlled by a central computer to automatically adjust according to natural lighting levels, conditions and HVAC usage. In addition, the roof has photovoltaic cells to heat water for the building.
Building amenities include a fitness center, meeting rooms available to all of the building’s tenants, and two restaurants, one on the ground floor and one on the mezzanine. Parking is below grade. To create a comfortable environment for the building’s occupants, no office is deeper than 9.5 meters (31 feet), enabling all workspaces to receive natural light. Energy-efficient under-floor air delivery allows for localized adjustments to heating and cooling, further increasing comfort


Create a basic vertical navigation bar with a gray background color and change the background color of the links when the user moves the mouse over them.


Technical Blog: Comparing Arrays and Hashes in Ruby
March 15, 2015
Arrays in Ruby
An array is a numbered collection of objects. They are useful when storing numbers, strings, other arrays, hashes, and classes. To store values, you can simply use square brackets, []. I find it useful because it allows you to select an object based on a consistent, consecutive numerical index. There are multiple ways to create arrays, such as Array.new, .to_a, or by using a simple [].
Arrays have their own methods to manipulate their values. For example: `.push, .pop, .first, .last, .at` etc. To access a value in an array, you can state the number index where its ordered, BUT the numbers must start from zero. Here is an example of an array:
array = [1, 2, 3, 4, 5] #if I wanted to find the value of 1, I would use,
array.at(0) #and this would return 1,
=> 1
In addition, you can have arrays within an array. For example:
array_1 = [1, 2, 3, 4, 5, [2, 6, 7, 3, 5]]
array_2 = [[1, 2, 3, 4, 5], [2, 6, 7, 3, 5]]
Also, you can merge them into one array by using the array method of .flatten. For example:
array_1 = [1, 2, 3, 4, 5, [2, 6, 7, 3, 5]].flatten
=> [1, 2, 3, 4, 5, 2, 6, 7, 3, 5]
You can find out how many values an array has stored in it by using .length. For example:
array = [1, 2, 3, 4, 5].length
=> 5
You can pull an unique value by using .uniq or you can join them together by using join.
array = [1, 1, 2, 3, 3, 4, 4, 4, 5, 5].uniq
=> 2
array = [1, 2, 3, 4, 5].join
=> 12345
Hashes in Ruby
Hash is an unordered collection of objects that pairs objects by a key and a value. It's similar to an array, but instead of numbered indexes, a hash stores values by unique keys. For example:
{key: value}
Hashes are useful when storing objects like numbers, strings, arrays, classes, etc. To store a value you need to use curly brackets {}. You can also select an object based on the given key it was stored under. For example:
fruit_colors = {apple: red, banana: yellow, kiwi: green}
print fruit_colors(apple)
=> red
You can create a hash with Hash.new, #to_hash or with simple {}. Hashes have their own methods to manipulate their values (like, .delete, .freeze, .fetch, etc.). You can also merge multiple hashes into one hash by using hash method .merge. For example:
x1 = { "a" => 100, "b" => 200 }
x2 = { "b" => 254, "c" => 300 }
x1.merge(x2) returns {"a"=>100, "b"=>254, c"=>300}
You can find out how many values a given hash is storing by stating .length. For example:
x1 = { "a" => 100, "b" => 200 }.length
=> 2


Get an insurance quote!
House insurance
With our Helvetia Household insurance you will feel protected by ample coverage and assistance from a team of highly qualified and specialised professionals, as well as a 24 hour telephone assistance service.
Get an insurance quote!
Healthcare Insurance
Because your health and that of your loved ones is the most important thing, Helvetia Insurance has designed a product that offers you top quality medical assistance at competitive prices.
Get an insurance quote!
Funeral Insurance
Feel protected against risks and unforeseen circumstances with Helvetia Family Assistance Plan, an innovative policy devised to guarantee the maximum protection for your family, at any time and place, thanks to a wide range of cover for cases of death, accident, illness, travel and legal assistance.
Get an insurance quote!
Car insurance
Because our commitment is to your safety, we have designed a policy aimed at protecting you from the many eventualities that can occur at the wheel of your car, not only those that can happen to you, but also ones that you may cause.
- House insurance
- Healthcare Insurance
- Funeral Insurance
- Car insurance


What Can Be Changed?
Flight Tracker is meant to be modified for each institution’s individual purposes. However, in the long run, we'd like to aggregate de-identified data across institutions in order to better assess what career development practices work best. In order to compare apples to apples in statistical analysis, Flight Tracker must maintain an inner core that is essentially the same from institution to institution.
Features Open to Modification
- Flight Tracker Configurations - Flight Tracker provides several configuration pages.
- General → Configure Application
- General → Configure Summaries
- Wrangle → Lexical Translator
- Survey settings in REDCap (this adjusts things like the header text of a survey, not the questions themselves)
- Dropdown and radio choices in REDCap fields
- Brand logo
- Additional surveys
- Additional questions on surveys
- Additional forms from other data sources
- Additional custom PHP Code (please coordinate with Scott Pearson)
- Wording of questions on data forms (but not surveys that go to scholars).
Features whose Modification is Strongly Discouraged
- Please do not change the way the questions are worded. If you want a change, please suggest it via the feedback form. Changing the wording of survey questions can potentially bias future analysis when data is aggregated.
- Please do not delete any questions.
- Please do not delete any choices in a dropdown, except for fields ending in _source. (You can delete data sources that might be specific to Vanderbilt’s set up.)
- Please do not modify any coordinated PHP code unless coordinated with the Vanderbilt authors.


class: center, middle, inverse, title-slide # Multinomial models ### Mahendra Mariadassou, INRAE ### Shandong University, Weihai (CN)
Summer School 2021 --- --- class: middle # Reminder .pull-left[ - Interest for .alert[multivariate count data] - Counts in ecology have .alert[peculiar] features: - sparse (.grey[grey cell] = null count) - overdispersed - not centered around a central location parameter - Example from Jakuschkin, Fievet, Schwaller, Fort, Robin, and Vacher [Jak+16]  ] .pull-right[ ![](03_multinomial_models_files/figure-html/unnamed-chunk-1-1.png) ] --- # Multinomial models By increasing order of complexity 1. Multinomial 2. Mixture of Multinomial 3. Dirichlet Multinomial (Mixture) 4. Latent-Dirichlet Allocation --- class: inverse, center, middle # Multinomial distribution --- # Multinomial distribution (MN) #### Intuition - There are `\(p\)` species with proportions `\(\bpi = (\pi_1, \dots, \pi_p)\)` in the sample - You pick `\(N\)` (total count) individuals with replacement in the sample - `\(Y_j\)` it the number of individuals from species `\(j\)` -- #### Mathematical model $$ \bY \sim \mathcal{M}(N, \bpi) $$ -- #### Density The probability mass function (PMF) at `\(\bY = (Y_1, \dots, Y_p)\)` where `\(\sum_j Y_j = N\)` is given by $$ `\begin{equation} P(\bY; \bpi) = \frac{N!}{Y_1! \dots Y_p!}\prod_{j=1}^p \pi_j^{Y_j} \Leftrightarrow \log P(\bY; \bpi) = \sum_{j=1}^p Y_j \log(\pi_j) + C \end{equation}` $$ where `\(C\)` does not depend on `\(\bpi\)`. --- # Maximum Likelihood Estimation #### Likelihood The log-likelihood of a i.i.d sample `\((\bY_i, \dots, \bY_n)\)` is given by: $$ `\begin{equation} \ell(\bpi) = \log P((\bY_1, \dots, \bY_n); \bpi) = \sum_{i=1}^n \log P(\bY_i; \bpi) = \sum_{j=1}^p \left(\sum_{i=1}^n Y_{ij}\right) \log(\pi_j) + C \end{equation}` $$ where - `\(\bY_i = (Y_{i1}, \dots, Y_{ip})\)` - the total count in sample `\(i\)` is `\(N_i = Y_{i1} + \dots + Y_{ip}\)`. -- #### Inference The maximum likelihood estimate `\(\hat{\bpi}\)` of `\(\bpi\)`, defined as `\(\hat{\bpi} = \text{arg}\max_{\bpi} \ell(\bpi)\)` is given by $$ `\begin{equation} \hat{\pi}_{j} = \frac{\sum_{i=1}^n Y_{ij}}{\sum_{i=1}^n N_{i}} = \frac{Y_{+j}}{N_+} \end{equation}` $$ --- # MLE Demo  --- ## Other properties: Moments To make things easier, note that if `\(X_1, \dots, X_N\)` are i.i.d variable `\(\sim \M(1, \pi)\)` then $$ \bY = \sum_{i=1}^N X_i \sim \M(N, \bpi) \quad \text{and} \quad Y_j \sim \mathcal{B}(N, \pi_j) $$ - Mean: `\(E[Y_j] = N\pi_j\)` - Variance: `\(V[Y_j] = N\pi_j(1 - \pi_j)\)` - Signal to Noise Ratio (SNR) `\(\frac{\sqrt{V[y_j]}}{E[Y_j]} = \sqrt{\frac{1 - \pi_j}{\pi_j}}\)` `\(\Rightarrow\)` small probabilities are hard to estimate correctly - Covariance: `\(Cov[Y_j, Y_{j'}] = N\pi_j 1_{\{j=j'\}} - N\pi_j\pi_{j'}\)` - Only .alert[negative] (off-diagonal) covariances - Variance matrix (of rank `\(p-1\)`): $$ V[\bY] = N \left[ Diag(\bpi) - \bpi \bpi^\top \right] $$ - Correlation: `\(\rho[Y_j, Y_{j'}] = -\sqrt{\frac{\pi_j \pi_{j'}}{(1-\pi_j)(1-\pi_{j'})}}\)` (well defined even when `\(\pi_j \to 1\)`) --- class: inverse, center, middle # Mixture of Multinomials --- # Mixture of Multinomials - Each sample belongs to one of `\(K\)` groups - Group `\(k\)` is characterized by its composition `\(\bpi_k\)` and its proportion `\(\alpha_k\)` - A sample from group `\(k\)` has composition `\(\bpi_k\)` - Counts are sampled according to a multinomial process -- #### Mathematical model $$ `\begin{align*} Z & \sim \M(1, \balpha) \\ \bY|Z = k & \sim \M(N, \bpi_k) \end{align*}` $$ where `\(\balpha = (\alpha_1, \dots, \alpha_K)\)` are the proportions of the `\(K\)` groups, --- # Density of the mixture Note `\(\btheta = (\balpha, \bpi_1, \dots, \bpi_K)\)` the parameters. If `\(Z\)` is observed and equal to `\(k\)`, the PMF at `\(\bY = (Y_1, \dots, Y_p)\)` where `\(\sum_{j=1}^p Y_j = N\)` is given by $$ `\begin{equation} P(\bY, Z = k; \btheta) = P(Z = k; \balpha) P(\bY; \bpi_k) = \alpha_k \frac{N!}{Y_1! \dots Y_p!}\prod_{j=1}^p \pi_{kj}^{Y_j} = \frac{N!}{Y_1! \dots Y_p!} \times \alpha_k \prod_{j=1}^p \pi_{kj}^{Y_j} \end{equation}` $$ -- The PMF of the observed counts `\(\bY\)` when `\(Z\)` is unobserved is obtained by marginalizing over `\(Z\)` $$ `\begin{equation} P(\bY; \btheta) = \sum_{k = 1}^K P(\bY, Z = k; \btheta) = \frac{N!}{Y_1! \dots Y_p!} \times \sum_{k=1}^K \left( \alpha_k \prod_{j=1}^p \pi_{kj}^{Y_j} \right) \end{equation}` $$ -- - For one sample, the log-likelihood involves a .alert[sum over `\(K\)` terms]. - For `\(n\)` samples, the log-likelihood involves a .alert[sum over `\(K^n\)` terms] --- # Density of the mixture (II) With multiple samples `\(\bY = (\bY_1,\dots,\bY_n)\)`, the log likelihood is only nice for `\(\log P(\bY, Z; \bpi)\)`, not for `\(\log P(\bY; \bpi)\)` $$ `\begin{align} \ell_{comp}(\btheta) & = \log P(\bY_1, \dots, \bY_n, Z_1, \dots Z_n; \btheta) \\ & = \sum_{i=1}^n \log P(Z_i; \balpha) + \log P(\bY; Z_i, \btheta) \\ & = \sum_{i=1}^n \sum_{k=1}^K 1\{Z_i = k\}\left[ \log(\alpha_k) + \sum_{j=1}^p Y_{ij} \log(\pi_{kj})\right] + C \\ \ell_{obs}(\btheta) & = \log P(\bY_1, \dots, \bY_n; \btheta) \\ & = \sum_{i=1}^n \log \left( \sum_{k=1}^K P(\bY_i, Z = k; \btheta) \right) + C \end{align}` $$ .alert[Direct maximization] of the log-likelihood `\(\log P(\bY; \btheta)\)` is impossible so we resort to the EM algorithm by Dempster, Laird, and Rubin [DLR77]. --- # EM algorithm The EM algorithm is based on the following .alert[decomposition] ([NH98]), for any density `\(q = q(Z)\)` on `\(Z\)` $$ `\begin{align} \ell_{obs}(\btheta) & = \log\left(\sum_{k=1}^K P(\bY, Z; \btheta)\right) \\ & = \log \sum_{k=1}^K q(Z) \frac{P(\bY, Z; \btheta)}{q(Z)} \\ & \geq \sum_{k=1}^K q(Z) \log \frac{P(\bY, Z; \btheta)}{q(Z)} \\ & = E_q\left[\log P(\bY, Z; \btheta)\right] + \mathcal{H}(q) = F(q, \btheta) \end{align}` $$ where `\(\mathcal{H}(q) = -E_q[\log(q)]\)` is the .alert[entropy] of the distribution `\(q\)`. -- Maximizing `\(\ell_{obs}(\btheta)\)` can be done iteratively by alternating two tractable steps: - .alert[Estimation (E) step:] `\(q^{(t+1)} = \text{arg}\max_q F(q, \btheta^{(t)})\)` - .alert[Maximization (M) step:] `\(\btheta^{(t+1)} = \text{arg}\max_q F(q^{(t+1)}, \btheta)\)` --- # Solving the E step: tools ### Posterior probability Decomposition of the ratio $$ \frac{P(\bY, Z; \btheta)}{q(Z)} = P(\bY; \btheta) \times \frac{P(Z | \bY; \btheta)}{q(Z)} $$ -- ### Kullback-Leibler divergence Kullback-Leibler divergence for two distributions `\(q\)` and `\(q'\)` $$ `\begin{equation} D(q \| q') = E_q\left[ \log \frac{q}{q'} \right] = \int_{\mathcal{X}} q(x) \log \frac{q(x)}{q'(x)} dx \end{equation}` $$ - For any two distributions `\(D(q || q') \geq 0\)` - `\(D(q \| q') = 0 \Leftrightarrow q = q'\)` almost-everywhere. ---  --- ## KL divergence properties: demo Based on `\(\log(1+x) \leq x\)`  --- # Solving the E step: demo The solution of the E-step is given by `\(q(Z) = P(Z | \bY; \btheta)\)`  --- # Special case of mixture of MN For the mixture of MN, the posterior `\(P(Z | \bY; \btheta)\)` has the form `\(q = q_{\btau_1, \dots, \btau_n} = \M(1, \tau_1) \otimes \dots \otimes \M(1, \tau_n)\)` where - each `\(Z_i\)` has its own multinomial parameter `\(\tau_i\)` - `\(\tau_{ik} = P[Z_i = k | \bY_i; \btheta]\)` -- The EM algorithm can thus be written - .alert[Estimation (E) step:] `\(\tau_{ik}^{(t+1)} = E_{\btheta^{(t)}}[Z_i = k| \bY_i] \propto P(\bY_i, Z_i = k; \btheta^{(t)})\)` - .alert[Maximization (M) step:] `\(\btheta^{(t+1)} = \text{arg}\max_q F(q^{(t+1)}, \btheta)\)` --- # Update formula: `\(E\)`-step $$ `\begin{equation} \tilde{\tau}_{ik}^{(t+1)} \propto P(\bY_i, Z_i = k; \btheta^{(t)}) = \alpha_k^{(t)} \prod_{j=1}^p \left(\pi_{kj}^{(t)}\right)^{Y_j} \end{equation}` $$ --- # Update formula: M-step $$ `\begin{equation} \pi_{kj}^{(t+1)} = \frac{\sum_{i=1}^n \tau_{ik} Y_{ij}}{\sum_{i=1}^n \tau_{ik}N_i} \end{equation}` $$  --- ## Inference To sum up 1. Choose a starting point `\(\btheta^{(0)}\)` 2. Iterate until convergence between: - E-step: `\(\tilde{\tau}_{ik}^{(t+1)} \propto P(\bY_i, Z_i = k; \btheta^{(t)})\)` - M-step: `\(\pi_{kj}^{(t+1)} = \frac{\sum_{i=1}^n \tau_{ik} Y_{ij}}{\sum_{i=1}^n \tau_{ik}N_i}\)` and `\(\alpha_{k}^{(t+1)} = \frac{\sum_{i=1}^n \tau_{ik}}{n}\)` -- Each step of the iteration .alert[increases the objective function] `\(F(q, \btheta)\)` until it reaches a maximum (which can be local). -- Right after performing the E-step, $$ F(q^{(t+1)}, \theta^{(t)}) = \ell_{obs}(\theta^{(t)}) $$ --- ## Other properties: moments To make things easier, we rely on the laws of - total expectation `\(E[Y_j] = E[ E[Y_j|Z] ]\)` - total variance `\(V[\bY] = E[ V[\bY|Z] ] + V[E[\bY|Z]]\)` - Mean: `\(E[Y_j] = N\sum_{k=1}^K \alpha_k \pi_{kj} = N \bar{\pi}_{.j}\)` - Variance: `\(V[Y_j] = \sum_{k=1}^K \alpha_k \left[ N\pi_{kj}(1 - \pi_{kj}) + N^2(\pi_{kj} - \bar{\pi}_{.j})^2 \right]\)` - Note that `\(V[Y_j] > N\bar{\pi}_{.j}(1 - \bar{\pi}_{.j})\)` - In fact `\(V[Y_j] = N\bar{\pi}_{.j}(1 - \bar{\pi}_{.j}) + (N^2-1) \underbrace{\sum_{k=1}^K \alpha_k (\pi_{kj} - \bar{\pi}_{.j})^2}_{=V[\pi_{Zj}]}\)` - Covariance: `\(V[Y_j, Y_{j'}] = -N \bar{\pi}_{., jj'} + N^2 Cov[\pi_{Zj}, \pi_{Zj'}]\)` - Arbitrary signs --- class: inverse, center, middle # Dirichlet Multinomial --- ## The gamma `\(\Gamma\)` function The gamma function is a positive-valued function whose domain is the positive real numbers $$ \Gamma(x) = \int_0^\infty t^{x-1} e^{-t} dt $$ For all positive values: $$ \Gamma(x+1) = x\Gamma(x) $$ In particular, for positive integers `\(n\)`, the `\(\Gamma\)` function satisfies $$ \Gamma(n+1) = n! = 1 \times \dots \times n $$ --- # The beta function The beta function is a positive-valued function whose domain is the positive real numbers $$ B(x,y) = \int_0^1 t^{x-1}(1-t)^{y-1} dt $$ A key property of the beta function is its relation to the gamma function $$ B(x,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)} $$ from which we can deduce the property $$ B(x+1,y) = \frac{x}{x+y} B(x,y) $$ --- ## Relationship to the `\(\Gamma\)` function Based on computing `\(\Gamma(x)\Gamma(y)\)` with the change of variable `\(u = zt\)` and `\(v = (1-t)z\)` and the change of variable relationship $$ dudv = \left| `\begin{matrix} t & z \\ (1-t) & -z \end{matrix}` \right| dtdz = zdtdz $$ --- ## Dirichlet distribution A p-dimensional .alert[Dirichlet distribution] with parameter `\(\balpha\)`, noted `\(\D(\balpha)\)` is a family of probability distributions over `\(\Sbb^{p-1}\)`, the space of `\(p\)`-dimensional probability vector. It is parameterized by a `\(p\)`-dimensional vector `\(\balpha\)` (not necessarily a probability vector) and has density $$ `\begin{align} P(\bpi; \balpha) & = \underbrace{\frac{\prod_{j=1}^p \Gamma(\alpha_j)}{\Gamma\left(\sum_{k=1}^p \alpha_j\right)}}_{=\exp(-A(\btheta))} \prod_{j=1}^p \pi_j^{\alpha_j - 1} \\ & = \frac{1}{\pi_1 \dots \pi_p} \exp\left( \sum_{j=1}^p \alpha_j \ln(\pi_j) - A(\balpha) \right) \end{align}` $$ -- One can sample from `\(\D(\balpha)\)` by - sampling `\(p\)` independent Gamma variables `\(X_i \sim \Gamma(\alpha_i, 1)\)` - taking the sum `\(S = \sum_{j=1}^p X_i\)` - setting `\(\bpi = \left( \frac{X_1}{S}, \dots, \frac{X_p}{S} \right)\)` --- ## A few properties of `\(\D(\balpha)\)` Let `\(\alpha_0 = \sum_{j=1}^p \alpha_j\)`, then the .alert[marginals] are beta distributed `\(\pi_j \sim \mathcal{B}(\alpha_j, \alpha_0)\)` with density $$ `\begin{equation} P(\pi_j; \balpha) = \underbrace{\frac{\Gamma(\alpha_0)}{\Gamma(\alpha_j)\Gamma(\alpha_0 - \alpha_j)}}_{=B(\alpha_j, \alpha_0 - \alpha_j)} x^{\alpha_j-1}(1-x)^{\alpha_0 - \alpha_j-1} \end{equation}` $$ -- - Mean $$ E[\pi_j] = \int_0^1 \frac{x^{\alpha_j}(1-x)^{\alpha_0 - \alpha_j - 1}}{B(\alpha_j, \alpha_0 - \alpha_j)} dx = \frac{B(\alpha_j+1, \alpha_0 - \alpha_j)}{B(\alpha_j, \alpha_0 - \alpha_j)} = \frac{\alpha_j}{\alpha_0} $$ - Variance $$ `\begin{align} E[\pi_j^2] & = \int_0^1 \frac{x^{\alpha_j+1}(1-x)^{\alpha_0 - \alpha_j - 1}}{B(\alpha_j, \alpha_0 - \alpha_j)} dx = \frac{B(\alpha_j+2, \alpha_0 - \alpha_j)}{B(\alpha_j, \alpha_0 - \alpha_j)} = \frac{(\alpha_j+1)\alpha_j}{(\alpha_0+1)\alpha_0} \\ V[\pi_j] & = \frac{\alpha_j (\alpha_0 - \alpha_j)}{\alpha_0^2 (\alpha_0+1)} \end{align}` $$ --- ## A few properties of `\(\D(\balpha)\)` - Aggregation: proportions can be .alert[aggregated] $$ `\begin{equation} \bpi \sim \D(\balpha) \Rightarrow \left( \pi_j, \pi_{j'}, \sum_{k \neq j,j'} \pi_k\right) \sim \D(\alpha_j, \alpha_{j'}, \alpha_0 - \alpha_j - \alpha_{j'}) \end{equation}` $$ - Covariance $$ `\begin{equation} Cov(\pi_j, \pi_{j'}) = -\frac{\alpha_j \alpha_{j'}}{\alpha_0^2 (\alpha_0+1)} \end{equation}` $$ - Only .alert[negative covariances] at the proportion level. --- ## Covariance computation (demo) --- ## Covariance computation (II) Parametrize `\((x, y, 1-x-y)\)` for `\(0 \leq x+y \leq 1\)` as `\((x, (1-x)z, (1-x)(1-z))\)` where `\(0 \leq x,z \leq 1\)` and do a change of variable. $$ `\begin{align} E[\pi_j \pi_{j'}] & = \int_{x=0}^1 \int_{y=0}^{1-x} \frac{\Gamma(\alpha_0)}{\Gamma(\alpha_j)\Gamma(\alpha_{j'})\Gamma(\alpha_{0} - \alpha_{j} - \alpha_{j'})}x^{\alpha_j}y^{\alpha_{j'}} (1-x-y)^{\alpha_0 - \alpha_j - \alpha_{j'}-1}dxdy \\ & = \int_{x=0}^1 \int_{z=0}^{1} \frac{\Gamma(\alpha_0)}{\Gamma(\alpha_j)\Gamma(\alpha_{j'})\Gamma(\alpha_{0} - \alpha_{j} - \alpha_{j'})} ((1-x)z)^{\alpha_{j'}} ((1-x)z)^{\alpha_0 - \alpha_j - \alpha_{j'}-1} dx (1-x)dz \\ & = \frac{\Gamma(\alpha_0)}{\Gamma(\alpha_j)\Gamma(\alpha_{j'})\Gamma(\alpha_{0} - \alpha_{j} - \alpha_{j'})} \int_0^1 x^{\alpha_j}(1 - x)^{\alpha_0 - \alpha_j}dx \int_0^1 z^{\alpha_{j'}}(1 - z)^{\alpha_0 - \alpha_j - \alpha_{j'} - 1}dz \\ & = \frac{\Gamma(\alpha_0)}{\Gamma(\alpha_j)\Gamma(\alpha_{j'})\Gamma(\alpha_{0} - \alpha_{j} - \alpha_{j'})} \frac{\Gamma(\alpha_j+1) \Gamma(\alpha_0-\alpha_j+1)}{\Gamma(\alpha_0 + 2)} \frac{\Gamma(\alpha_{j'}+1) \Gamma(\alpha_0-\alpha_j - \alpha_{j'})}{\Gamma(\alpha_0-\alpha_j+1)} \\ & = \frac{\Gamma(\alpha_0) \Gamma(\alpha_j+1) \Gamma(\alpha_{j'}+1)}{\Gamma(\alpha_0+2) \Gamma(\alpha_j) \Gamma(\alpha_{j'})} = \frac{\alpha_j\alpha_{j'}}{\alpha_0 (\alpha_0+1)}\\ \end{align}` $$ --- ## Dirichlet Multinomial distribution (DCM) The Dirichlet - Multinomial distribution is defined by - sampling a probabilibity vector `\(\bpi\)` from `\(\D(\balpha)\)` - `\(\bpi\)` can be seen as a noisy version of `\(\balpha / \alpha_0\)` - sampling counts `\(\bY_i\)` from a multinomial `\(Y_i \sim \M(N, \bpi)\)` -- The PMF of the DCM is given by $$ `\begin{align} P(\bY; \balpha) & = \int P(\bY; \bpi) P(\bpi; \balpha) d\bpi \\ & = \frac{\Gamma(\alpha_0)\Gamma(N+1)}{\Gamma(N+\alpha_0)} \prod_{j=1}^p \frac{\Gamma(Y_j + \alpha_j)}{\Gamma(\alpha_j)\Gamma(Y_j + 1)} \end{align}` $$ --- ## A few properties of `\(DCM(\balpha)\)` Using the laws of total expectation and covariance and noting `\(p_j = \alpha_j / \alpha_0\)` - Mean of `\(Y_j\)` $$ `\begin{equation} E[Y_j] = E[\underbrace{E[Y_j|\pi_j]}_{=N\pi_j}] = E[N\pi_j] = N \frac{\alpha_j}{\alpha_0} = Np_j \end{equation}` $$ - Variance of `\(Y_j\)` $$ `\begin{align} V[Y_j] & = E[\underbrace{V[Y_j|\pi_j]}_{=N\pi_j(1 - \pi_j)}] + V[\underbrace{E[Y_j|\pi_j]}_{=N\pi_j}]\\ & = NE[\pi_j] - NE[\pi_j^2] + N^2 V[\pi_j] \\ & = Np_j - N\frac{(\alpha_j+1)\alpha_j}{(\alpha_0+1)\alpha_0} + N^2 \frac{\alpha_j (\alpha_0 - \alpha_j)}{\alpha_0^2 (\alpha_0+1)} = Np_j(1-p_j)\frac{N+\alpha_0}{1+\alpha_0} \end{align}` $$ Note that `\(V[Y_j] > Np_j(1-p_j)\)`. --- ## A few properties of `\(DCM(\balpha)\)` - Covariance of `\(Y_j\)`, `\(Y_{j'}\)` $$ `\begin{align} Cov[Y_j,Y_{j'}] & = E[\underbrace{Cov[Y_j,Y_{j'}|\pi_j,\pi_{j'}]}_{=-N\pi_j\pi_{j'}}] + Cov[\underbrace{E[Y_j|\pi_j]E[Y_{j'}|\pi_{j'}]}_{=N\pi_jN\pi_{j'}}]\\ & = -NE[\pi_j\pi_{j'}] + N^2Cov[\pi_j, \pi_{j'}] \\ & = -N \frac{\alpha_j\alpha_{j'}}{\alpha_0 (\alpha_0+1)} - N^2 \frac{\alpha_j \alpha_{j'}}{\alpha_0^2 (\alpha_0+1)} \\ & = -N p_j p_ {j'}\frac{N+\alpha_0}{1+\alpha_0} < 0 \end{align}` $$ The covariance between counts is .alert[always negative]. - Correlation of `\(Y_j\)`, `\(Y_{j'}\)` .alert[doesn't depend on N] $$ `\begin{equation} \rho[Y_j,Y_{j'}] = -\frac{-p_j p_{j'}}{\sqrt{p_j(1-p_j)}\sqrt{p_{j'}(1-p_{j'})}} = - \sqrt{\frac{\alpha_j \alpha_{j'}}{(\alpha_0 - \alpha_j)(\alpha_0 - \alpha_{j'})}} \end{equation}` $$ --- ## A few properties of `\(DCM(\balpha)\)` In matrix notation, $$ V(\bY) = N\left[ Diag(\bp) - \bp \bp^\top \right] \left(\frac{N+\alpha_0}{1+\alpha_0}\right) $$ -- Compare with $$ V(\bY) = N\left[ Diag(\bp) - \bp \bp^\top \right] $$ for the MN distribution. DCM induces .alert[overdispersion] compared to `\(\M(N, \bp)\)`. -- Note also that when `\(\alpha \to \infty\)` such that `\(\balpha / \alpha_0 \to \bp\)`, `\(DCM(\balpha) \to \M(N, \bp)\)`. --- ## About the Newton method Consider a twice differentiable function `\(f: \Rbb \to \Rbb\)` and the problem $$ \min_{\Rbb} f(x) $$ - Starting point `\(x_0\)` - Iterations .pull-left[ 1/ quadratic approximation `\(g\)` of `\(f\)` around `\(x_k\)` $$ g(t) = f(x_k + t) \simeq f(x_k) + f'(x_k)t + \frac{1}{2}f''(x_k)t^2 $$ 2/ minimization of `\(g\)` $$ `\begin{aligned} g'(t) = f'(x_k) + tf''(x_k) \Rightarrow \\ g'(t) = 0 \text{ iff } t = -\frac{f'(x_k)}{f''(x_k)} \end{aligned}` $$ ] .pull-right[ 3/ update `\(x_k\)` by setting `\(x_{k+1} = x_k + t\)`. $$ x_{k+1} = x_k + t = x_k - \frac{f'(x_k)}{f''(x_k)} $$ - If `\(f\)` is convex `\(\Delta x = x_{k+1} - x_k\)` is a descent direction $$ `\begin{align} f'(x_k) \Delta x & = -\frac{[f('x)]^2}{f''(x)} \leq 0 \\ f(x_{k+1}) - f(x_k) & \simeq g(x_{k+1}) - f(x_k) = -\frac{[f('x)]^2}{2f''(x)} \end{align}` $$ ] --- ## About the Newton method (II) .pull-left[ If `\(f \Rbb^p \to \Rbb\)` with `\(p > 1\)`: - replace derivative with .alert[gradient] $$ f'(x) \to g_f(x) $$ - replace inverse of second order derivative with .alert[inverse Hessian] $$ 1/f''(x) \to H(x)^{-1} $$ - replace update with .alert[matrix notations]: $$ x_{k+1} = x_k - H(x)^{-1} g_f(x) $$ ] --- ## Sherman-Morrison formula Let `\(A\)` be an invertible square matrix of size `\(n\)` and `\(u,v\)` are column vectors of size `\(n\)`. If `\(1 + v^\top A^{-1}u \neq 0\)`, then `\(A + uv^\top\)` is invertible and $$ (A + uv^\top)^{-1} = A^{-1} - \frac{A^{-1} u v^\top A^{-1}}{1 + v^\top A^{-1}u} $$ This is actually an .alert[equivalence] but we can check the `\(\Rightarrow\)` direction easily. --- ## Single Parameter Exponential families A single parameter .alert[exponential family] is a set of distributions with density of the form $$ f_\theta(x) = h(x) \exp\left(\eta(\theta)T(x) + A(\theta) \right) $$ where `\(h(x)\)`, `\(\eta(\theta)\)`, `\(T(x)\)` and `\(A(\theta)\)` are known functions. -- If `\(\eta(\theta) = \theta\)`, the family is in .alert[canonical form] (see the Poisson distribution). In that case, .pull-left[ - `\(\theta\)` is the .alert[natural parameter] - `\(T(x)\)` is the .alert[sufficient statistic] - `\(A(\theta)\)` is the .alert[log normalizer] ] .pull-right[ $$ `\begin{align} A'(\theta) & = E_\theta[T(X)] \\ A''(\theta) & = V_\theta[T(X)] \\ \end{align}` $$ ] -- Proof: Differentiate `\(1 = \int_x h(x)e^{\theta T(x) - A(\theta)}dx\)` --- ## Vector exponential families A vector .alert[exponential family] is a set of distributions with density of the form $$ f_{\btheta}(\bx) = h(\bx) \exp\left(\eta(\btheta)^\top T(\bx) + A(\btheta) \right) $$ where `\(h(\bx)\)`, `\(\eta(\btheta)\)`, `\(T(\bx)\)` and `\(A(\btheta)\)` are known functions. -- If `\(\eta(\btheta) = \btheta\)`, the family is in .alert[canonical form]. In that case, .pull-left[ - `\(\btheta\)` is the vector of .alert[natural parameters] - `\(T(\bx)\)` is the vector of .alert[sufficient statistics] - `\(A(\theta)\)` is the scalar .alert[log normalizer] ] .pull-right[ $$ `\begin{align} \nabla A(\btheta) & = E_\btheta[T(X)] \\ \nabla^2 A(\btheta) & = V_\btheta[T(X)] \\ \end{align}` $$ ] --- ## Inference for Dirichlet distributions Assume we have a sample `\((\bpi_1, \dots, \bpi_n)\)`, with `\(\bpi_i = (\pi_{i1}, \dots, \pi_{ip})\)`, from `\(\D(\balpha)\)`. The likelihood function is given by $$ `\begin{align} P(\bpi_1, \dots, \bpi_n; \balpha) = \prod_{i=1}^n \Gamma(\alpha_0) \prod_{j=1}^p \Gamma(\alpha_j)^{-1} \pi_{ij}^{\alpha_j - 1} \end{align}` $$ Up to a constant term, the log-likelihood is given by $$ `\begin{align} \ell(\balpha) & = \sum_{i=1}^n \log \Gamma(\alpha_0) + \sum_{j=1}^p - \log \Gamma(\alpha_j) + (\alpha_j - 1) \log(\pi_{ij}) \\ & = n \left[ \log \Gamma(\alpha_0) - \sum_{j=1}^p \log \Gamma(\alpha_j)\right] + \sum_{j=1}^p \alpha_j \underbrace{\sum_{i=1}^n \log(\pi_{ij})}_{v_j} + C \\ & = n \left[ \log \Gamma(\alpha_0) - \sum_{j=1}^p \log \Gamma(\alpha_j)\right] + \sum_{j=1}^p \alpha_j v_j + C \end{align}` $$ --- ## Inference for Dirichlet distributions (II) Because of the `\(\Gamma\)` function, there is no explicit formula for `\(\hat{\balpha} = \text{arg}\max_{\balpha} \ell(\balpha)\)` but we can use the .alert[Newton-Raphson] method to optimize it by iterating the updates: $$ \balpha^{(t+1)} = \balpha^{(t)} - H^{-1}(\balpha^{(t)}) \bg(\balpha^{(t)}) $$ where - `\(\bg(\balpha^{(t)})\)` is the gradient of `\(\ell\)` - `\(H(\balpha^{(t)})\)` is the hessian of `\(\ell\)` -- Introduce `\(\Psi(x) = \frac{d}{dx} \ln\Gamma(x)\)` (digamma function) and `\(\Psi'(x) = \frac{d}{dx} \Psi(x)\)` (polygamma function). The gradient of `\(\ell\)` is given by $$ g_j = \frac{\partial \ell(\balpha)}{\partial \alpha_j} = \Psi(\alpha_0) - \Psi(\alpha_j) + v_j $$ and the hessian by $$ `\begin{equation} h_{jj'} = \frac{\partial^2 \ell(\balpha)}{\partial \alpha_j\alpha_{j'}} = \Psi'(\alpha_0) - \Psi'(\alpha_j) 1_{\{j = j'\}} \end{equation}` $$ <!-- --- --> <!-- ## About the di and polygamma function --> <!-- `\(\Psi(x)\)` are `\(\Psi'(x)\)` are very useful functions called the .alert[digamma] and .alert[polygamma (of order 1)] functions. -->               --- ## Inference for Dirichlet distributions (III) In matrix format $$ H = -Diag(\Psi'(\alpha_1), \dots, \Psi'(\alpha_p)) + \Psi'(\alpha_0) 1_p 1_p^\top $$ This is a diagonal plus constant matrix which can be inverted using the Shermann-Morrison formula. Noting `\((1/\Psi'(\balpha) = (1/\Psi'(\alpha_1),\dots,1/\Psi'(\alpha_p))\)` $$ H^{-1} = -Diag(1/\Psi'(\balpha)) + \frac{(1/\Psi'(\balpha))(1/\Psi'(\balpha))^\top}{1/\Psi'(\alpha_0) + 1/\Psi'(\balpha))^\top 1_p} $$ -- There is no explicit formula for `\(H^-{1} \bg\)` but - the computation is straightforward using a computer. - `\(\ell(\balpha)\)` is concave so there is a .alert[unique maximum] reached by the Newton-Raphson method. -- The concavity of `\(\ell(\balpha)\)` relies on properties of .alert[exponential families] and is a nice problem. --- ## Concavity of `\(\ell(\balpha)\)`: demo We need to prove that `\(H\)` is a .alert[(semi)definite negative matrix] of dimension `\(p\)`, or equivalently that for all `\(x \in \Rbb^p\)` $$ x^\top H x \leq 0 $$ --- ## Concavity of `\(\ell(\balpha)\)`: demo `\(\D(\balpha)\)` is an exponential family in canonical form with - sufficient statistic `\(T(\bpi) = (\log(\pi_1), \dots, \log(\pi_p))\)` - log-normalizer `\(A(\balpha) = \sum_{j=1}^p \log\Gamma(\alpha_j) - \log\Gamma(\alpha_0)\)` -- Simple computations show: $$ `\begin{align} \frac{\partial A(\balpha)}{\partial \alpha_j} & = \Psi(\alpha_j) - \Psi(\alpha_0) \\ \frac{\partial^2 A(\balpha)}{\partial \alpha_j\partial \alpha_{j'}} & = \Psi(\alpha_j) 1_{\{j = j'\}}- \Psi(\alpha_0) = -h_{jj'} \end{align}` $$ and thus $$ H = - \nabla^2 A(\balpha) = -Cov(T(\bpi)) $$ In particular $$ x^\top H x = -x^\top Cov(T(\bpi)) x = -Cov(x^\top T(\bpi)) \leq 0 $$ <!-- --- --> <!-- ## Concavity of `\(\ell(\balpha)\)` --> <!-- Based on Jakovčević Stor, Slapničar, and Barlow [JSB15], if `\(D\)` is diagonal and `\(z\)` is vector the eigenvalues of `\(D + \rho zz^\top\)` are given by the zeroes of `\(f(\lambda) = 1 + \rho z^\top(D - \lambda I)^{-1}z\)`. --> <!-- -- --> <!-- In our problem, `\(f\)` reduces to --> <!-- $$ --> <!-- f(\lambda) = 1 - \sum_{j=1}^p \frac{\Psi'(\alpha_0)}{\Psi'(\alpha_k) + \lambda} --> <!-- $$ --> <!-- which increases over `\((0, \infty)\)` and goes to `\(1\)` as `\(\lambda \to \infty\)` as the `\(\Psi'(\alpha_k)\)` are positive and we just need to prove -->      --- ## Inference for DCM distributions Adaptation to DCM requires more work. Following Sklar [Skl14], we define the .alert[dual gamma] as $$ \Gamma(a, n) = \frac{\Gamma(n+a)}{\Gamma(a)} = \prod_{i=0}^{n-1} (a+i) $$ -- With this notation, the likelihood is thus $$ `\begin{align} P(\bY; \balpha) & = \frac{\Gamma(\alpha_0)\Gamma(n+1)}{\Gamma(n+\alpha_0)} \prod_{j=1}^p \frac{\Gamma(Y_j + \alpha_j)}{\Gamma(\alpha_j)\Gamma(Y_j + 1)} \\ & = \frac{\Gamma(N+1)}{\prod_{j=1}^p \Gamma(Y_j+1)} \frac{\prod_{j=1}^p \Gamma(\alpha_j, Y_j)}{\Gamma(\alpha_0, N) } \end{align}` $$ --- ## Inference for DCM distributions (II) Assume we have a sample `\((\bY_1, \dots, \bY_n)\)`, with `\(\bY_i = (Y_{i1}, \dots, Y_{ip})\)`, from `\(DCM(\balpha)\)`. The likelihood function is given by, up to terms not depending on `\(\balpha\)` by $$ `\begin{align} \ell(\balpha) & = \sum_{i=1}^n \sum_{j=1}^p \log \Gamma(\alpha_j, Y_{ij}) - \sum_{i=1}^n \log \Gamma(\alpha_0, N_i) \\ & = \sum_{i=1}^n \sum_{j=1}^p \sum_{k=1}^{Y_{ij}} \log (\alpha_j + k) - \sum_{i=1}^n \sum_{k=1}^{N_i} \log (\alpha_0 + k) \end{align}` $$ -- There is no .alert[sufficient statistics] of fixed dimension like before but we can precompute `\(p \times M\)` quantities, where `\(M = \max_i N_i\)` to speed up computation. For `\(0 \leq m \leq N_\max\)`, note - `\(u_{jm} = \sum_{i=1}^n 1_{\{Y_{ij} \geq m\}}\)` the number of samples where count `\(j\)` exceeds `\(m\)` - `\(v_{m} = \sum_{i=1}^n 1_{\{N_i \geq m\}}\)` the number of samples where total count `\(N_i\)` exceeds `\(m\)` --- ## Inference for DCM distributions (III) With those quantities $$ `\begin{equation} \ell(\balpha) = \sum_{j=1}^p \sum_{m=1}^M u_{jm}\log(\alpha_j+m) - \sum_{m=1}^M v_{m}\log(\alpha_0+m) \end{equation}` $$ -- We can again compute the gradient and the hessian and use the same iterative procedure - gradient $$ `\begin{equation} g_j = \frac{\partial \ell(\balpha)}{\partial \alpha_j} = \sum_{m=1}^M \frac{u_{jm}}{\alpha_j +m} - \frac{v_{m}}{\alpha_0 +m} \end{equation}` $$ - hessian (diagonal plus constant) $$ `\begin{equation} h_{jj'} = \frac{\partial^2 \ell(\balpha)}{\partial \alpha_j \partial \alpha_{j'}} = -1_{\{j=j'\}}\sum_{m=1}^M \frac{u_{jm}}{(\alpha_j +m)^2} + \sum_{m=1}^M \frac{v_{m}}{(\alpha_0 +m)^2} \end{equation}` $$ --- ## Concavity of `\(\ell(\alpha)\)` Let `\(d_j = \sum_{m=1}^M \frac{u_{jm}}{(\alpha_j + m)^2}\)` and `\(d_0 = \sum_{m=1}^M \frac{v_{m}}{(\alpha_0 + m)^2}\)`. The matrix `\(H\)` is again of the form $$ H = -Diag(d_1, \dots, d_n) + d_0 11^\top $$ And therefore `\(\ell(\alpha)\)` is concave iff `\(H\)` is semidefinite negative. -- We can study the eigenvalue of `\(H\)` to prove that they are all negative (not done during the lectures). --- # Latent Dirichlet Allocation (LDA) The model was first introduced in Pritchard, Stephens, and Donnelly [PSD00] for genetic data and later in Blei, Ng, and Jordan [BNJ03] for topic modeling in text documents. ### Intuition .pull-left[ Using the word analogy: - archetype = topic - sample = document (set of words) - species = word - species count = word count ] .pull-right[ - There are `\(K\)` topics, `\(n\)` documents, `\(p\)` words - Document `\(i\)` has `\(N_i\)` words - Document `\(i\)` is of mixture of topics with proportions `\(\btheta_i = (\theta_{i1}, \dots, \theta_{iK})\)` - Topic `\(k\)` has word proportions `\(\bpi_{k} = (\pi_{k1}, \dots, \pi_{kp})\)`. - The `\(l\)`-th word `\((l = 1,\dots,N_i)\)` belongs to topic `\(Z_{il}\)` and is equal to `\(W_{il}\)` - Word `\(j\)` appears `\(Y_{ij}\)` times in document `\(i\)` ] --- ## LDA (II) .pull-left[ - There are `\(K\)` topics, `\(n\)` documents, `\(p\)` words - Document `\(i\)` has `\(N_i\)` words - Document `\(i\)` is of mixture of topics with proportions `\(\btheta_i = (\theta_{i1}, \dots, \theta_{iK})\)` - Topic `\(k\)` has word proportions `\(\bpi_{k} = (\pi_{k1}, \dots, \pi_{kp})\)`. - The `\(l\)`-th word `\((l = 1,\dots,N_i)\)` belongs to topic `\(Z_{il}\)` and is equal to `\(W_{il}\)` - Word `\(j\)` appears `\(Y_{ij}\)` times in document `\(i\)` ] .pull-right[ - `\(\btheta_i \sim \D(\balpha)\)` - `\(\bpi_{k} \sim \D(\bbeta)\)` - `\(Z_{il} | \btheta_i \sim \M(1, \btheta_i)\)` - `\(W_{il} | Z_{il} = k \sim \M(1, \bpi_{k})\)` - `\(Y_{ij} = \sum_{l=1}^{N_i} 1_{\{W_{il} = j\}}\)` ] -- The (hyper)parameters of the models are `\((\balpha, \bpi)\)`, similar to mixture of DCM - different status for `\(\bpi_k\)`: .alert[fixed] (mixt. of DCM) versus .alert[random] (LDA) - different interpretation for `\(\balpha\)`: - LDA: (unnormalized) mixing proportions .alert[within a sample] - Mixture of DCM: group proportions .alert[across samples]. --- ## Density and likelihood If we note `\(\bpi_k = (\bpi_{k1}, \dots, \bpi_{kp})\)` the word content of each topic and `\(\bpi = (\bpi_1, \dots, \bpi_K)\)`: $$ `\begin{equation} P(\bY_i,\bZ_i,\btheta_i,\bpi; \balpha,\bbeta) = \underbrace{\prod_{k=1}^K P(\bpi_{k}; \bbeta)}_{\text{common to all } i} \times P(\btheta_i; \balpha) \prod_{l=1}^{N_i} P(Z_{il}|\btheta_i)P(W_{il}|Z_{il}) \end{equation}` $$ Estimating the sample parameters `\((\bZ_i,\btheta_i,\bpi)\)` requires computing: $$ `\begin{equation} P(\bZ_i,\btheta_i,\bpi | \bY_i; \balpha,\bbeta) = \frac{\prod_{k=1}^K P(\bpi_{k}; \bbeta) P(\btheta_i; \balpha) \prod_{l=1}^{N_i} P(Z_{il}|\btheta_i)P(W_{il}|Z_{il})}{P(\bY_i; \balpha,\bbeta)} \end{equation}` $$ which is .alert[ugly] because of the coupling between `\(\btheta = (\btheta_1, \dots, \btheta_n)\)` and `\(\bpi\)` in `\(P(\bY_i; \balpha,\bbeta)\)`. $$ `\begin{align} P(\bY_i; \balpha,\bbeta) & = \int_{\bpi_i} \int_{\btheta_i} \sum_{\bZ_i} P(\bZ_i,\btheta_i,\bpi, \bY_i; \balpha,\bbeta) d\btheta_i d\bpi \\ & = \int_{\bpi} P(\bpi; \bbeta) \int_{\btheta_i} P(\btheta_i; \balpha) \sum_{\bZ_i} P(\bZ_i | \btheta_i) P(\bY_i | \bZ_i, \btheta_i) d\btheta_i d\bpi \\ \end{align}` $$ --- ## Variational approximation The posterior density `\(P(\bZ_i,\btheta_i,\bpi | \bY_i; \balpha,\bbeta)\)` is .alert[untractable] so we can't use the EM algorithm... -- **Strategy** Instead of estimating `\(P(\bZ_i,\btheta_i,\bpi | \bY_i; \balpha,\bbeta)\)` directly, assume that it takes the form $$ `\begin{equation} Q(\bZ_i,\btheta_i,\bpi; \bgamma_i, \btau_i, \bphi ) = \underbrace{P(\bZ_i ; \btau_i)}_{\text{Multinomial}} \underbrace{P(\btheta_i ; \bgamma_i)}_{\text{Dirichlet}} \underbrace{P(\bpi ; \bphi)}_{\text{Dirichlet, shared}} \end{equation}` $$ where `\(\bgamma_i\)`, `\(\btau_i\)` and `\(\bphi\)` are variational parameters - `\(\gamma_{ik} \simeq E[\theta_{ik} | \bY_i; \balpha, \bbeta]\)` - `\(\tau_{ilk} \simeq P[Z_{il} = k | \bY_i; \balpha, \bbeta]\)` - `\(\bphi_{kj} \simeq E[\pi_{kj} | \bY_i; \balpha, \bbeta]\)` And update those parameter until convergence to minimize: $$ D(Q(\btheta_i,\bZ_i,\bpi; \bgamma_i, \btau_i, \bphi) || P(\bZ_i,\btheta_i,\bpi | \bY_i; \balpha,\bbeta)) $$ --- ## Variational approximation updates ### Goal: Maximize `\(F(Q, (\balpha, \bbeta))\)` Alternate between (variational) `\(E\)` step and `\(M\)` step until convergence .pull-left[ **Variational E step** Update `\(Q\)` $$ `\begin{align} \gamma_{ik} & \propto \alpha_k + \sum_{l=1}^{N_i} \tau_{ikl} \\ \tau_{ilk} & \propto \pi_{kW_{il}} \exp\left( \Psi(\gamma_{ik}) - \Psi\left(\sum_{k=1}^K \gamma_{ik} \right)\right) \\ \phi_{kj} & \propto \sum_{i=1}^n \sum_{l=1}^{N_i} \tau_{ilk} 1_{\{W_{il} = j\}} \end{align}` $$ ] .pull-right[ **M step** Update `\(\balpha\)` and `\(\bbeta\)` - No explicit formula but the Newton method from the DCM part can be used ] --- class: inverse, center, middle # Conclusion --- class: middle # .top[Take home messages] ### Transformations are .alert[suboptimal compared to GLM]. ### Multinomial-based distributions capture .alert[mean proportions but not their correlations]. ### More flexible models require more efforts to be adjusted to the data --- Blei, D. M., A. Y. N. Ng, and M. I. Jordan (2003). "Latent Dirichlet Allocation". In: _JMLR_ 3. URL: [https://jmlr.csail.mit.edu/papers/v3/blei03a.html](https://jmlr.csail.mit.edu/papers/v3/blei03a.html). Dempster, A. P., N. M. Laird, and D. B. Rubin (1977). "Maximum Likelihood from Incomplete Data Via the EM Algorithm". In: _Journal of the Royal Statistical Society: Series B (Methodological)_ 39.1, pp. 1-22. URL: [https://doi.org/10.1111/j.2517-6161.1977.tb01600.x](https://doi.org/10.1111/j.2517-6161.1977.tb01600.x). Jakovčević Stor, N., I. Slapničar, and J. Barlow (2015). "Forward stable eigenvalue decomposition of rank-one modifications of diagonal matrices". In: _Linear Algebra and its Applications_ 487, pp. 301-315. ISSN: 0024-3795. URL: [https://doi.org/10.1016/j.laa.2015.09.025](https://doi.org/10.1016/j.laa.2015.09.025). Jakuschkin, B., V. Fievet, L. Schwaller, et al. (2016). "Deciphering the pathobiome: intra-and interkingdom interactions involving the pathogen Erysiphe alphitoides". In: _Microbial ecology_ 72.4, pp. 870-880. Neal, R. M. and G. E. Hinton (1998). "A View of the Em Algorithm that Justifies Incremental, Sparse, and other Variants". In: _Learning in Graphical Models_. Ed. by M. I. Jordan. Dordrecht: Springer Netherlands, pp. 355-368. URL: [https://doi.org/10.1007/978-94-011-5014-9_12](https://doi.org/10.1007/978-94-011-5014-9_12). Pritchard, J. K., M. Stephens, and P. Donnelly (2000). "Inference of Population Structure Using Multilocus Genotype Data". In: _Genetics_ 155.2, pp. 945-959. URL: [https://www.genetics.org/content/155/2/945](https://www.genetics.org/content/155/2/945). Sklar, M. (2014). _Fast MLE Computation for the Dirichlet Multinomial_. arXiv: 1405.0099 [stat.ML].


{% include 'includes/header.html' %}
{% include 'includes/navigation.html' %} {{ content | safe }} {% include 'includes/footer.html' %} {% include 'includes/scripts.html' %}


The GRUMPY SHARK HAT CAT’s basic attack “paw slap” will deal 15 damage points to its opponent. The GSHC can perform a paw slap every 2 seconds. For its ultimate attack “stare of death” the GSHC uses its hat to transform into a hybrid shark-cat, gaining +60% grumpiness and deals 70 damage points to its opponent. The cooldown of 18 seconds can be reduced to 15 seconds if the ultimate attack is performed on a dog-type enemy.


| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
| + | Explanation | Chance / Risk |
| 1` | 1-st day of period | There is no |
| 2` | Days of period | There is no |
| 3` | Fertile days | high |
| 4` | Ovulation | very high |
| 5` | Infertile days | low, little |
| 6` | Today | see calendar |
In order to check the phase of your menstrual cycle, please enter the length of your menstrual cycle, and the start date of your last menstruation period. Then look at the calendar. It will indicate your current phase of the cycle, along with the chance of conceiving (or risk of pregnancy) for each day of the month.


Delete a File or Folder
Tags: Foundation, files
Class: NSFileManager
You can use the NSFileManager.default singleton to delete a file or folder, but you should be aware that there are two different options here.
- Use removeItemAtURL or removeItemAtPath to delete an item immediately;
- Use trashItemAtURL to move an item to the trash, where the user can find and retrieve it, if necessary. (However, starting in Catalina, this seems to run into permissions problems.)
Both will need to be wrapped in do-try-catch blocks.
Link: Apple Developer Docs
Sample Code:
// Delete an item immediately
do {
try FileManager.default.removeItem(at: newURL)
} catch {
print("Could not delete the thing")
}
// Move an item to the trash
do {
try FileManager.default.trashItem(at: oldURL, resultingItemURL: nil)
} catch {
print("Could not trash the item at \(oldURL.path)")
}
Contributed by Herb Bowie on 21 Oct 2019


| 003:164 Khan | : |
Indeed Allah conferred a great favour on the believers when He sent among them a Messenger (Muhammad SAW) from among themselves, reciting unto them His Verses (the Qur'an), and purifying them (from sins by their following him), and instructing them (in) the Book (the Qur'an) and Al-Hikmah [the wisdom and the Sunnah of the Prophet SAW (i.e. his legal ways, statements, acts of worship, etc.)], while before that they had been in manifest error. |
| 003:164 Maulana | : |
Certainly Allah conferred a favour on the believers when He raised among them a Messenger from among themselves, reciting to them His messages and purifying them, and teaching them the Book and the Wisdom, although before that they were surely in manifest error. |
| 003:164 Pickthal | : |
Allah verily hath shown grace to the believers by sending unto them a messenger of their own who reciteth unto them His revelations, and causeth them to grow, and teacheth them the Scripture and wisdom; although before (he came to them) they were in flagrant error. |
| 003:164 Rashad | : |
GOD has blessed the believers by raising in their midst a messenger from among them, to recite for them His revelations, and to purify them, and to teach them the scripture and wisdom. Before this, they had gone totally astray. |
| 003:164 Sarwar | : |
God granted a great favor to the believers by sending a Messenger from their own people to recite to them God's revelations, to purify them of moral defects, to teach them the Book, and to give them wisdom. Before this they had lived in manifest error. |
| 003:164 Shakir | : |
Certainly Allah conferred a benefit upon the believers when He raised among them a Messenger from among themselves, reciting to them His communications and purifying them, and teaching them the Book and the wisdom, although before that they were surely in manifest error. |
| 003:164 Sherali | : |
Verily, ALLAH has conferred a favour on the believers by raising among them a Messenger from among themselves who recites to them HIS Signs, and purifies them and teaches them the Book and Wisdom; and, before that, they were surely in manifest error. |
| 003:164 Yusufali | : |
Allah did confer a great favour on the believers when He sent among them a messenger from among themselves, rehearsing unto them the Signs of Allah, sanctifying them, and instructing them in Scripture and Wisdom, while, before that, they had been in manifest error. |
Concepts/Themes Covered: أركان الإسلام > (محمد (صلى الله عليه وسلم > تأييد رسالته Pillars of Islam> The Blessed Muhammad(PBUH)> Supporting his Message الدعوة إلى الله > الحكمة في الدعوة > وجوب التزام الحكمة The Call for Allah> The Wisdom in the Mission> Having to Keep to the Wisdom Side القرآن الكريم > حقيقته وتصديقه للكتب الأوائل The Holy Quran> The Quran's Reality and its confirmation of the Previous Books الجهاد > الغزوات > غزوة أحد Jihad> The Holy Battles> Uhud Battle الإنسان والعلاقات الأخلاقية > الأخلاق الحميدة > الحكمة Man and The Moral Relations> Good Morals>Wisdom
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


YouJun Hu (胡友俊) [CV]
Associate research fellow, Plasma Physics
Institute of Plasma Physics, Chinese Academy of Sciences
PhD 2009, University of Science and Technology of China
Email: yjhu [AT] ipp.cas.cn
Phone: 86-551-65593246
My current research is on Alfvén eigenmodes (AEs) and Energetic-Particles-driven modes (EPMs) in tokamak plasmas.


plcmdio16(1) Qualcomm Atheros Open Powerline Toolkit plcmdio16(1) NAME plcmdio16 - Qualcomm Atheros 16-bit MDIO Register Editor SYNOPSIS plcmdio16 [options] [device] [device] [...] DESCRIPTION Read or write generic MDIO registers using the Qualcomm Atheros VS_MDIO_COMMAND vendor-specific management message. The default operation is to read a register. Registers are written only if data is specified on the command line. This pro‐ gram replaces program int6kmdio. This program writes MDIO instructions using 802.3 Clause 22 (phy, reg, data and mask) format. See program plcmdio162 for a similar program to write instructions using 802.3ae Clause 45 (address, data and mask) format. This program is part of the Qualcomm Atheros Powerline Toolkit. It replaces legacy program int6kmdio. See the plc man page for an overview and installation instructions. OPTIONS -d data A 16-bit data value to be inserted into the specified register. The specified data value is written when this option is present; otherwise the specified register is read and the content is displayed. Data values may be expressed in decimal, hexadecimal or binary notation. Hexadecimal values are prefixed with "0x" or "0X". Binary values are prefixed with "0b" or "0B". -e Redirects stderr messages to stdout. By convention status and error messages are printed on stderr while primary program output is printed on stdout. This option prints all output on stdout in cases where this is desired. -i interface Select the host Ethernet interface. All requests are sent via this host interface and only reponses received via this host interface are recognized. The default interface is eth1 because most people use eth0 as their principle network connection; however, if environment string "PLC" is defined then it takes precedence over the default interface. This option then takes precedence over either default. -p address The 5-bit PHY address. Some devices may not support all possible addresses. Addresses may be expressed in deci‐ mal, hexadecimal or binary notation. Hexadecimal values must be prefixed with "0x" or "0X". Binary values must be prefixed with "0b" or "0B". -q Suppresses status messages on stderr. -r register The 5-bit register address. Addresses may be expressed in decimal, hexadecimal or binary notation. Hexadecimal values must be prefixed with "0x" or "0X". Binary values must be prefixed with "0b" or "0B". Some devices may not support all possible addresses. -v Prints additional information on stdout. In particular, this option dumps outgoing Ethernet packets on stdout. -?,--help Displays program help information on stderr. This option takes precedence over all other options on the command line except version information. -!,--version Displays program version information on stderr. This option takes precedence over all other options on the com‐ mand line except help information. Use this option when sending screen dumps to Atheros technical staff. ARGUMENTS device The MAC address of some powerline device. More than one address may be specified. If more than one address is specified then operations are performed on each device in turn. The default address is local. See DEVICES for information about symbolic device addresses. DEVICES Powerline devices use Ethernet Media Access Control (MAC) addresses. A MAC address is a 48-bit value entered as 12 hex‐ adecimal digits in upper, lower or mixed character case. Octets may be separated with colons for clarity. For example, "00b052000001", "00:b0:52:00:00:01" and "00b052:000001" are valid and equivalent. The following MAC addresses are special and may be entered by name instead of number. all Same as "broadcast". broadcast A synonym for the Ethernet broadcast address, FF:FF:FF:FF:FF:FF. All devices, whether local, remote or foreign recognize messages sent to this address. A remote device is any device at the far end of a powerline connection. A foreign device is any device not manufactured by Atheros. local A synonym for the Qualcomm Atheros vendor specific Local Management Address (LMA), 00:B0:52:00:00:01. All local Atheros devices recognize this address but remote and foreign devices do not. A remote device is any device at the far end of a powerline connection. A foreign device is any device not manufactured by Atheros. REFERENCES See the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for technical information. DISCLAIMER Atheros HomePlug AV Vendor Specific Management Message structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information may not be available. Qualcomm Atheros reserves the right to modify message structure and content in future firmware releases without any obligation to notify or compensate users of this program. EXAMPLES None. SEE ALSO plc(1), int6kmdio(1), plcmod(1), plcmdio32(1), mdioblock(1), mdioblock2(1), CREDITS Charles Maier<EMAIL_ADDRESS>open-plc-utils-0.0.3 November 2013 plcmdio16(1)


Ploror688.github.io
A Kind of Magic Level 0 Babysitting - Tom, Cindy, and his majesty are stuck babysitting a baby girl one night. The baby girl manages to get a hold of the magic. BibMe Free Bibliography Citation Maker - MLA, APA, Chicago, Harvard.
Top Papers: Tudor crime and punishment primary homework.
Here are some facts about crime and punishment in Tudor . Stealing was considered a serious Tudor crime, . I did a homework project Where are these GTS? - acgts.gdn. TUDOR CRIME AND PUNISHMENT PUPIL LED LESSON by mbe20.  Tudor Punishments Primary Homework Help. Tudor Crime and Punishment – Primary Homework HelpThere. Who were the Tudors? Kings and queens in the Tudor family ruled England from Homework Help. and find out more about crime and punishment in Tudor times. BibMe: Free Bibliography Citation Maker 2. ACTION U.S.A. (1988) - A film that lives up to it's title. This film's sole purpose is to cram as much stuntwork humanly possible into 89 minutes. Custom Writing Service - Special Prices. Please find attached an overview lesson that ebales students to teach each other about the crime and punishments of Tudor society.
Primary homework help tudor crime and punishment Managerial accounting assignment decision making critical thinking ppt curriculum creative writing for students. Tudor Crime and Punishment: Facts and Information.
Tudor Crime and Punishment - Primary Homework. Tudor crime and punishment primary homework. This website and its content is subject to our Terms and Conditions. Tes Global Ltd is registered in England (Company No 02017289) with its registered. Tudors for KS1 and KS2 children Tudors homework.
Roman Crime and Punishment by alison malet lambert. Methods of execution. Beheading ("Death by the Axe") This was a punishment that resulted in your head being chopped off! The heads were sometimes placed. Information and facts about Tudor life in Britain for kids - including tudor kings and queens, timeline, tudor clothes and tudor daily. Tudor Houses and Homes: Facts and Information - Primary Facts. Key Stage 3. Yavneh College firmly believes that Design and Technology as well as being an academic subject, also teaches pupils practical skills which John Calvin: Predestination and Justice. Action Part 2 - Critical Condition.
(Click here for bottom) I i I Roman numeral for one. This is the one roman numeral that seems very natural. For the claim that Roman numerals are efficient. Tudor Punishments Primary Homework Help - 295736. During the sixteenth century — as the country became wealthier, the first Tudor king was Henry Vll. Stocks were used in the same way as tudor crime and punishment. Primary Homework Help The Tudors. by Mandy Barrow : Crime and Punishment: Tudor Entertainment: How long did the Tudors. Beheading ( Death by the Axe ) This j dissertation meaning taylor tia was a punishment that resulted in your head being chopped off! This covers the tudor crime.
This page is great really help with my homework tech is happy. Tudor crime and punishment primary homework help to write about new york creative writing course. Gmail is email that's intuitive, efficient, and useful. 15 GB of storage, less spam, and mobile access.
Writer Michael Rosen's website for children, with videos, biography, news, a blog and lists of books.
Here are some facts about crime and punishment in Tudor times. In Tudor times, there were no police, and crime was widespread. However, punishments were harsh
John Calvin's conception of justice, and his defense of predestination as just: All of sinful humanity deserves punishment, so none are condemned unjustly.


"DRINK" The drinks of the Hebrews were water, wine, “strong drink,” and vinegar. Their drinking vessels were the cup, goblet or “basin,” the “cruse” or pitcher, and the saucer. To drink water by measure (Ezekiel 4:11), and to buy water to drink(Lamentations 5:4), denote great scarcity. To drink blood means to be satiated with slaughter. The Jews carefully strained their drinks through a sieve, through fear of violating the law of Leviticus 11:20, 23, 41, 42. (See Matthew 23:24. “Strain at” should be “strain out.”)
"DRINK" The drinks of the Hebrews were water, wine, “strong drink,” and vinegar. Their drinking vessels were the cup, goblet or “basin,” the “cruse” or pitcher, and the saucer.
To drink water by measure (Ezekiel 4:11), and to buy water to drink(Lamentations 5:4), denote great scarcity. To drink blood means to be satiated with slaughter.
The Jews carefully strained their drinks through a sieve, through fear of violating the law of Leviticus 11:20, 23, 41, 42. (See Matthew 23:24.
“Strain at” should be “strain out.”)