Wikiversity
enwikiversity
https://en.wikiversity.org/wiki/Wikiversity:Main_Page
MediaWiki 1.45.0-wmf.6
first-letter
Media
Special
Talk
User
User talk
Wikiversity
Wikiversity talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
School
School talk
Portal
Portal talk
Topic
Topic talk
Collection
Collection talk
Draft
Draft talk
TimedText
TimedText talk
Module
Module talk
Wikiversity:Colloquium
4
28
2718861
2718609
2025-06-17T17:44:44Z
MediaWiki message delivery
983498
/* Wikimedia Foundation Board of Trustees 2025 - Call for Candidates */ new section
2718861
wikitext
text/x-wiki
{{Wikiversity:Colloquium/Header}}
<!-- MESSAGES GO BELOW -->
== 'Wikidata item' link is moving, finally. ==
Hello everyone, I previously wrote on the 27th September to advise that the ''Wikidata item'' sitelink will change places in the sidebar menu, moving from the '''General''' section into the '''In Other Projects''' section. The scheduled rollout date of 04.10.2024 was delayed due to a necessary request for Mobile/MinervaNeue skin. I am happy to inform that the global rollout can now proceed and will occur later today, 22.10.2024 at 15:00 UTC-2. [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Please let us know]] if you notice any problems or bugs after this change. There should be no need for null-edits or purging cache for the changes to occur. Kind regards, -[[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] 11:28, 22 October 2024 (UTC)
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27535421 -->
:Hi @[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]]: I Just noticed your post above, and it is timely.
:I have been participating in the English WikiUniversity for a few years, much less often recently. I seems like something in the way the site displays is different, but I cannot put my finger on it. Your posting gave me a clue. Can you please tell me where the link to wikidata items has moved to? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:23, 11 December 2024 (UTC)
::Hello @[[User:Ottawahitech|Ottawahitech]], sure, I would be happy to. The button/sitelink name didn't change, just its position. You should find it in the sidebar-menu under the section '''In other projects''' (where the links to all other Wikimedia Projects are displayed). If you do not see it, please reach out to us on the [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Move Wikidata item - Discussion page]]. Thank you, -[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[User talk:Danny Benjafield (WMDE)|discuss]] • [[Special:Contributions/Danny Benjafield (WMDE)|contribs]]) 09:24, 12 December 2024 (UTC)
:::@[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]], thank you for responding. I intend to followup on the ''Move Wikidata item - Discussion page'' as per your post above by putting it on my ever growing todo list.
:::I don't know about others on this wiki, as I said I have not been visiting here frequently, but for me the constant changes are a big distraction. I have been around wikimedia projects since 2007, so why do I have to spend so much time learning and re-learning how to find what I came here for? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 16:41, 12 December 2024 (UTC)
::::Hi @[[User:Ottawahitech|Ottawahitech]], thanks for you thoughts. Your input whether positive or critical helps us understand the impacts to editors so we welcome your further thoughts when you reach us in your To Do List :)
::::I can't speak about the other changes you've experienced here but I do hope they are made with a spirit of improvement for the community as a whole. -[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[User talk:Danny Benjafield (WMDE)|discuss]] • [[Special:Contributions/Danny Benjafield (WMDE)|contribs]]) 10:43, 16 December 2024 (UTC)
:::::@[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]]:
:::::Re: '''Your input whether positive or critical helps us understand the impacts to editors'''
:::::Today I (finally) checked [[Move Wikidata item - Discussion page]] and discovered that it is a talkpage on META where, unfortunately, I am infinitely blocked, so cannot participate. Even so, I proceeded to try and see what others are saying and immediately came to the conclusion that the few who actually participated in that discussin viewed the change negatively. It must be disheartening for developers to meet such a hostile attitude from the community. Please don't take it personally, this is a common phenomena in wikimedia community wide discussions , IMIO.
:::::I further checked the [https://pageviews.wmcloud.org/?project=meta.wikimedia.org&platform=all-access&agent=user&redirects=0&range=latest-90&pages=Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link page view statistcics] which showed there were only 828 pageviews in the last 90 days, and what's worse [https://meta.wikimedia.org/w/index.php?title=Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link&action=info#mw-pageinfo-watchers the page has "Fewer than 30 watchers"].
:::::Since [[META:User:Danny Benjafield (WMDE)|your userpage on META]] says that you are the: "Community Communications Manager Wikidata Integrations Team", may I ask how this apparent apathy is being addressed by your own management?
:::::I apologize if my post is not welcome on the Wikiversity:Colloquium, as i said I am a rather infrequent visitor to this wiki. I probably would not have followed up if you did not assure us that our feedback positive or negative is sought. Cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:49, 3 January 2025 (UTC)
::::::Dear @[[User:Ottawahitech|Ottawahitech]], I am so so sorry for leaving you on read for these last months, I have no excuse other than reading your comment and then getting lost before making a reply.
::::::The team I am working with, [[m:Wikidata_For_Wikimedia_Projects|Wikidata for Wikimedia Projects]] is a new development team, so I think management has allowed a certain amount of elbow room or leeway for us to make small changes whilst developing our confidence tackling the MediaWiki codebase with onboarding tasks that won't 'rock the boat' too much. We certainly expected some pushback or resistance to moving the Wikidata item as editors are so used to where it previously resided. Now it has been some time and hopefully the communities have gotten used to the change.
::::::Please do not apologise, your comments are always welcome, critical or not, as a new team I think we certainly "fly under the radar" to an extent and I hope that changes as we continue to work on projects that deepen the integrations between Wikidata and the other sibling projects. Once again, my sincere apologies for the delay in this reply. -[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[User talk:Danny Benjafield (WMDE)|discuss]] • [[Special:Contributions/Danny Benjafield (WMDE)|contribs]]) 13:59, 1 April 2025 (UTC)
== Wikiversity - Newsletters ==
Hello All,
I wanted to create a newsletter on Wikiversity, which would highlight what is going on in certain months and events on Wikiversity; which would bolster engagement by many people. This would be on the website and would have its dedicated 'Newsletter' tab.
I hope you acknowledge this idea. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 21:05, 8 December 2024 (UTC)
:@[[User:RockTransport|RockTransport]], What sort of things do you plan to include in your newsletter? Will they be different than what is currently in [[Main Page/News]]? Just curious.
:I am also wondering about your motive which I think is: to bolster engagement by many people. I am asking because I wonder if others who are currently active here also think this I is desirable? Have you asked them? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:34, 11 December 2024 (UTC)
::Not yet, which was why I was asking this on the colloquium. I plan to include things that many people have created on Wikiversity over the month, as it is a monthly newsletter. It would be somewhere on the website here. It will be more frequent that the ones seen on [[Main Page/News]]. We will include people's resources to essentially promote them. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 06:50, 12 December 2024 (UTC)
:::@[[User:RockTransport|RockTransport]], I Think what you are saying is that ''Main Page/News'' does not update frequently enough?
:::If this is the reason, why not start small by simply increasing the frequency of posting news on the main page, instead of trying to start a newsletter?
:::If there is more, can you articulate what else is missing. Thanks in advance, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 16:51, 12 December 2024 (UTC)
::::I meant going to detail into topics covered in that month, rather than just giving a few points. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 16:53, 12 December 2024 (UTC)
:::::What sort of details did you have in mind? You can pick one of the links provided in [[Main Page/News]] to illustrate. cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 15:29, 16 December 2024 (UTC)
::::::I'm thinking of the community entering their projects, and discussing those in the newsletter. It depends on what they want, though. There would be a dedicated page for giving the information about their projects [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 17:24, 16 December 2024 (UTC)
:::::::I might start working on this soon, depending on the projects being created on Wikiversity. @[[User:Ottawahitech|Ottawahitech]] @[[User:Atcovi|Atcovi]] [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 18:25, 17 December 2024 (UTC)
::::::::I'd recommend you start off with putting this under a userspace page (something like [[User:RockTransport/Wikiversity Newsletter]]), and drafting what you desire. Let us know once it's done, and the community can provide their input. —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 18:30, 17 December 2024 (UTC)
:::::::::I will try and make one for this month. This is supposed to be a monthly newsletter, showcasing the different projects mentioned there. Users can put their projects, and we will document them on the newsletter. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 18:33, 17 December 2024 (UTC)
:::::::::I am hoping for it to be released by January 2025. There's no rush to get it done; it's still in it's planning stage. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 18:43, 17 December 2024 (UTC)
::::I '''might''' be able to icnrease the frequency there, but it doesn't go into detail about these topics. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 17:30, 18 December 2024 (UTC)
:Where you are going to get the audience for your website and Wikiversity newsletter? [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 08:38, 18 December 2024 (UTC)
::It's on Wikiversity, not on an outside platform. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 13:51, 18 December 2024 (UTC)
::The audience will be Wikiversity contributors. There will be a dedicated page for it on Wikiversity. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 13:55, 18 December 2024 (UTC)
:::Hi @[[User:RockTransport|RockTransport]], Just wondering if there is a progress on the wikiversity newsletter? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 18:09, 6 January 2025 (UTC)
::::There is progress, I just need to find some topics to cover about. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 18:26, 6 January 2025 (UTC)
::::Also, if you wanted to see the work being done on the page, go to [[User:RockTransport/Wikiversity Newsletter|this page]]. I haven't worked on it that much lately, but I am constantly working on it. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 18:38, 6 January 2025 (UTC)
== <s>Degrees</s> (Certificates (see below)) ==
Why does Wikiversity not provide degrees? I know it was a promise to the Wikimedia Foundation in the Wikiversity project proposal. But anyway, why is that? Wikiversity is about opening doors, i.e., removing obstacles. So, what kind of an obstacle was a paper? Was a certain body of knowledge that you learned well?! Because Wikiversity is not accredited for that? Yes, and do we need official US accreditation? We cannot create our system so that the learners who learn here and would like to continue their science career have a recognizable degree they can continue? [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 10:19, 18 December 2024 (UTC)
:"I know it was a promise to the Wikimedia Foundation in the Wikiversity project proposal." Was it? Becoming a degree-granting institution is an extremely high bar in the United States, but what is even the point in becoming a degree-granting institution in... Malawi? Tonga? Somewhere else where the servers aren't located or the WMF aren't incorporated? —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 15:53, 18 December 2024 (UTC)
::I ment certificates. The question is the recognazibility of a certificate. I am not talking here about equal certification, which is provided by governmental institucians to universities, rather on Wikiversity own certification, which might may advocate itself over the time. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 15:05, 19 December 2024 (UTC)
::: We could issue certificates in some residing in certain jurisdictions probably (?). To my knowledge, there is no legal prohibition federally against doing this in the USA as long as no misrepresentation happens. Although some states might prohibit it (?). Degrees are likely different (at least with respect to accreditation). Please let me know if you believe I am likely incorrect in my understanding. I asked an LLM this prompt, "is there any prohibition legally in USA for a DAO (decentralized autonomous organization or wiki community related to learning, teaching, and research) from issuing certifications or certificates to those who go through learning materials and educational resources that might be on a decentralized or nonprofit wiki that has an active community?" (i won't post the specific result, but I wrote and engineered that prompt myself). The LLM output seemed to indicate my understanding noted here is correct, but LLM's are sometimes wrong. what do you or others think about this? [[User:Michael Ten|Michael Ten]] ([[User talk:Michael Ten|discuss]] • [[Special:Contributions/Michael Ten|contribs]]) 18:49, 25 December 2024 (UTC)
:From [https://web.archive.org/web/20170703053134/https://wikimediafoundation.org/wiki/Meetings/November_13,_2005 the WMF Board] (repeated at [[WV:WWIN]]):
:<blockquote>"[[Wikiversity:Original proposal|Wikiversity proposal]] not approved, but we will approve it if [[Wikiversity:Approved Wikiversity project proposal|some changes are made]]... The board recommend rewriting the proposal to ''exclude credentials'', exclude online-courses and clarify the concept of elearning platform."</blockquote>
:That is, Wikiversity was prevented from creation until it was codified '''not''' to provide credentials. It is not just ''U.S.'' credentials, but credentials period.
:I see you were around for [[Wikiversity:Community Review/Wikimedia Ethics:Ethical Breaching Experiments|the Reckoning]], so I imagine you are aware of the potential consequences of challenging such a clear policy so explicitly. I worry the community would not withstand another round. [[User:Tule-hog|Tule-hog]] ([[User talk:Tule-hog|discuss]] • [[Special:Contributions/Tule-hog|contribs]]) 19:24, 2 January 2025 (UTC)
::That said, I see nothing wrong with a cute badge of some sort (emulating barnstars) for completion of a resource (perhaps supervised/signed off by the resource creators). Even if there is no pretention of "credentials", who doesn't like a trophy? [[User:Tule-hog|Tule-hog]] ([[User talk:Tule-hog|discuss]] • [[Special:Contributions/Tule-hog|contribs]]) 20:19, 2 January 2025 (UTC)
:::[[:w:Gamification|Gamification]] is quite different than granting certificates and degrees. And ''even'' if Wikiversity grants certificates, half the battle is getting others to recognize the legitimacy of the certificate. Otherwise people will just think of Wikiversity as a [[:w:diploma mill|diploma mill]] especially if this conversation steers towards purposely issuing certificates in far flung countries for the sole purpose of skirting around the rules. And that's something I don't want to be associated with if Wikiversity goes down that path. [[User:OhanaUnited|<b><span style="color: #0000FF;">OhanaUnited</span></b>]][[User talk:OhanaUnited|<b><span style="color: green;"><sup>Talk page</sup></span></b>]] 21:24, 2 January 2025 (UTC)
== Citation system ==
How is being maintained citation system on en.wv. I mean, is it completly the same as on English Wikipedia? Do we update it according to English Wikipedia? How we do that? Are the templates like [[Template:Cite book|Cite book]] based on Lua? I dont see any invoke word. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 16:20, 2 January 2025 (UTC)
:I was just working on references in [[WikiJournal Preprints/Mobility-aware Scheduling in Fog Computing: Analysis and Challenges]]. And I agree with you. The citation system is so outdated compared to en.wp. Just the fact that I have to do extra clicks to access {{tl|cite journal}} is bizarre. Are there efforts to sync updates to the current citation version on en.wp? [[User:OhanaUnited|<b><span style="color: #0000FF;">OhanaUnited</span></b>]][[User talk:OhanaUnited|<b><span style="color: green;"><sup>Talk page</sup></span></b>]] 21:35, 2 January 2025 (UTC)
::Not mine, I am just wondering if there is an easy system how to take over citation aparatus. I havent investigated the citation system on English Wikipedia yet, but on the first glance it looks like a very complicated environment. So in the following days Ill be looking on it if its a way to overtake it or if it would be easier to create own citation system. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 22:00, 2 January 2025 (UTC)
== Proposal: citation templates for VisualEditor ==
@[[User:OhanaUnited|OhanaUnited]] [[Wikiversity:Colloquium#Citation system|pointed above]], that they had a hard time to create citations via VisualEditor I believe. I think its because of missing map in [[MediaWiki:Cite-tool-definition.json]] ([[phab:T219551|see also]]). And the question is, which citation templates the editor should list. So I would propose the same as on en.wp, i.e. [[Template:Cite book|Cite book]], [[Template:Cite journal|journal]], [[Template:Cite news|news]], and [[Template:Cite web|web]]. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 13:38, 3 January 2025 (UTC)
:I support those four templates (book, journal, news, web). Another part of me wonders if we should include other use cases like AV media, thesis and report. But they may have limited usage and will only clutter the screen. [[User:OhanaUnited|<b><span style="color: #0000FF;">OhanaUnited</span></b>]][[User talk:OhanaUnited|<b><span style="color: green;"><sup>Talk page</sup></span></b>]] 04:55, 7 January 2025 (UTC)
::Sure and thesis could be cited by Cite book. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 06:53, 7 January 2025 (UTC)
::[[Wikiversity:Request custodian action#Edit MediaWiki page|Requested Custodian action]]. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 07:01, 7 January 2025 (UTC)
== Wikiversity Newsletter - Topics? ==
Hello,
For the newsletter concept on Wikiversity, for Wikiversitans (which can be seen above), I was wondering if there were any recently added or updated resources on Wikiversity that this newsletter could add.
Kind regards,
Rock [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 18:13, 9 January 2025 (UTC)
== Wikiversity page view statistics ==
I remember seeing [[recent topics/threads]] here wondering about page view statistics for this project. So I wonder if anyone else here is as curious as I am about the following page view which compares wikiversity to other wikimedia projects
https://pageviews.wmcloud.org/siteviews/?platform=all-access&source=pageviews&agent=user&range=latest-30&sites=all-projects
cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:05, 15 January 2025 (UTC)
:It does look interesting, but I haven't viewed it in depth yet. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 17:24, 19 January 2025 (UTC)
== Launching! Join Us for Wiki Loves Ramadan 2025! ==
Dear All,
We’re happy to announce the launch of [[m:Wiki Loves Ramadan 2025|Wiki Loves Ramadan 2025]], an annual international campaign dedicated to celebrating and preserving Islamic cultures and history through the power of Wikipedia. As an active contributor to the Local Wikipedia, you are specially invited to participate in the launch.
This year’s campaign will be launched for you to join us write, edit, and improve articles that showcase the richness and diversity of Islamic traditions, history, and culture.
* Topic: [[m:Event:Wiki Loves Ramadan 2025 Campaign Launch|Wiki Loves Ramadan 2025 Campaign Launch]]
* When: Jan 19, 2025
* Time: 16:00 Universal Time UTC and runs throughout Ramadan (starting February 25, 2025).
* Join Zoom Meeting: https://us02web.zoom.us/j/88420056597?pwd=NdrpqIhrwAVPeWB8FNb258n7qngqqo.1
* Zoom meeting hosted by [[m:Wikimedia Bangladesh|Wikimedia Bangladesh]]
To get started, visit the [[m:Wiki Loves Ramadan 2025|campaign page]] for details, resources, and guidelines: Wiki Loves Ramadan 2025.
Add [[m:Wiki Loves Ramadan 2025/Participant|your community here]], and organized Wiki Loves Ramadan 2025 in your local language.
Whether you’re a first-time editor or an experienced Wikipedian, your contributions matter. Together, we can ensure Islamic cultures and traditions are well-represented and accessible to all.
Feel free to invite your community and friends too. Kindly reach out if you have any questions or need support as you prepare to participate.
Let’s make Wiki Loves Ramadan 2025 a success!
For the [[m:Wiki Loves Ramadan 2025/Team|International Team]] 12:08, 16 January 2025 (UTC)
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27568454 -->
== Deletion of talk pages ==
I wonder if there are any policies here that define when talkpages are deleted?
Thanks in advance, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:30, 17 January 2025 (UTC)
:I'm not too sure if there are any topics about this. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 19:37, 17 January 2025 (UTC)
::Let me explain why I am asking about deletion:
::I have recently posted a question on a WV talk-page. The page was empty when I arrived, so had to be created, or recreated as it turns out because when I tried to post I received this box that said the page had been deleted by @[[User:Guy vandegrift|Guy vandegrift]] as a test page. I then Went ahead and recreated the page by posting at:
::[[Wikiversity talk:Wikidebate/Guy vandegrift#Do we need dialogues?]].
::However a bit later I remembered a discussion on the English Wikiquote Village Pump which was started by a contributor who was active there a long time ago who apparently was looking for their own contributions. It turned out that the history of the contributions had disappeared when the page was deleted and then re-created by another contributor who's became, at least according to the View history, the "owner" of all the previous contributions. Here is the ENWQ-VP discussion: https://en.wikiquote.org/wiki/Wikiquote:Village_pump#Now_this_is_contrary_to_the_spirit_of_Wikipedia.
::I believe deletions of old pages that seem unimportant to new users of the English Wikversity may become problematic in the future. I know that at least one [[User:MathXplore|new admin]] has been added in the last couple of years, but I am not sure how many of the experienced admins are still active, so I don't know who makes deletion decisions here.. History is crucial to maintain when people are no longeraround.
::It would be nice for the ENWV-community to understand how and what files/contributions are deleted.
::note: @[[User:Koavf|Koavf]] @[[User:Juandev|Juandev]], @[[User:OhanaUnited|OhanaUnited]] as recent participants in the Colloquium I wonder if you have any knowledge to contribute?
::Thanks advance, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 16:20, 18 January 2025 (UTC)
:::This project is generally pretty policy-lite, so deleting talk pages is probably ad hoc and left to best judgement. I have personally deleted one content page here but kept the talk page to document why it was deleted (this is common on en.wikt). —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:47, 18 January 2025 (UTC)
::::I was looking up some old history (2002) on the English Wikipedia associated with a particular user (Roadrunner) and happened to see a talk-page that was deleted in 2021 that this user had contributed content to:
::::https://en.wikipedia.org/wiki/Talk%3AImmediate_Action_Unit
::::This page is no longer public as a result of:
::::https://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Immediate_Action_Unit
::::So it appears that on the English Wikipedia talkpages were still being deleted along with their associated page as recently as 2021, I think? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 19:52, 31 January 2025 (UTC)
::: Please read [[Wikiversity:Deletions]] (especially [[WV:CSD]]) for the deletion of (talk) pages. No.8 of [[WV:CSD]] is specific for talk pages. [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 23:09, 18 January 2025 (UTC)
::::@[[User:MathXplore|MathXplore]], I think @[[User:Ottawahitech|Ottawahitech]] is referring to user talk pages (correct me if I'm wrong). Do we have any policies related to this? [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 08:02, 19 January 2025 (UTC)
::::: [[Wikiversity:Deletions]] (including [[WV:CSD]]) apply for all namespaces. Therefore, the same rule will be applied to user talk pages. [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:59, 19 January 2025 (UTC)
::::::@[[User:MathXplore|MathXplore]], thanks for clarifying. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 17:28, 19 January 2025 (UTC)
:::@[[User:Koavf|Koavf]], Thanks for this important tid-bit : {{green|I have personally deleted one content page here but kept the talk page to document why it was deleted (this is common on en.wikt).}}
:::This is a great habit IMIO. Do you happen to know if other WV-admins know how to not delete a talk-page when they delete its counterpart? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:05, 26 January 2025 (UTC)
::::I don't know that they do, but it's a fairly simple process when you're deleting pages. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 22:26, 26 January 2025 (UTC)
== Research Guidelines for the new Wiki of Government Efficiency ==
[[User:Jaredscribe/Department_of_Government_Efficiency]]
Before I move this original research project to mainspace, I invite a colloquy on my proposed
[[User:Jaredscribe/Department_of_Government_Efficiency#Research_Guidelines_and_Scholarly_Ethics|Research_Guidelines_and_Scholarly_Ethics]], and will entertain suggested improvements.
All may constructively contribute; those who do so competently, are invited to edit after they declare and disclose.
[[User_talk:Jaredscribe/Department_of_Government_Efficiency#Declare_your_Interests_and_Disclose_Potential_Conflicts]]
Thanks in advance for your consideration and informed opinions on how to make this work. [[User:Jaredscribe|Jaredscribe]] ([[User talk:Jaredscribe|discuss]] • [[Special:Contributions/Jaredscribe|contribs]]) 07:05, 20 January 2025 (UTC)
== Mentors ==
With respect to [https://en.wikiversity.org/w/index.php?title=User_talk%3AUsername142857&diff=2692853&oldid=2667985 this], may I return, and if so, could I get a mentor? [[User:Username142857|Username142857]] ([[User talk:Username142857|discuss]] • [[Special:Contributions/Username142857|contribs]]) 17:15, 20 January 2025 (UTC)
:Hi @[[User:Username142857|Username142857]]: I am not familiar with the term "mentors" on WV. What did you have in mind? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:22, 22 January 2025 (UTC)
::@[[User:Ottawahitech|Ottawahitech]], I believe he means getting a mentor to help him with his 'return' on Wikiversity. Please correct me if I'm wrong however @[[User:Username142857|Username142857]]. [[User:RailwayEnthusiast2025|''RailwayEnthusiast2025'']] 😊 ([[User_talk:RailwayEnthusiast2025|Talk page]]) 18:57, 23 January 2025 (UTC)
::'Mentors' are usually used to describe people on Wikiversity who mentor people for curatorship, custodianship etc. I think in this context, he might be trying to get a mentor to help him on Wikiversity. [[User:RailwayEnthusiast2025|<span style="color:green;">'''''RailwayEnthusiast2025'''''</span>]] ([[User talk:RailwayEnthusiast2025|talk page]] - [[Special:Contributions/RailwayEnthusiast2025|contribs]]) 20:46, 24 January 2025 (UTC)
:::To clarify, other people have stated that I should probably leave for a while, and I'm wondering if it's safe for me to return [[User:Username142857|Username142857]] ([[User talk:Username142857|discuss]] • [[Special:Contributions/Username142857|contribs]]) 05:51, 9 February 2025 (UTC)
::::@[[User:Username142857|Username142857]]: I think you should return whenever you feel like it, honestly. [[User:Contributor 118,784|<b style="color:#070">Contributor</b><sup style="color:#707">118,784</sup>]] [[User talk:Contributor 118,784|<span style="color:#00F">''Let's talk''</span>]] 12:19, 10 February 2025 (UTC)
== Universal Code of Conduct annual review: provide your comments on the UCoC and Enforcement Guidelines ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}.
I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 3 February 2025. This is the first step of several to be taken for the annual review.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]].
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 01:12, 24 January 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 -->
:Thanks for the link. I will have a look at it later. [[User:RailwayEnthusiast2025|<span style="color:green;">'''RailwayEnthusiast2025'''</span>]] ([[User talk:RailwayEnthusiast2025|talk page]]|[[Special:Contributions/RailwayEnthusiast2025|contribs]]) 08:49, 24 January 2025 (UTC)
== Subscribing to this talk-page ==
Is anyone here curious to find out what is the best method of subscribing to discussions here? Until today I did not even know one could subscribe to all new topics by clicking on ''Subscribe'' (the second ''Action'' right after ''Move''). I will have to see if indeed I am automatically subscribed to this new thread that I am hoping to start as soon as I hit the ''Add topic'' blue button at the bottom right hand corner.
So far I have had to resort to clicking ''Subscribe'' individually for each topic when I wanted to receive a notification for any new replies, but unfortunately after some items I was subscribed to have been archived on January 30, I received a message telling me I am no longer subscribed. I guess I would have to look for any updates that took place before the archive in the archive itself?
Am I making sense at all? I have managed to confuse myself, LOL. [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:11, 30 January 2025 (UTC)
:You are not subscribed to threads once they are removed from a page (e.g. by archiving). The easiest way to subscribe is by clicking on the "Subscribe" button with the bell next to it that renders near the thread's title. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:44, 30 January 2025 (UTC)
== A club for Wikiversity ==
Hello there,
I would like to start a club for Wikiversity, which would be a part of outreach. Wikiversity is one of the smallest Wikimedia projects and I enjoy contributing here. How could you help me in creating a club for this?
Yours sincerely,
[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 17:51, 31 January 2025 (UTC)
:There is a formal process for this at [[:m:Wikimedia user groups]]. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 18:18, 31 January 2025 (UTC)
::I meant like a club at an organization, school etc. Not a user group in a town or a city. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 18:31, 31 January 2025 (UTC)
:::I wanted to do this, because I'm active here, but I don't know. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 19:59, 12 February 2025 (UTC)
::::Dear @[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]], If you could contact any established user group in your locality. They could provide support to start a wiki club. [[User:511KeV|511KeV]] ([[User talk:511KeV|discuss]] • [[Special:Contributions/511KeV|contribs]]) 04:41, 28 March 2025 (UTC)
:::::Dear @[[User:511KeV|511KeV]], As said in my previous message, I wish to start a club at an organization, school etc. I wish to start a small club like this, not a user group in a town/city. I don't think you understand what I'm trying to say. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 16:23, 28 March 2025 (UTC)
::::::@@[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] Forming a non-affiliated club is a straightforward process. Gather a group of interested individuals and create a simple page on Meta-Wiki outlining the club’s purpose and how others can join and start editing. If your club focuses on a specific theme, such as medicine or the arts, you can mention it on the page.
::::::However, if you intend to establish a university- or school-affiliated club, you should seek permission from the institution. Start by submitting a formal application to the relevant authority at your college or university. [[User:511KeV|511KeV]] ([[User talk:511KeV|discuss]] • [[Special:Contributions/511KeV|contribs]]) 13:26, 29 March 2025 (UTC)
:::::::The latter is what I intend to do, and thanks for the help. I will start working on it soon. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 14:23, 29 March 2025 (UTC)
== Global ban proposal for Shāntián Tàiláng ==
Hello. This is to notify the community that there is an ongoing global ban proposal for [[species:User:Shāntián_Tàiláng|User:Shāntián Tàiláng]] who has been active on this wiki. You are invited to participate at [[metawiki:Requests_for_comment/Global_ban_for_Shāntián_Tàiláng|m:Requests for comment/Global ban for Shāntián Tàiláng]]. [[User:Wüstenspringmaus|Wüstenspringmaus]] ([[User talk:Wüstenspringmaus|discuss]] • [[Special:Contributions/Wüstenspringmaus|contribs]]) 12:50, 2 February 2025 (UTC)
:Hi @[[User:Wüstenspringmaus|Wüstenspringmaus]], Looks like the RFC you started in an effort to globally ban [[User:Shāntián Tàiláng]] has still not concluded. Forgive me, but I am indef-blocked on META so cannot ask there:
:* Is there no time limit on such nominations?
:* I am not familiar with the subject of this ban nomination, but I think there might be some unsupported allegations against them, such as harassment which is a serious issue. If I'm wrong please forgive me, I did spend a lot of time plowing through this lengthy page.
:* Many of us prefer to spend more of our time adding information to the wiki-projects that we are involved in and less to endless discussions. The Nomination page on META is now '''43,962 bytes long''' and growing, and will require any new participant spend a great deal of unproductive time to come up to speed.
:Is it expectedad that the only people who Support or Oppose your nomination be personally familiar with the User in question? Cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 23:43, 16 February 2025 (UTC)
== Reminder: first part of the annual UCoC review closes soon ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}.
This is a reminder that the first phase of the annual review period for the Universal Code of Conduct and Enforcement Guidelines will be closing soon. You can make suggestions for changes through [[d:Q614092|the end of day]], 3 February 2025. This is the first step of several to be taken for the annual review.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. After review of the feedback, proposals for updated text will be published on Meta in March for another round of community review.
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 00:49, 3 February 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28198931 -->
== Self-deleting pages that I nominated for deletion myself ==
In 2024, I nominated multiple pages for deletion via [[:Template:Proposed deletion]] (see also [[Special:WhatLinksHere/Template:Proposed deletion]]). The three-month protective period for most of them now expired.
Example pages: [[Astronomy outline]], [[VELS mathematics]], [[Particle mechanics]].
It would be ideal if the deleting person would be different from the nominating person. However, no one seems to be interested in deleting these pages.
Should I feel free to delete the pages I nominated myself? I think it could be okay, but I can also imagine someone being stringent about these matters and requiring the four-eye principle. One rationale for allowing deleting myself is that the English Wikiversity has only few active administrators and therefore, the four-eye principle would create too much of delay and overhead; on a more admin-populated project, the four-eye principle is more workable. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 06:08, 16 February 2025 (UTC)
:OK I'll bite :-)
:Looks like enwv has a different ''Proposed deletion'' notice than other wiki-projects. One thing I noticed immediately is that there is no reason or explanation required for the deletion proposal.
:I understand that all a deletion will accomplish is to remove those articles from public view. They will still continue to exist, but only admins will see them. May I ask @[[User:Dan Polansky|Dan Polansky]], why do you believe these 3 articles should be deleted? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 23:08, 16 February 2025 (UTC)
:: I always provide a reason for deletion. And thus, e.g. [[Astronomy outline]] states: "The Nominator gave the following reason for their nomination:", "too low quality to serve as a learning resource; most links are redlinks; no further reading". --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 09:18, 17 February 2025 (UTC)
: I went ahead and deleted the three listed pages. I will wait a little longer before I proceed further. Most of the usual admins do not seem to be around, though, so the absence of opposition does not tell us much. And thus, I am proceeding at risk, and undo is possible by an admin or quasi-admin. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 07:41, 24 February 2025 (UTC)
:@[[User:Dan Polansky|Dan Polansky]] You proposed deletion back in October. Yes, it's fine if you are now the one to delete it. Often there is only one user at a time interested in cleaning up Wikiversity. That person does it until they choose not to. Then after a while, someone else steps up. I cleaned up my own proposed deletions for years with very few complaints. If someone wants to object, they need to be willing to speak up and review your proposed deletions. -- [[User:Dave Braunschweig|Dave Braunschweig]] ([[User talk:Dave Braunschweig|discuss]] • [[Special:Contributions/Dave Braunschweig|contribs]]) 00:51, 26 February 2025 (UTC)
:: Thank you. I went ahead and quasi-deleted 3 more pages, this time by moving them to user space (since I could find the main creator). I will make more deletions or quasi-deletions later. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 05:47, 26 February 2025 (UTC)
== Upcoming Language Community Meeting (Feb 28th, 14:00 UTC) and Newsletter ==
<section begin="message"/>
Hello everyone!
[[File:WP20Symbols WIKI INCUBATOR.svg|right|frameless|150x150px|alt=An image symbolising multiple languages]]
We’re excited to announce that the next '''Language Community Meeting''' is happening soon, '''February 28th at 14:00 UTC'''! If you’d like to join, simply sign up on the '''[[mw:Wikimedia_Language_and_Product_Localization/Community_meetings#28_February_2025|wiki page]]'''.
This is a participant-driven meeting where we share updates on language-related projects, discuss technical challenges in language wikis, and collaborate on solutions. In our last meeting, we covered topics like developing language keyboards, creating the Moore Wikipedia, and updates from the language support track at Wiki Indaba.
'''Got a topic to share?''' Whether it’s a technical update from your project, a challenge you need help with, or a request for interpretation support, we’d love to hear from you! Feel free to '''reply to this message''' or add agenda items to the document '''[[etherpad:p/language-community-meeting-feb-2025|here]]'''.
Also, we wanted to highlight that the sixth edition of the Language & Internationalization newsletter (January 2025) is available here: [[:mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2025/January|Wikimedia Language and Product Localization/Newsletter/2025/January]]. This newsletter provides updates from the October–December 2024 quarter on new feature development, improvements in various language-related technical projects and support efforts, details about community meetings, and ideas for contributing to projects. To stay updated, you can subscribe to the newsletter on its wiki page: [[:mw:Wikimedia Language and Product Localization/Newsletter|Wikimedia Language and Product Localization/Newsletter]].
We look forward to your ideas and participation at the language community meeting, see you there!
<section end="message"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 08:29, 22 February 2025 (UTC)
<!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28217779 -->
== Replicate [[c:Template:Imagestack]] ==
I find this feature on Commons quite practical, and would like to use it on Wikiversity. But just copying the content to {{tl|Imagestack}} is not enough. The example on {{tl|Imagestack/sandbox}} remains static. Does someone know how to implement the JavaScript? [[User:Watchduck|Watchduck]] <small>([[User talk:Watchduck|quack]])</small> 18:31, 26 February 2025 (UTC)
:I don't know how to implement the JavaScript here. I haven't used the Imagestack feature before. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 21:11, 20 March 2025 (UTC)
== Universal Code of Conduct annual review: proposed changes are available for comment ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}.
I am writing to you to let you know that [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|proposed changes]] to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct (UCoC) Enforcement Guidelines]] and [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) Charter]] are open for review. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|You can provide feedback on suggested changes]]''' through the [[d:Q614092|end of day]] on Tuesday, 18 March 2025. This is the second step in the annual review process, the final step will be community voting on the proposed changes.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find relevant links about the process on the UCoC annual review page on Meta]].
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] 18:52, 7 March 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28307738 -->
== Your wiki will be in read-only soon ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster.
All traffic will switch on '''{{#time:j xg|2025-03-19|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2025-03-19T14:00|en}} {{#time:H:i e|2025-03-19T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2025-03-19|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule.
'''Please share this information with your community.'''</div><section end="server-switch"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:14, 14 March 2025 (UTC)
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=28307742 -->
== Wikidata and Sister Projects: an online event ==
Hello everyone, I’m writing to announce an upcoming event called [[wikidata:Event:Wikidata and Sister Projects|'''Wikidata and Sister Projects''']] that will be a mini online conference to highlight the different ways Wikidata can be connected and integrated with the other WM projects.
We are currently looking for session ideas and speakers for our program and wanted to reach out in case there were any editors here that might have a cool idea for a session proposal. Sessions can be found on the [[wikidata:Event talk:Wikidata and Sister Projects|'''event discussion page''']].
As previously mentioned, we would like to showcase the relationship between Wikibooks and Wikidata, such as the storing of metadata and sitelinking between books and their respective Wikidata items. Do you have an idea for a session? We'd love to hear about it!
The event is scheduled between '''May 29 - June 1st, 2025'''. If you have any questions about the event, would like more information or have a session idea to propose, please feel free to get in touch by replying to this post or writing on the event page or on my [[v:User_talk:Danny_Benjafield_(WMDE)|talk page]]. Thanks for reading, - [[wikidata:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[wikidata:User talk:Danny Benjafield (WMDE)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 07:48, 1 April 2025 (UTC)
== Final proposed modifications to the Universal Code of Conduct Enforcement Guidelines and U4C Charter now posted ==
<div lang="en" dir="ltr" class="mw-content-ltr">
The proposed modifications to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct Enforcement Guidelines]] and the U4C Charter [[m:Universal_Code_of_Conduct/Annual_review/2025/Proposed_Changes|are now on Meta-wiki for community notice]] in advance of the voting period. This final draft was developed from the previous two rounds of community review. Community members will be able to vote on these modifications starting on 17 April 2025. The vote will close on 1 May 2025, and results will be announced no later than 12 May 2025. The U4C election period, starting with a call for candidates, will open immediately following the announcement of the review results. More information will be posted on [[m:Special:MyLanguage//Universal_Code_of_Conduct/Coordinating_Committee/Election|the wiki page for the election]] soon.
Please be advised that this process will require more messages to be sent here over the next two months.
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 02:05, 4 April 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 -->
== Wikidata and Sister Projects: An online community event ==
''(Apologies for posting in English)''
Hello everyone, I am excited to share news of an upcoming online event called '''[[d:Event:Wikidata_and_Sister_Projects|Wikidata and Sister Projects]]''' celebrating the different ways Wikidata can be used to support or enhance with another Wikimedia project. The event takes place over 4 days between '''May 29 - June 1st, 2025'''.
We would like to invite speakers to present at this community event, to hear success stories, challenges, showcase tools or projects you may be working on, where Wikidata has been involved in Wikipedia, Commons, WikiSource and all other WM projects.
If you are interested in attending, please [[d:Special:RegisterForEvent/1291|register here]].
If you would like to speak at the event, please fill out this Session Proposal template on the [[d:Event_talk:Wikidata_and_Sister_Projects|event talk page]], where you can also ask any questions you may have.
I hope to see you at the event, in the audience or as a speaker, - [[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 09:18, 11 April 2025 (UTC)
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Send_List&oldid=28525705 -->
== Vote now on the revised UCoC Enforcement Guidelines and U4C Charter ==
<div lang="en" dir="ltr" class="mw-content-ltr">
The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines ("UCoC EG") and the UCoC's Coordinating Committee Charter is open now through the end of 1 May (UTC) ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/2025/Voter_information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki.
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review of the EG and Charter was planned and implemented by the U4C. Further information will be provided in the coming months about the review of the UCoC itself. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
In cooperation with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 00:35, 17 April 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 -->
== FYI: Can Citizen Science Be Trusted? New Study of Birds Shows It Can ==
https://www.ucdavis.edu/news/can-citizen-science-be-trusted-new-study-birds-shows-it-can —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 01:08, 23 April 2025 (UTC)
== Vote on proposed modifications to the UCoC Enforcement Guidelines and U4C Charter ==
<section begin="announcement-content" />
The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines and U4C Charter closes on 1 May 2025 at 23:59 UTC ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025/Voter information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki.
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Please share this message with members of your community in your language, as appropriate, so they can participate as well.
In cooperation with the U4C -- <section end="announcement-content" />
<div lang="en" dir="ltr" class="mw-content-ltr">
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 03:41, 29 April 2025 (UTC)</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== Question Centre ==
I have a question:
'''1.''''Is it possible to change your username? Or is it permament?
''Antworte zu meinem Kommentar, und Ich werde zu dir abonnieren. ''
[[User:Kumpa-pasión|Kumpa-pasión]] ([[User talk:Kumpa-pasión|discuss]] • [[Special:Contributions/Kumpa-pasión|contribs]]) 15:18, 30 April 2025 (UTC)
:Hello {{ping|Kumpa-pasión}} To change your username, you can go to [https://meta.wikimedia.org/wiki/Special:GlobalRenameRequest Special:GlobalRenameRequest]. —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 16:42, 2 May 2025 (UTC)
== Names of pages I am creating, one man's look at X ==
I am creating pages like [[One man's look at LibreOffice]], but I am increasingly dissatisfied with this naming scheme. It just means that "One man's look at X" is nothing but "Dan Polansky's look at X"; what is so special about Dan Polansky that he is the "one man", which other people are not? I prefer "X (Dan Polansky)", but that was previously rejected (I should find the discussion, but I am too lazy now). What was not rejected is "X/Dan Polansky" (as in [[COVID-19/Dan Polansky]]), but I find it greatly suboptimal: there is nothing in that syntax that suggests that "Dan Polansky" is an author name; compare a possible "Philosophy/Aristotle", which would be ''about'' Aristotle and not ''by'' Aristotle.
Perhaps we can have a discussion/conversation about alternative proposals and what makes them preferable and dispreferable, desirable and undesirable? --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:07, 1 May 2025 (UTC)
: If a main space page is meant only for one user's view, then perhaps that page should instead be located in that user's space. -- [[User:Jtneill|Jtneill]] - <small>[[User talk:Jtneill|Talk]] - [[Special:Contributions/Jtneill|c]]</small> 05:12, 17 May 2025 (UTC)
:: That would not work: pages in user space are not Google search indexed, from what I understand. One's spending effort to write and publish an article and then having it ignored by readers since not found via Google Search is not rewarding; I do not see why people would like to do it, and they apparently don't. Moreover, since other editors can comment on the article on the talk page, it is vital that the author does not have the right to have the article deleted on a whim; an article should be deleted only in well justified rare cases (ethical breach, etc.).
:: I think that a page being author-specific should be the usual case, not the rare case, in Wikiversity. It is the case with Wikijournal articles. It also seems to be the case with the Motivation and Emotion pages, e.g. as listed in [[Motivation and emotion/Book/2024]]; and thus, e.g. [[Motivation and emotion/Book/2024/Abusive supervision]] has TJDuus as the main author as per the assignment and revision history (there are auxiliary editors, but the author seems to maintain editorial control?)
:: Since Wikiversity pages are not organized by the principle of being encyclopedic and by avoidance of original research, I do not see how the free-for-all editing of Wikipedia could possibly work here.
:: Some of the best materials I have seen in the English Wikiversity either have a single author or single main author. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:10, 17 May 2025 (UTC)
== We will be enabling the new Charts extension on your wiki soon! ==
''(Apologies for posting in English)''
Hi all! We have good news to share regarding the ongoing problem with graphs and charts affecting all wikis that use them.
As you probably know, the [[:mw:Special:MyLanguage/Extension:Graph|old Graph extension]] was disabled in 2023 [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/EWL4AGBEZEDMNNFTM4FRD4MHOU3CVESO/|due to security reasons]]. We’ve worked in these two years to find a solution that could replace the old extension, and provide a safer and better solution to users who wanted to showcase graphs and charts in their articles. We therefore developed the [[:mw:Special:MyLanguage/Extension:Chart|Charts extension]], which will be replacing the old Graph extension and potentially also the [[:mw:Extension:EasyTimeline|EasyTimeline extension]].
After successfully deploying the extension on Italian, Swedish, and Hebrew Wikipedia, as well as on MediaWiki.org, as part of a pilot phase, we are now happy to announce that we are moving forward with the next phase of deployment, which will also include your wiki.
The deployment will happen in batches, and will start from '''May 6'''. Please, consult [[:mw:Special:MyLanguage/Extension:Chart/Project#Deployment Timeline|our page on MediaWiki.org]] to discover when the new Charts extension will be deployed on your wiki. You can also [[:mw:Special:MyLanguage/Extension:Chart|consult the documentation]] about the extension on MediaWiki.org.
If you have questions, need clarifications, or just want to express your opinion about it, please refer to the [[:mw:Special:MyLanguage/Extension_talk:Chart/Project|project’s talk page on Mediawiki.org]], or ping me directly under this thread. If you encounter issues using Charts once it gets enabled on your wiki, please report it on the [[:mw:Extension_talk:Chart/Project|talk page]] or at [[phab:tag/charts|Phabricator]].
Thank you in advance! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:07, 6 May 2025 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28663781 -->
== Progressive translations ==
If you gradually translate more and more words in a text it's called "progressive translation" apparently. If we were doing, say, English to Hungarian it would look like "I took the ''vonat'' (train) to Budapest" and later on "I saw the river from the ''vonat''". I want to be able to read novels and pick up vocabulary in this way, as well as make them (or rather get an AI to make them) and share them with other language learners.
It's education so I thought you might be interested in hosting them, and maybe some people here would be interested in helping out. Thanks for any feedback [[User:Progressive translator|Progressive translator]] ([[User talk:Progressive translator|discuss]] • [[Special:Contributions/Progressive translator|contribs]]) 16:54, 6 May 2025 (UTC)
== Call for Candidates for the Universal Code of Conduct Coordinating Committee (U4C) ==
<section begin="announcement-content" />
The results of voting on the Universal Code of Conduct Enforcement Guidelines and Universal Code of Conduct Coordinating Committee (U4C) Charter is [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025#Results|available on Meta-wiki]].
You may now [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025/Candidates|submit your candidacy to serve on the U4C]] through 29 May 2025 at 12:00 UTC. Information about [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025|eligibility, process, and the timeline are on Meta-wiki]]. Voting on candidates will open on 1 June 2025 and run for two weeks, closing on 15 June 2025 at 12:00 UTC.
If you have any questions, you can ask on [[m:Talk:Universal Code of Conduct/Coordinating Committee/Election/2025|the discussion page for the election]]. -- in cooperation with the U4C, </div><section end="announcement-content" />
<bdi lang="en" dir="ltr">[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|discuss]])</bdi> 22:08, 15 May 2025 (UTC)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== RfC ongoing regarding Abstract Wikipedia (and your project) ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''(Apologies for posting in English, if this is not your first language)''
Hello all! We opened a discussion on Meta about a very delicate issue for the development of [[:m:Special:MyLanguage/Abstract Wikipedia|Abstract Wikipedia]]: where to store the abstract content that will be developed through functions from Wikifunctions and data from Wikidata. Since some of the hypothesis involve your project, we wanted to hear your thoughts too.
We want to make the decision process clear: we do not yet know which option we want to use, which is why we are consulting here. We will take the arguments from the Wikimedia communities into account, and we want to consult with the different communities and hear arguments that will help us with the decision. The decision will be made and communicated after the consultation period by the Foundation.
You can read the various hypothesis and have your say at [[:m:Abstract Wikipedia/Location of Abstract Content|Abstract Wikipedia/Location of Abstract Content]]. Thank you in advance! -- [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 15:27, 22 May 2025 (UTC)
</div>
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28768453 -->
== Wikimedia Foundation Board of Trustees 2025 Selection & Call for Questions ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
This year, the term of 2 (two) Community- and Affiliate-selected Trustees on the Wikimedia Foundation Board of Trustees will come to an end [1]. The Board invites the whole movement to participate in this year’s selection process and vote to fill those seats.
The Elections Committee will oversee this process with support from Foundation staff [2]. The Governance Committee, composed of trustees who are not candidates in the 2025 community-and-affiliate-selected trustee selection process (Raju Narisetti, Shani Evenstein Sigalov, Lorenzo Losa, Kathy Collins, Victoria Doronina and Esra’a Al Shafei) [3], is tasked with providing Board oversight for the 2025 trustee selection process and for keeping the Board informed. More details on the roles of the Elections Committee, Board, and staff are here [4].
Here are the key planned dates:
* May 22 – June 5: Announcement (this communication) and call for questions period [6]
* June 17 – July 1, 2025: Call for candidates
* July 2025: If needed, affiliates vote to shortlist candidates if more than 10 apply [5]
* August 2025: Campaign period
* August – September 2025: Two-week community voting period
* October – November 2025: Background check of selected candidates
* Board’s Meeting in December 2025: New trustees seated
Learn more about the 2025 selection process - including the detailed timeline, the candidacy process, the campaign rules, and the voter eligibility criteria - on this Meta-wiki page [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025|[link]]].
'''Call for Questions'''
In each selection process, the community has the opportunity to submit questions for the Board of Trustees candidates to answer. The Election Committee selects questions from the list developed by the community for the candidates to answer. Candidates must answer all the required questions in the application in order to be eligible; otherwise their application will be disqualified. This year, the Election Committee will select 5 questions for the candidates to answer. The selected questions may be a combination of what’s been submitted from the community, if they’re alike or related. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025/Questions_for_candidates|[link]]]
'''Election Volunteers'''
Another way to be involved with the 2025 selection process is to be an Election Volunteer. Election Volunteers are a bridge between the Elections Committee and their respective community. They help ensure their community is represented and mobilize them to vote. Learn more about the program and how to join on this Meta-wiki page [[m:Wikimedia_Foundation_elections/2025/Election_volunteers|[link].]]
Thank you!
[1] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2022/Results
[2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter
[3] https://foundation.wikimedia.org/wiki/Resolution:Committee_Membership,_December_2024
[4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles
[5] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/FAQ
[6] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/Questions_for_candidates
Best regards,
Victoria Doronina
Board Liaison to the Elections Committee
Governance Committee<section end="announcement-content" />
[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 03:08, 28 May 2025 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== Vote now in the 2025 U4C Election ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}
Eligible voters are asked to participate in the 2025 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2025|2025 Election information page]]. The vote closes on 17 June 2025 at [https://zonestamp.toolforge.org/1750161600 12:00 UTC].
Please vote if your account is eligible. Results will be available by 1 July 2025. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 23:01, 13 June 2025 (UTC) </div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28848819 -->
== Geometric growth in views ==
Wikiversity seems to be experiencing an [https://stats.wikimedia.org/#/en.wikiversity.org/reading/total-page-views/normal|bar|all|~total|monthly unprecedented amount of traffic], literally doubling in May '25 with almost 60 million monthly views. (Note practically no growth from 2016-24. From a [[Wikiversity:Colloquium/archives/December_2024#An_unexplained_spurt_of_Wikiversity_page_views|previous thread's link]], this is only partially reflected on the [https://pageviews.wmcloud.org/siteviews/?platform=all-access&source=pageviews&agent=user&range=this-year&sites=en.wikiversity.org|en.wikibooks.org|en.wikiquote.org|en.wikisource.org Pageviews widget], except for Wikisource somewhat.)
I haven't seen any corresponding unprecedented [https://stats.wikimedia.org/#/en.wikiversity.org/contributing/active-editors/normal%7Cline%7Call%7C(page_type)~content*non-content%7Cmonthly activity] however. Anyone know what's up? LLM crawling maybe? [[User:Tule-hog|Tule-hog]] ([[User talk:Tule-hog|discuss]] • [[Special:Contributions/Tule-hog|contribs]]) 21:56, 15 June 2025 (UTC)
== Wikimedia Foundation Board of Trustees 2025 - Call for Candidates ==
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Call for candidates|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Call for candidates}}&language=&action=page&filter= {{int:please-translate}}]</div>
Hello all,
The [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|call for candidates for the 2025 Wikimedia Foundation Board of Trustees selection is now open]] from June 17, 2025 – July 2, 2025 at 11:59 UTC [1]. The Board of Trustees oversees the Wikimedia Foundation's work, and each Trustee serves a three-year term [2]. This is a volunteer position.
This year, the Wikimedia community will vote in late August through September 2025 to fill two (2) seats on the Foundation Board. Could you – or someone you know – be a good fit to join the Wikimedia Foundation's Board of Trustees? [3]
Learn more about what it takes to stand for these leadership positions and how to submit your candidacy on [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidate application|this Meta-wiki page]] or encourage someone else to run in this year's election.
Best regards,
Abhishek Suryawanshi<br />
Chair of the Elections Committee
On behalf of the Elections Committee and Governance Committee
[1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Call_for_candidates
[2] https://foundation.wikimedia.org/wiki/Legal:Bylaws#(B)_Term.
[3] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Resources_for_candidates<section end="announcement-content" />
[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 17:44, 17 June 2025 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28866958 -->
teb24kmg707b07k85xtgr5g9s1uv7n4
2718956
2718861
2025-06-18T00:17:14Z
Koavf
147
/* Geometric growth in views */ Reply
2718956
wikitext
text/x-wiki
{{Wikiversity:Colloquium/Header}}
<!-- MESSAGES GO BELOW -->
== 'Wikidata item' link is moving, finally. ==
Hello everyone, I previously wrote on the 27th September to advise that the ''Wikidata item'' sitelink will change places in the sidebar menu, moving from the '''General''' section into the '''In Other Projects''' section. The scheduled rollout date of 04.10.2024 was delayed due to a necessary request for Mobile/MinervaNeue skin. I am happy to inform that the global rollout can now proceed and will occur later today, 22.10.2024 at 15:00 UTC-2. [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Please let us know]] if you notice any problems or bugs after this change. There should be no need for null-edits or purging cache for the changes to occur. Kind regards, -[[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] 11:28, 22 October 2024 (UTC)
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27535421 -->
:Hi @[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]]: I Just noticed your post above, and it is timely.
:I have been participating in the English WikiUniversity for a few years, much less often recently. I seems like something in the way the site displays is different, but I cannot put my finger on it. Your posting gave me a clue. Can you please tell me where the link to wikidata items has moved to? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:23, 11 December 2024 (UTC)
::Hello @[[User:Ottawahitech|Ottawahitech]], sure, I would be happy to. The button/sitelink name didn't change, just its position. You should find it in the sidebar-menu under the section '''In other projects''' (where the links to all other Wikimedia Projects are displayed). If you do not see it, please reach out to us on the [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Move Wikidata item - Discussion page]]. Thank you, -[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[User talk:Danny Benjafield (WMDE)|discuss]] • [[Special:Contributions/Danny Benjafield (WMDE)|contribs]]) 09:24, 12 December 2024 (UTC)
:::@[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]], thank you for responding. I intend to followup on the ''Move Wikidata item - Discussion page'' as per your post above by putting it on my ever growing todo list.
:::I don't know about others on this wiki, as I said I have not been visiting here frequently, but for me the constant changes are a big distraction. I have been around wikimedia projects since 2007, so why do I have to spend so much time learning and re-learning how to find what I came here for? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 16:41, 12 December 2024 (UTC)
::::Hi @[[User:Ottawahitech|Ottawahitech]], thanks for you thoughts. Your input whether positive or critical helps us understand the impacts to editors so we welcome your further thoughts when you reach us in your To Do List :)
::::I can't speak about the other changes you've experienced here but I do hope they are made with a spirit of improvement for the community as a whole. -[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[User talk:Danny Benjafield (WMDE)|discuss]] • [[Special:Contributions/Danny Benjafield (WMDE)|contribs]]) 10:43, 16 December 2024 (UTC)
:::::@[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]]:
:::::Re: '''Your input whether positive or critical helps us understand the impacts to editors'''
:::::Today I (finally) checked [[Move Wikidata item - Discussion page]] and discovered that it is a talkpage on META where, unfortunately, I am infinitely blocked, so cannot participate. Even so, I proceeded to try and see what others are saying and immediately came to the conclusion that the few who actually participated in that discussin viewed the change negatively. It must be disheartening for developers to meet such a hostile attitude from the community. Please don't take it personally, this is a common phenomena in wikimedia community wide discussions , IMIO.
:::::I further checked the [https://pageviews.wmcloud.org/?project=meta.wikimedia.org&platform=all-access&agent=user&redirects=0&range=latest-90&pages=Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link page view statistcics] which showed there were only 828 pageviews in the last 90 days, and what's worse [https://meta.wikimedia.org/w/index.php?title=Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link&action=info#mw-pageinfo-watchers the page has "Fewer than 30 watchers"].
:::::Since [[META:User:Danny Benjafield (WMDE)|your userpage on META]] says that you are the: "Community Communications Manager Wikidata Integrations Team", may I ask how this apparent apathy is being addressed by your own management?
:::::I apologize if my post is not welcome on the Wikiversity:Colloquium, as i said I am a rather infrequent visitor to this wiki. I probably would not have followed up if you did not assure us that our feedback positive or negative is sought. Cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:49, 3 January 2025 (UTC)
::::::Dear @[[User:Ottawahitech|Ottawahitech]], I am so so sorry for leaving you on read for these last months, I have no excuse other than reading your comment and then getting lost before making a reply.
::::::The team I am working with, [[m:Wikidata_For_Wikimedia_Projects|Wikidata for Wikimedia Projects]] is a new development team, so I think management has allowed a certain amount of elbow room or leeway for us to make small changes whilst developing our confidence tackling the MediaWiki codebase with onboarding tasks that won't 'rock the boat' too much. We certainly expected some pushback or resistance to moving the Wikidata item as editors are so used to where it previously resided. Now it has been some time and hopefully the communities have gotten used to the change.
::::::Please do not apologise, your comments are always welcome, critical or not, as a new team I think we certainly "fly under the radar" to an extent and I hope that changes as we continue to work on projects that deepen the integrations between Wikidata and the other sibling projects. Once again, my sincere apologies for the delay in this reply. -[[User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[User talk:Danny Benjafield (WMDE)|discuss]] • [[Special:Contributions/Danny Benjafield (WMDE)|contribs]]) 13:59, 1 April 2025 (UTC)
== Wikiversity - Newsletters ==
Hello All,
I wanted to create a newsletter on Wikiversity, which would highlight what is going on in certain months and events on Wikiversity; which would bolster engagement by many people. This would be on the website and would have its dedicated 'Newsletter' tab.
I hope you acknowledge this idea. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 21:05, 8 December 2024 (UTC)
:@[[User:RockTransport|RockTransport]], What sort of things do you plan to include in your newsletter? Will they be different than what is currently in [[Main Page/News]]? Just curious.
:I am also wondering about your motive which I think is: to bolster engagement by many people. I am asking because I wonder if others who are currently active here also think this I is desirable? Have you asked them? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:34, 11 December 2024 (UTC)
::Not yet, which was why I was asking this on the colloquium. I plan to include things that many people have created on Wikiversity over the month, as it is a monthly newsletter. It would be somewhere on the website here. It will be more frequent that the ones seen on [[Main Page/News]]. We will include people's resources to essentially promote them. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 06:50, 12 December 2024 (UTC)
:::@[[User:RockTransport|RockTransport]], I Think what you are saying is that ''Main Page/News'' does not update frequently enough?
:::If this is the reason, why not start small by simply increasing the frequency of posting news on the main page, instead of trying to start a newsletter?
:::If there is more, can you articulate what else is missing. Thanks in advance, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 16:51, 12 December 2024 (UTC)
::::I meant going to detail into topics covered in that month, rather than just giving a few points. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 16:53, 12 December 2024 (UTC)
:::::What sort of details did you have in mind? You can pick one of the links provided in [[Main Page/News]] to illustrate. cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 15:29, 16 December 2024 (UTC)
::::::I'm thinking of the community entering their projects, and discussing those in the newsletter. It depends on what they want, though. There would be a dedicated page for giving the information about their projects [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 17:24, 16 December 2024 (UTC)
:::::::I might start working on this soon, depending on the projects being created on Wikiversity. @[[User:Ottawahitech|Ottawahitech]] @[[User:Atcovi|Atcovi]] [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 18:25, 17 December 2024 (UTC)
::::::::I'd recommend you start off with putting this under a userspace page (something like [[User:RockTransport/Wikiversity Newsletter]]), and drafting what you desire. Let us know once it's done, and the community can provide their input. —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 18:30, 17 December 2024 (UTC)
:::::::::I will try and make one for this month. This is supposed to be a monthly newsletter, showcasing the different projects mentioned there. Users can put their projects, and we will document them on the newsletter. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 18:33, 17 December 2024 (UTC)
:::::::::I am hoping for it to be released by January 2025. There's no rush to get it done; it's still in it's planning stage. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 18:43, 17 December 2024 (UTC)
::::I '''might''' be able to icnrease the frequency there, but it doesn't go into detail about these topics. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 17:30, 18 December 2024 (UTC)
:Where you are going to get the audience for your website and Wikiversity newsletter? [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 08:38, 18 December 2024 (UTC)
::It's on Wikiversity, not on an outside platform. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 13:51, 18 December 2024 (UTC)
::The audience will be Wikiversity contributors. There will be a dedicated page for it on Wikiversity. [[User:RockTransport|RockTransport]] ([[User talk:RockTransport|discuss]] • [[Special:Contributions/RockTransport|contribs]]) 13:55, 18 December 2024 (UTC)
:::Hi @[[User:RockTransport|RockTransport]], Just wondering if there is a progress on the wikiversity newsletter? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 18:09, 6 January 2025 (UTC)
::::There is progress, I just need to find some topics to cover about. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 18:26, 6 January 2025 (UTC)
::::Also, if you wanted to see the work being done on the page, go to [[User:RockTransport/Wikiversity Newsletter|this page]]. I haven't worked on it that much lately, but I am constantly working on it. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 18:38, 6 January 2025 (UTC)
== <s>Degrees</s> (Certificates (see below)) ==
Why does Wikiversity not provide degrees? I know it was a promise to the Wikimedia Foundation in the Wikiversity project proposal. But anyway, why is that? Wikiversity is about opening doors, i.e., removing obstacles. So, what kind of an obstacle was a paper? Was a certain body of knowledge that you learned well?! Because Wikiversity is not accredited for that? Yes, and do we need official US accreditation? We cannot create our system so that the learners who learn here and would like to continue their science career have a recognizable degree they can continue? [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 10:19, 18 December 2024 (UTC)
:"I know it was a promise to the Wikimedia Foundation in the Wikiversity project proposal." Was it? Becoming a degree-granting institution is an extremely high bar in the United States, but what is even the point in becoming a degree-granting institution in... Malawi? Tonga? Somewhere else where the servers aren't located or the WMF aren't incorporated? —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 15:53, 18 December 2024 (UTC)
::I ment certificates. The question is the recognazibility of a certificate. I am not talking here about equal certification, which is provided by governmental institucians to universities, rather on Wikiversity own certification, which might may advocate itself over the time. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 15:05, 19 December 2024 (UTC)
::: We could issue certificates in some residing in certain jurisdictions probably (?). To my knowledge, there is no legal prohibition federally against doing this in the USA as long as no misrepresentation happens. Although some states might prohibit it (?). Degrees are likely different (at least with respect to accreditation). Please let me know if you believe I am likely incorrect in my understanding. I asked an LLM this prompt, "is there any prohibition legally in USA for a DAO (decentralized autonomous organization or wiki community related to learning, teaching, and research) from issuing certifications or certificates to those who go through learning materials and educational resources that might be on a decentralized or nonprofit wiki that has an active community?" (i won't post the specific result, but I wrote and engineered that prompt myself). The LLM output seemed to indicate my understanding noted here is correct, but LLM's are sometimes wrong. what do you or others think about this? [[User:Michael Ten|Michael Ten]] ([[User talk:Michael Ten|discuss]] • [[Special:Contributions/Michael Ten|contribs]]) 18:49, 25 December 2024 (UTC)
:From [https://web.archive.org/web/20170703053134/https://wikimediafoundation.org/wiki/Meetings/November_13,_2005 the WMF Board] (repeated at [[WV:WWIN]]):
:<blockquote>"[[Wikiversity:Original proposal|Wikiversity proposal]] not approved, but we will approve it if [[Wikiversity:Approved Wikiversity project proposal|some changes are made]]... The board recommend rewriting the proposal to ''exclude credentials'', exclude online-courses and clarify the concept of elearning platform."</blockquote>
:That is, Wikiversity was prevented from creation until it was codified '''not''' to provide credentials. It is not just ''U.S.'' credentials, but credentials period.
:I see you were around for [[Wikiversity:Community Review/Wikimedia Ethics:Ethical Breaching Experiments|the Reckoning]], so I imagine you are aware of the potential consequences of challenging such a clear policy so explicitly. I worry the community would not withstand another round. [[User:Tule-hog|Tule-hog]] ([[User talk:Tule-hog|discuss]] • [[Special:Contributions/Tule-hog|contribs]]) 19:24, 2 January 2025 (UTC)
::That said, I see nothing wrong with a cute badge of some sort (emulating barnstars) for completion of a resource (perhaps supervised/signed off by the resource creators). Even if there is no pretention of "credentials", who doesn't like a trophy? [[User:Tule-hog|Tule-hog]] ([[User talk:Tule-hog|discuss]] • [[Special:Contributions/Tule-hog|contribs]]) 20:19, 2 January 2025 (UTC)
:::[[:w:Gamification|Gamification]] is quite different than granting certificates and degrees. And ''even'' if Wikiversity grants certificates, half the battle is getting others to recognize the legitimacy of the certificate. Otherwise people will just think of Wikiversity as a [[:w:diploma mill|diploma mill]] especially if this conversation steers towards purposely issuing certificates in far flung countries for the sole purpose of skirting around the rules. And that's something I don't want to be associated with if Wikiversity goes down that path. [[User:OhanaUnited|<b><span style="color: #0000FF;">OhanaUnited</span></b>]][[User talk:OhanaUnited|<b><span style="color: green;"><sup>Talk page</sup></span></b>]] 21:24, 2 January 2025 (UTC)
== Citation system ==
How is being maintained citation system on en.wv. I mean, is it completly the same as on English Wikipedia? Do we update it according to English Wikipedia? How we do that? Are the templates like [[Template:Cite book|Cite book]] based on Lua? I dont see any invoke word. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 16:20, 2 January 2025 (UTC)
:I was just working on references in [[WikiJournal Preprints/Mobility-aware Scheduling in Fog Computing: Analysis and Challenges]]. And I agree with you. The citation system is so outdated compared to en.wp. Just the fact that I have to do extra clicks to access {{tl|cite journal}} is bizarre. Are there efforts to sync updates to the current citation version on en.wp? [[User:OhanaUnited|<b><span style="color: #0000FF;">OhanaUnited</span></b>]][[User talk:OhanaUnited|<b><span style="color: green;"><sup>Talk page</sup></span></b>]] 21:35, 2 January 2025 (UTC)
::Not mine, I am just wondering if there is an easy system how to take over citation aparatus. I havent investigated the citation system on English Wikipedia yet, but on the first glance it looks like a very complicated environment. So in the following days Ill be looking on it if its a way to overtake it or if it would be easier to create own citation system. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 22:00, 2 January 2025 (UTC)
== Proposal: citation templates for VisualEditor ==
@[[User:OhanaUnited|OhanaUnited]] [[Wikiversity:Colloquium#Citation system|pointed above]], that they had a hard time to create citations via VisualEditor I believe. I think its because of missing map in [[MediaWiki:Cite-tool-definition.json]] ([[phab:T219551|see also]]). And the question is, which citation templates the editor should list. So I would propose the same as on en.wp, i.e. [[Template:Cite book|Cite book]], [[Template:Cite journal|journal]], [[Template:Cite news|news]], and [[Template:Cite web|web]]. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 13:38, 3 January 2025 (UTC)
:I support those four templates (book, journal, news, web). Another part of me wonders if we should include other use cases like AV media, thesis and report. But they may have limited usage and will only clutter the screen. [[User:OhanaUnited|<b><span style="color: #0000FF;">OhanaUnited</span></b>]][[User talk:OhanaUnited|<b><span style="color: green;"><sup>Talk page</sup></span></b>]] 04:55, 7 January 2025 (UTC)
::Sure and thesis could be cited by Cite book. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 06:53, 7 January 2025 (UTC)
::[[Wikiversity:Request custodian action#Edit MediaWiki page|Requested Custodian action]]. [[User:Juandev|Juandev]] ([[User talk:Juandev|discuss]] • [[Special:Contributions/Juandev|contribs]]) 07:01, 7 January 2025 (UTC)
== Wikiversity Newsletter - Topics? ==
Hello,
For the newsletter concept on Wikiversity, for Wikiversitans (which can be seen above), I was wondering if there were any recently added or updated resources on Wikiversity that this newsletter could add.
Kind regards,
Rock [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 18:13, 9 January 2025 (UTC)
== Wikiversity page view statistics ==
I remember seeing [[recent topics/threads]] here wondering about page view statistics for this project. So I wonder if anyone else here is as curious as I am about the following page view which compares wikiversity to other wikimedia projects
https://pageviews.wmcloud.org/siteviews/?platform=all-access&source=pageviews&agent=user&range=latest-30&sites=all-projects
cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:05, 15 January 2025 (UTC)
:It does look interesting, but I haven't viewed it in depth yet. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 17:24, 19 January 2025 (UTC)
== Launching! Join Us for Wiki Loves Ramadan 2025! ==
Dear All,
We’re happy to announce the launch of [[m:Wiki Loves Ramadan 2025|Wiki Loves Ramadan 2025]], an annual international campaign dedicated to celebrating and preserving Islamic cultures and history through the power of Wikipedia. As an active contributor to the Local Wikipedia, you are specially invited to participate in the launch.
This year’s campaign will be launched for you to join us write, edit, and improve articles that showcase the richness and diversity of Islamic traditions, history, and culture.
* Topic: [[m:Event:Wiki Loves Ramadan 2025 Campaign Launch|Wiki Loves Ramadan 2025 Campaign Launch]]
* When: Jan 19, 2025
* Time: 16:00 Universal Time UTC and runs throughout Ramadan (starting February 25, 2025).
* Join Zoom Meeting: https://us02web.zoom.us/j/88420056597?pwd=NdrpqIhrwAVPeWB8FNb258n7qngqqo.1
* Zoom meeting hosted by [[m:Wikimedia Bangladesh|Wikimedia Bangladesh]]
To get started, visit the [[m:Wiki Loves Ramadan 2025|campaign page]] for details, resources, and guidelines: Wiki Loves Ramadan 2025.
Add [[m:Wiki Loves Ramadan 2025/Participant|your community here]], and organized Wiki Loves Ramadan 2025 in your local language.
Whether you’re a first-time editor or an experienced Wikipedian, your contributions matter. Together, we can ensure Islamic cultures and traditions are well-represented and accessible to all.
Feel free to invite your community and friends too. Kindly reach out if you have any questions or need support as you prepare to participate.
Let’s make Wiki Loves Ramadan 2025 a success!
For the [[m:Wiki Loves Ramadan 2025/Team|International Team]] 12:08, 16 January 2025 (UTC)
<!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27568454 -->
== Deletion of talk pages ==
I wonder if there are any policies here that define when talkpages are deleted?
Thanks in advance, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:30, 17 January 2025 (UTC)
:I'm not too sure if there are any topics about this. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 19:37, 17 January 2025 (UTC)
::Let me explain why I am asking about deletion:
::I have recently posted a question on a WV talk-page. The page was empty when I arrived, so had to be created, or recreated as it turns out because when I tried to post I received this box that said the page had been deleted by @[[User:Guy vandegrift|Guy vandegrift]] as a test page. I then Went ahead and recreated the page by posting at:
::[[Wikiversity talk:Wikidebate/Guy vandegrift#Do we need dialogues?]].
::However a bit later I remembered a discussion on the English Wikiquote Village Pump which was started by a contributor who was active there a long time ago who apparently was looking for their own contributions. It turned out that the history of the contributions had disappeared when the page was deleted and then re-created by another contributor who's became, at least according to the View history, the "owner" of all the previous contributions. Here is the ENWQ-VP discussion: https://en.wikiquote.org/wiki/Wikiquote:Village_pump#Now_this_is_contrary_to_the_spirit_of_Wikipedia.
::I believe deletions of old pages that seem unimportant to new users of the English Wikversity may become problematic in the future. I know that at least one [[User:MathXplore|new admin]] has been added in the last couple of years, but I am not sure how many of the experienced admins are still active, so I don't know who makes deletion decisions here.. History is crucial to maintain when people are no longeraround.
::It would be nice for the ENWV-community to understand how and what files/contributions are deleted.
::note: @[[User:Koavf|Koavf]] @[[User:Juandev|Juandev]], @[[User:OhanaUnited|OhanaUnited]] as recent participants in the Colloquium I wonder if you have any knowledge to contribute?
::Thanks advance, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 16:20, 18 January 2025 (UTC)
:::This project is generally pretty policy-lite, so deleting talk pages is probably ad hoc and left to best judgement. I have personally deleted one content page here but kept the talk page to document why it was deleted (this is common on en.wikt). —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:47, 18 January 2025 (UTC)
::::I was looking up some old history (2002) on the English Wikipedia associated with a particular user (Roadrunner) and happened to see a talk-page that was deleted in 2021 that this user had contributed content to:
::::https://en.wikipedia.org/wiki/Talk%3AImmediate_Action_Unit
::::This page is no longer public as a result of:
::::https://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Immediate_Action_Unit
::::So it appears that on the English Wikipedia talkpages were still being deleted along with their associated page as recently as 2021, I think? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 19:52, 31 January 2025 (UTC)
::: Please read [[Wikiversity:Deletions]] (especially [[WV:CSD]]) for the deletion of (talk) pages. No.8 of [[WV:CSD]] is specific for talk pages. [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 23:09, 18 January 2025 (UTC)
::::@[[User:MathXplore|MathXplore]], I think @[[User:Ottawahitech|Ottawahitech]] is referring to user talk pages (correct me if I'm wrong). Do we have any policies related to this? [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 08:02, 19 January 2025 (UTC)
::::: [[Wikiversity:Deletions]] (including [[WV:CSD]]) apply for all namespaces. Therefore, the same rule will be applied to user talk pages. [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:59, 19 January 2025 (UTC)
::::::@[[User:MathXplore|MathXplore]], thanks for clarifying. [[User:RockTransport|''Rock Transport'']] 😊 ([[User_talk:RockTransport|Talk page]]) 17:28, 19 January 2025 (UTC)
:::@[[User:Koavf|Koavf]], Thanks for this important tid-bit : {{green|I have personally deleted one content page here but kept the talk page to document why it was deleted (this is common on en.wikt).}}
:::This is a great habit IMIO. Do you happen to know if other WV-admins know how to not delete a talk-page when they delete its counterpart? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:05, 26 January 2025 (UTC)
::::I don't know that they do, but it's a fairly simple process when you're deleting pages. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 22:26, 26 January 2025 (UTC)
== Research Guidelines for the new Wiki of Government Efficiency ==
[[User:Jaredscribe/Department_of_Government_Efficiency]]
Before I move this original research project to mainspace, I invite a colloquy on my proposed
[[User:Jaredscribe/Department_of_Government_Efficiency#Research_Guidelines_and_Scholarly_Ethics|Research_Guidelines_and_Scholarly_Ethics]], and will entertain suggested improvements.
All may constructively contribute; those who do so competently, are invited to edit after they declare and disclose.
[[User_talk:Jaredscribe/Department_of_Government_Efficiency#Declare_your_Interests_and_Disclose_Potential_Conflicts]]
Thanks in advance for your consideration and informed opinions on how to make this work. [[User:Jaredscribe|Jaredscribe]] ([[User talk:Jaredscribe|discuss]] • [[Special:Contributions/Jaredscribe|contribs]]) 07:05, 20 January 2025 (UTC)
== Mentors ==
With respect to [https://en.wikiversity.org/w/index.php?title=User_talk%3AUsername142857&diff=2692853&oldid=2667985 this], may I return, and if so, could I get a mentor? [[User:Username142857|Username142857]] ([[User talk:Username142857|discuss]] • [[Special:Contributions/Username142857|contribs]]) 17:15, 20 January 2025 (UTC)
:Hi @[[User:Username142857|Username142857]]: I am not familiar with the term "mentors" on WV. What did you have in mind? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 20:22, 22 January 2025 (UTC)
::@[[User:Ottawahitech|Ottawahitech]], I believe he means getting a mentor to help him with his 'return' on Wikiversity. Please correct me if I'm wrong however @[[User:Username142857|Username142857]]. [[User:RailwayEnthusiast2025|''RailwayEnthusiast2025'']] 😊 ([[User_talk:RailwayEnthusiast2025|Talk page]]) 18:57, 23 January 2025 (UTC)
::'Mentors' are usually used to describe people on Wikiversity who mentor people for curatorship, custodianship etc. I think in this context, he might be trying to get a mentor to help him on Wikiversity. [[User:RailwayEnthusiast2025|<span style="color:green;">'''''RailwayEnthusiast2025'''''</span>]] ([[User talk:RailwayEnthusiast2025|talk page]] - [[Special:Contributions/RailwayEnthusiast2025|contribs]]) 20:46, 24 January 2025 (UTC)
:::To clarify, other people have stated that I should probably leave for a while, and I'm wondering if it's safe for me to return [[User:Username142857|Username142857]] ([[User talk:Username142857|discuss]] • [[Special:Contributions/Username142857|contribs]]) 05:51, 9 February 2025 (UTC)
::::@[[User:Username142857|Username142857]]: I think you should return whenever you feel like it, honestly. [[User:Contributor 118,784|<b style="color:#070">Contributor</b><sup style="color:#707">118,784</sup>]] [[User talk:Contributor 118,784|<span style="color:#00F">''Let's talk''</span>]] 12:19, 10 February 2025 (UTC)
== Universal Code of Conduct annual review: provide your comments on the UCoC and Enforcement Guidelines ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}.
I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 3 February 2025. This is the first step of several to be taken for the annual review.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]].
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 01:12, 24 January 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 -->
:Thanks for the link. I will have a look at it later. [[User:RailwayEnthusiast2025|<span style="color:green;">'''RailwayEnthusiast2025'''</span>]] ([[User talk:RailwayEnthusiast2025|talk page]]|[[Special:Contributions/RailwayEnthusiast2025|contribs]]) 08:49, 24 January 2025 (UTC)
== Subscribing to this talk-page ==
Is anyone here curious to find out what is the best method of subscribing to discussions here? Until today I did not even know one could subscribe to all new topics by clicking on ''Subscribe'' (the second ''Action'' right after ''Move''). I will have to see if indeed I am automatically subscribed to this new thread that I am hoping to start as soon as I hit the ''Add topic'' blue button at the bottom right hand corner.
So far I have had to resort to clicking ''Subscribe'' individually for each topic when I wanted to receive a notification for any new replies, but unfortunately after some items I was subscribed to have been archived on January 30, I received a message telling me I am no longer subscribed. I guess I would have to look for any updates that took place before the archive in the archive itself?
Am I making sense at all? I have managed to confuse myself, LOL. [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 17:11, 30 January 2025 (UTC)
:You are not subscribed to threads once they are removed from a page (e.g. by archiving). The easiest way to subscribe is by clicking on the "Subscribe" button with the bell next to it that renders near the thread's title. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:44, 30 January 2025 (UTC)
== A club for Wikiversity ==
Hello there,
I would like to start a club for Wikiversity, which would be a part of outreach. Wikiversity is one of the smallest Wikimedia projects and I enjoy contributing here. How could you help me in creating a club for this?
Yours sincerely,
[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 17:51, 31 January 2025 (UTC)
:There is a formal process for this at [[:m:Wikimedia user groups]]. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 18:18, 31 January 2025 (UTC)
::I meant like a club at an organization, school etc. Not a user group in a town or a city. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 18:31, 31 January 2025 (UTC)
:::I wanted to do this, because I'm active here, but I don't know. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 19:59, 12 February 2025 (UTC)
::::Dear @[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]], If you could contact any established user group in your locality. They could provide support to start a wiki club. [[User:511KeV|511KeV]] ([[User talk:511KeV|discuss]] • [[Special:Contributions/511KeV|contribs]]) 04:41, 28 March 2025 (UTC)
:::::Dear @[[User:511KeV|511KeV]], As said in my previous message, I wish to start a club at an organization, school etc. I wish to start a small club like this, not a user group in a town/city. I don't think you understand what I'm trying to say. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 16:23, 28 March 2025 (UTC)
::::::@@[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] Forming a non-affiliated club is a straightforward process. Gather a group of interested individuals and create a simple page on Meta-Wiki outlining the club’s purpose and how others can join and start editing. If your club focuses on a specific theme, such as medicine or the arts, you can mention it on the page.
::::::However, if you intend to establish a university- or school-affiliated club, you should seek permission from the institution. Start by submitting a formal application to the relevant authority at your college or university. [[User:511KeV|511KeV]] ([[User talk:511KeV|discuss]] • [[Special:Contributions/511KeV|contribs]]) 13:26, 29 March 2025 (UTC)
:::::::The latter is what I intend to do, and thanks for the help. I will start working on it soon. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 14:23, 29 March 2025 (UTC)
== Global ban proposal for Shāntián Tàiláng ==
Hello. This is to notify the community that there is an ongoing global ban proposal for [[species:User:Shāntián_Tàiláng|User:Shāntián Tàiláng]] who has been active on this wiki. You are invited to participate at [[metawiki:Requests_for_comment/Global_ban_for_Shāntián_Tàiláng|m:Requests for comment/Global ban for Shāntián Tàiláng]]. [[User:Wüstenspringmaus|Wüstenspringmaus]] ([[User talk:Wüstenspringmaus|discuss]] • [[Special:Contributions/Wüstenspringmaus|contribs]]) 12:50, 2 February 2025 (UTC)
:Hi @[[User:Wüstenspringmaus|Wüstenspringmaus]], Looks like the RFC you started in an effort to globally ban [[User:Shāntián Tàiláng]] has still not concluded. Forgive me, but I am indef-blocked on META so cannot ask there:
:* Is there no time limit on such nominations?
:* I am not familiar with the subject of this ban nomination, but I think there might be some unsupported allegations against them, such as harassment which is a serious issue. If I'm wrong please forgive me, I did spend a lot of time plowing through this lengthy page.
:* Many of us prefer to spend more of our time adding information to the wiki-projects that we are involved in and less to endless discussions. The Nomination page on META is now '''43,962 bytes long''' and growing, and will require any new participant spend a great deal of unproductive time to come up to speed.
:Is it expectedad that the only people who Support or Oppose your nomination be personally familiar with the User in question? Cheers, [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 23:43, 16 February 2025 (UTC)
== Reminder: first part of the annual UCoC review closes soon ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}.
This is a reminder that the first phase of the annual review period for the Universal Code of Conduct and Enforcement Guidelines will be closing soon. You can make suggestions for changes through [[d:Q614092|the end of day]], 3 February 2025. This is the first step of several to be taken for the annual review.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. After review of the feedback, proposals for updated text will be published on Meta in March for another round of community review.
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 00:49, 3 February 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28198931 -->
== Self-deleting pages that I nominated for deletion myself ==
In 2024, I nominated multiple pages for deletion via [[:Template:Proposed deletion]] (see also [[Special:WhatLinksHere/Template:Proposed deletion]]). The three-month protective period for most of them now expired.
Example pages: [[Astronomy outline]], [[VELS mathematics]], [[Particle mechanics]].
It would be ideal if the deleting person would be different from the nominating person. However, no one seems to be interested in deleting these pages.
Should I feel free to delete the pages I nominated myself? I think it could be okay, but I can also imagine someone being stringent about these matters and requiring the four-eye principle. One rationale for allowing deleting myself is that the English Wikiversity has only few active administrators and therefore, the four-eye principle would create too much of delay and overhead; on a more admin-populated project, the four-eye principle is more workable. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 06:08, 16 February 2025 (UTC)
:OK I'll bite :-)
:Looks like enwv has a different ''Proposed deletion'' notice than other wiki-projects. One thing I noticed immediately is that there is no reason or explanation required for the deletion proposal.
:I understand that all a deletion will accomplish is to remove those articles from public view. They will still continue to exist, but only admins will see them. May I ask @[[User:Dan Polansky|Dan Polansky]], why do you believe these 3 articles should be deleted? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|discuss]] • [[Special:Contributions/Ottawahitech|contribs]]) 23:08, 16 February 2025 (UTC)
:: I always provide a reason for deletion. And thus, e.g. [[Astronomy outline]] states: "The Nominator gave the following reason for their nomination:", "too low quality to serve as a learning resource; most links are redlinks; no further reading". --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 09:18, 17 February 2025 (UTC)
: I went ahead and deleted the three listed pages. I will wait a little longer before I proceed further. Most of the usual admins do not seem to be around, though, so the absence of opposition does not tell us much. And thus, I am proceeding at risk, and undo is possible by an admin or quasi-admin. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 07:41, 24 February 2025 (UTC)
:@[[User:Dan Polansky|Dan Polansky]] You proposed deletion back in October. Yes, it's fine if you are now the one to delete it. Often there is only one user at a time interested in cleaning up Wikiversity. That person does it until they choose not to. Then after a while, someone else steps up. I cleaned up my own proposed deletions for years with very few complaints. If someone wants to object, they need to be willing to speak up and review your proposed deletions. -- [[User:Dave Braunschweig|Dave Braunschweig]] ([[User talk:Dave Braunschweig|discuss]] • [[Special:Contributions/Dave Braunschweig|contribs]]) 00:51, 26 February 2025 (UTC)
:: Thank you. I went ahead and quasi-deleted 3 more pages, this time by moving them to user space (since I could find the main creator). I will make more deletions or quasi-deletions later. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 05:47, 26 February 2025 (UTC)
== Upcoming Language Community Meeting (Feb 28th, 14:00 UTC) and Newsletter ==
<section begin="message"/>
Hello everyone!
[[File:WP20Symbols WIKI INCUBATOR.svg|right|frameless|150x150px|alt=An image symbolising multiple languages]]
We’re excited to announce that the next '''Language Community Meeting''' is happening soon, '''February 28th at 14:00 UTC'''! If you’d like to join, simply sign up on the '''[[mw:Wikimedia_Language_and_Product_Localization/Community_meetings#28_February_2025|wiki page]]'''.
This is a participant-driven meeting where we share updates on language-related projects, discuss technical challenges in language wikis, and collaborate on solutions. In our last meeting, we covered topics like developing language keyboards, creating the Moore Wikipedia, and updates from the language support track at Wiki Indaba.
'''Got a topic to share?''' Whether it’s a technical update from your project, a challenge you need help with, or a request for interpretation support, we’d love to hear from you! Feel free to '''reply to this message''' or add agenda items to the document '''[[etherpad:p/language-community-meeting-feb-2025|here]]'''.
Also, we wanted to highlight that the sixth edition of the Language & Internationalization newsletter (January 2025) is available here: [[:mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2025/January|Wikimedia Language and Product Localization/Newsletter/2025/January]]. This newsletter provides updates from the October–December 2024 quarter on new feature development, improvements in various language-related technical projects and support efforts, details about community meetings, and ideas for contributing to projects. To stay updated, you can subscribe to the newsletter on its wiki page: [[:mw:Wikimedia Language and Product Localization/Newsletter|Wikimedia Language and Product Localization/Newsletter]].
We look forward to your ideas and participation at the language community meeting, see you there!
<section end="message"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 08:29, 22 February 2025 (UTC)
<!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28217779 -->
== Replicate [[c:Template:Imagestack]] ==
I find this feature on Commons quite practical, and would like to use it on Wikiversity. But just copying the content to {{tl|Imagestack}} is not enough. The example on {{tl|Imagestack/sandbox}} remains static. Does someone know how to implement the JavaScript? [[User:Watchduck|Watchduck]] <small>([[User talk:Watchduck|quack]])</small> 18:31, 26 February 2025 (UTC)
:I don't know how to implement the JavaScript here. I haven't used the Imagestack feature before. —[[User:RailwayEnthusiast2025|RailwayEnthusiast2025]] ([[User talk:RailwayEnthusiast2025|Talk page]] - [[Special:Contributions|Contributions]]) 21:11, 20 March 2025 (UTC)
== Universal Code of Conduct annual review: proposed changes are available for comment ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}.
I am writing to you to let you know that [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|proposed changes]] to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct (UCoC) Enforcement Guidelines]] and [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) Charter]] are open for review. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|You can provide feedback on suggested changes]]''' through the [[d:Q614092|end of day]] on Tuesday, 18 March 2025. This is the second step in the annual review process, the final step will be community voting on the proposed changes.
[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find relevant links about the process on the UCoC annual review page on Meta]].
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] 18:52, 7 March 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28307738 -->
== Your wiki will be in read-only soon ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster.
All traffic will switch on '''{{#time:j xg|2025-03-19|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2025-03-19T14:00|en}} {{#time:H:i e|2025-03-19T14:00}}]'''.
Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future.
A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation.
'''You will be able to read, but not edit, all wikis for a short period of time.'''
*You will not be able to edit for up to an hour on {{#time:l j xg Y|2025-03-19|en}}.
*If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case.
''Other effects'':
*Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped.
* We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards.
* [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes.
This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule.
'''Please share this information with your community.'''</div><section end="server-switch"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:14, 14 March 2025 (UTC)
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=28307742 -->
== Wikidata and Sister Projects: an online event ==
Hello everyone, I’m writing to announce an upcoming event called [[wikidata:Event:Wikidata and Sister Projects|'''Wikidata and Sister Projects''']] that will be a mini online conference to highlight the different ways Wikidata can be connected and integrated with the other WM projects.
We are currently looking for session ideas and speakers for our program and wanted to reach out in case there were any editors here that might have a cool idea for a session proposal. Sessions can be found on the [[wikidata:Event talk:Wikidata and Sister Projects|'''event discussion page''']].
As previously mentioned, we would like to showcase the relationship between Wikibooks and Wikidata, such as the storing of metadata and sitelinking between books and their respective Wikidata items. Do you have an idea for a session? We'd love to hear about it!
The event is scheduled between '''May 29 - June 1st, 2025'''. If you have any questions about the event, would like more information or have a session idea to propose, please feel free to get in touch by replying to this post or writing on the event page or on my [[v:User_talk:Danny_Benjafield_(WMDE)|talk page]]. Thanks for reading, - [[wikidata:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[wikidata:User talk:Danny Benjafield (WMDE)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 07:48, 1 April 2025 (UTC)
== Final proposed modifications to the Universal Code of Conduct Enforcement Guidelines and U4C Charter now posted ==
<div lang="en" dir="ltr" class="mw-content-ltr">
The proposed modifications to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct Enforcement Guidelines]] and the U4C Charter [[m:Universal_Code_of_Conduct/Annual_review/2025/Proposed_Changes|are now on Meta-wiki for community notice]] in advance of the voting period. This final draft was developed from the previous two rounds of community review. Community members will be able to vote on these modifications starting on 17 April 2025. The vote will close on 1 May 2025, and results will be announced no later than 12 May 2025. The U4C election period, starting with a call for candidates, will open immediately following the announcement of the review results. More information will be posted on [[m:Special:MyLanguage//Universal_Code_of_Conduct/Coordinating_Committee/Election|the wiki page for the election]] soon.
Please be advised that this process will require more messages to be sent here over the next two months.
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 02:05, 4 April 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 -->
== Wikidata and Sister Projects: An online community event ==
''(Apologies for posting in English)''
Hello everyone, I am excited to share news of an upcoming online event called '''[[d:Event:Wikidata_and_Sister_Projects|Wikidata and Sister Projects]]''' celebrating the different ways Wikidata can be used to support or enhance with another Wikimedia project. The event takes place over 4 days between '''May 29 - June 1st, 2025'''.
We would like to invite speakers to present at this community event, to hear success stories, challenges, showcase tools or projects you may be working on, where Wikidata has been involved in Wikipedia, Commons, WikiSource and all other WM projects.
If you are interested in attending, please [[d:Special:RegisterForEvent/1291|register here]].
If you would like to speak at the event, please fill out this Session Proposal template on the [[d:Event_talk:Wikidata_and_Sister_Projects|event talk page]], where you can also ask any questions you may have.
I hope to see you at the event, in the audience or as a speaker, - [[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 09:18, 11 April 2025 (UTC)
<!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Send_List&oldid=28525705 -->
== Vote now on the revised UCoC Enforcement Guidelines and U4C Charter ==
<div lang="en" dir="ltr" class="mw-content-ltr">
The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines ("UCoC EG") and the UCoC's Coordinating Committee Charter is open now through the end of 1 May (UTC) ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/2025/Voter_information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki.
The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review of the EG and Charter was planned and implemented by the U4C. Further information will be provided in the coming months about the review of the UCoC itself. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]].
Please share this message with members of your community so they can participate as well.
In cooperation with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 00:35, 17 April 2025 (UTC)
</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 -->
== FYI: Can Citizen Science Be Trusted? New Study of Birds Shows It Can ==
https://www.ucdavis.edu/news/can-citizen-science-be-trusted-new-study-birds-shows-it-can —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 01:08, 23 April 2025 (UTC)
== Vote on proposed modifications to the UCoC Enforcement Guidelines and U4C Charter ==
<section begin="announcement-content" />
The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines and U4C Charter closes on 1 May 2025 at 23:59 UTC ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025/Voter information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki.
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]].
Please share this message with members of your community in your language, as appropriate, so they can participate as well.
In cooperation with the U4C -- <section end="announcement-content" />
<div lang="en" dir="ltr" class="mw-content-ltr">
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 03:41, 29 April 2025 (UTC)</div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== Question Centre ==
I have a question:
'''1.''''Is it possible to change your username? Or is it permament?
''Antworte zu meinem Kommentar, und Ich werde zu dir abonnieren. ''
[[User:Kumpa-pasión|Kumpa-pasión]] ([[User talk:Kumpa-pasión|discuss]] • [[Special:Contributions/Kumpa-pasión|contribs]]) 15:18, 30 April 2025 (UTC)
:Hello {{ping|Kumpa-pasión}} To change your username, you can go to [https://meta.wikimedia.org/wiki/Special:GlobalRenameRequest Special:GlobalRenameRequest]. —[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 16:42, 2 May 2025 (UTC)
== Names of pages I am creating, one man's look at X ==
I am creating pages like [[One man's look at LibreOffice]], but I am increasingly dissatisfied with this naming scheme. It just means that "One man's look at X" is nothing but "Dan Polansky's look at X"; what is so special about Dan Polansky that he is the "one man", which other people are not? I prefer "X (Dan Polansky)", but that was previously rejected (I should find the discussion, but I am too lazy now). What was not rejected is "X/Dan Polansky" (as in [[COVID-19/Dan Polansky]]), but I find it greatly suboptimal: there is nothing in that syntax that suggests that "Dan Polansky" is an author name; compare a possible "Philosophy/Aristotle", which would be ''about'' Aristotle and not ''by'' Aristotle.
Perhaps we can have a discussion/conversation about alternative proposals and what makes them preferable and dispreferable, desirable and undesirable? --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:07, 1 May 2025 (UTC)
: If a main space page is meant only for one user's view, then perhaps that page should instead be located in that user's space. -- [[User:Jtneill|Jtneill]] - <small>[[User talk:Jtneill|Talk]] - [[Special:Contributions/Jtneill|c]]</small> 05:12, 17 May 2025 (UTC)
:: That would not work: pages in user space are not Google search indexed, from what I understand. One's spending effort to write and publish an article and then having it ignored by readers since not found via Google Search is not rewarding; I do not see why people would like to do it, and they apparently don't. Moreover, since other editors can comment on the article on the talk page, it is vital that the author does not have the right to have the article deleted on a whim; an article should be deleted only in well justified rare cases (ethical breach, etc.).
:: I think that a page being author-specific should be the usual case, not the rare case, in Wikiversity. It is the case with Wikijournal articles. It also seems to be the case with the Motivation and Emotion pages, e.g. as listed in [[Motivation and emotion/Book/2024]]; and thus, e.g. [[Motivation and emotion/Book/2024/Abusive supervision]] has TJDuus as the main author as per the assignment and revision history (there are auxiliary editors, but the author seems to maintain editorial control?)
:: Since Wikiversity pages are not organized by the principle of being encyclopedic and by avoidance of original research, I do not see how the free-for-all editing of Wikipedia could possibly work here.
:: Some of the best materials I have seen in the English Wikiversity either have a single author or single main author. --[[User:Dan Polansky|Dan Polansky]] ([[User talk:Dan Polansky|discuss]] • [[Special:Contributions/Dan Polansky|contribs]]) 08:10, 17 May 2025 (UTC)
== We will be enabling the new Charts extension on your wiki soon! ==
''(Apologies for posting in English)''
Hi all! We have good news to share regarding the ongoing problem with graphs and charts affecting all wikis that use them.
As you probably know, the [[:mw:Special:MyLanguage/Extension:Graph|old Graph extension]] was disabled in 2023 [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/EWL4AGBEZEDMNNFTM4FRD4MHOU3CVESO/|due to security reasons]]. We’ve worked in these two years to find a solution that could replace the old extension, and provide a safer and better solution to users who wanted to showcase graphs and charts in their articles. We therefore developed the [[:mw:Special:MyLanguage/Extension:Chart|Charts extension]], which will be replacing the old Graph extension and potentially also the [[:mw:Extension:EasyTimeline|EasyTimeline extension]].
After successfully deploying the extension on Italian, Swedish, and Hebrew Wikipedia, as well as on MediaWiki.org, as part of a pilot phase, we are now happy to announce that we are moving forward with the next phase of deployment, which will also include your wiki.
The deployment will happen in batches, and will start from '''May 6'''. Please, consult [[:mw:Special:MyLanguage/Extension:Chart/Project#Deployment Timeline|our page on MediaWiki.org]] to discover when the new Charts extension will be deployed on your wiki. You can also [[:mw:Special:MyLanguage/Extension:Chart|consult the documentation]] about the extension on MediaWiki.org.
If you have questions, need clarifications, or just want to express your opinion about it, please refer to the [[:mw:Special:MyLanguage/Extension_talk:Chart/Project|project’s talk page on Mediawiki.org]], or ping me directly under this thread. If you encounter issues using Charts once it gets enabled on your wiki, please report it on the [[:mw:Extension_talk:Chart/Project|talk page]] or at [[phab:tag/charts|Phabricator]].
Thank you in advance! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:07, 6 May 2025 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28663781 -->
== Progressive translations ==
If you gradually translate more and more words in a text it's called "progressive translation" apparently. If we were doing, say, English to Hungarian it would look like "I took the ''vonat'' (train) to Budapest" and later on "I saw the river from the ''vonat''". I want to be able to read novels and pick up vocabulary in this way, as well as make them (or rather get an AI to make them) and share them with other language learners.
It's education so I thought you might be interested in hosting them, and maybe some people here would be interested in helping out. Thanks for any feedback [[User:Progressive translator|Progressive translator]] ([[User talk:Progressive translator|discuss]] • [[Special:Contributions/Progressive translator|contribs]]) 16:54, 6 May 2025 (UTC)
== Call for Candidates for the Universal Code of Conduct Coordinating Committee (U4C) ==
<section begin="announcement-content" />
The results of voting on the Universal Code of Conduct Enforcement Guidelines and Universal Code of Conduct Coordinating Committee (U4C) Charter is [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025#Results|available on Meta-wiki]].
You may now [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025/Candidates|submit your candidacy to serve on the U4C]] through 29 May 2025 at 12:00 UTC. Information about [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025|eligibility, process, and the timeline are on Meta-wiki]]. Voting on candidates will open on 1 June 2025 and run for two weeks, closing on 15 June 2025 at 12:00 UTC.
If you have any questions, you can ask on [[m:Talk:Universal Code of Conduct/Coordinating Committee/Election/2025|the discussion page for the election]]. -- in cooperation with the U4C, </div><section end="announcement-content" />
<bdi lang="en" dir="ltr">[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|discuss]])</bdi> 22:08, 15 May 2025 (UTC)
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== RfC ongoing regarding Abstract Wikipedia (and your project) ==
<div lang="en" dir="ltr" class="mw-content-ltr">
''(Apologies for posting in English, if this is not your first language)''
Hello all! We opened a discussion on Meta about a very delicate issue for the development of [[:m:Special:MyLanguage/Abstract Wikipedia|Abstract Wikipedia]]: where to store the abstract content that will be developed through functions from Wikifunctions and data from Wikidata. Since some of the hypothesis involve your project, we wanted to hear your thoughts too.
We want to make the decision process clear: we do not yet know which option we want to use, which is why we are consulting here. We will take the arguments from the Wikimedia communities into account, and we want to consult with the different communities and hear arguments that will help us with the decision. The decision will be made and communicated after the consultation period by the Foundation.
You can read the various hypothesis and have your say at [[:m:Abstract Wikipedia/Location of Abstract Content|Abstract Wikipedia/Location of Abstract Content]]. Thank you in advance! -- [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 15:27, 22 May 2025 (UTC)
</div>
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28768453 -->
== Wikimedia Foundation Board of Trustees 2025 Selection & Call for Questions ==
<section begin="announcement-content" />
:''[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]''
Dear all,
This year, the term of 2 (two) Community- and Affiliate-selected Trustees on the Wikimedia Foundation Board of Trustees will come to an end [1]. The Board invites the whole movement to participate in this year’s selection process and vote to fill those seats.
The Elections Committee will oversee this process with support from Foundation staff [2]. The Governance Committee, composed of trustees who are not candidates in the 2025 community-and-affiliate-selected trustee selection process (Raju Narisetti, Shani Evenstein Sigalov, Lorenzo Losa, Kathy Collins, Victoria Doronina and Esra’a Al Shafei) [3], is tasked with providing Board oversight for the 2025 trustee selection process and for keeping the Board informed. More details on the roles of the Elections Committee, Board, and staff are here [4].
Here are the key planned dates:
* May 22 – June 5: Announcement (this communication) and call for questions period [6]
* June 17 – July 1, 2025: Call for candidates
* July 2025: If needed, affiliates vote to shortlist candidates if more than 10 apply [5]
* August 2025: Campaign period
* August – September 2025: Two-week community voting period
* October – November 2025: Background check of selected candidates
* Board’s Meeting in December 2025: New trustees seated
Learn more about the 2025 selection process - including the detailed timeline, the candidacy process, the campaign rules, and the voter eligibility criteria - on this Meta-wiki page [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025|[link]]].
'''Call for Questions'''
In each selection process, the community has the opportunity to submit questions for the Board of Trustees candidates to answer. The Election Committee selects questions from the list developed by the community for the candidates to answer. Candidates must answer all the required questions in the application in order to be eligible; otherwise their application will be disqualified. This year, the Election Committee will select 5 questions for the candidates to answer. The selected questions may be a combination of what’s been submitted from the community, if they’re alike or related. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025/Questions_for_candidates|[link]]]
'''Election Volunteers'''
Another way to be involved with the 2025 selection process is to be an Election Volunteer. Election Volunteers are a bridge between the Elections Committee and their respective community. They help ensure their community is represented and mobilize them to vote. Learn more about the program and how to join on this Meta-wiki page [[m:Wikimedia_Foundation_elections/2025/Election_volunteers|[link].]]
Thank you!
[1] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2022/Results
[2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter
[3] https://foundation.wikimedia.org/wiki/Resolution:Committee_Membership,_December_2024
[4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles
[5] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/FAQ
[6] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/Questions_for_candidates
Best regards,
Victoria Doronina
Board Liaison to the Elections Committee
Governance Committee<section end="announcement-content" />
[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 03:08, 28 May 2025 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 -->
== Vote now in the 2025 U4C Election ==
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Int:Please-translate}}
Eligible voters are asked to participate in the 2025 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2025|2025 Election information page]]. The vote closes on 17 June 2025 at [https://zonestamp.toolforge.org/1750161600 12:00 UTC].
Please vote if your account is eligible. Results will be available by 1 July 2025. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 23:01, 13 June 2025 (UTC) </div>
<!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28848819 -->
== Geometric growth in views ==
Wikiversity seems to be experiencing an [https://stats.wikimedia.org/#/en.wikiversity.org/reading/total-page-views/normal|bar|all|~total|monthly unprecedented amount of traffic], literally doubling in May '25 with almost 60 million monthly views. (Note practically no growth from 2016-24. From a [[Wikiversity:Colloquium/archives/December_2024#An_unexplained_spurt_of_Wikiversity_page_views|previous thread's link]], this is only partially reflected on the [https://pageviews.wmcloud.org/siteviews/?platform=all-access&source=pageviews&agent=user&range=this-year&sites=en.wikiversity.org|en.wikibooks.org|en.wikiquote.org|en.wikisource.org Pageviews widget], except for Wikisource somewhat.)
I haven't seen any corresponding unprecedented [https://stats.wikimedia.org/#/en.wikiversity.org/contributing/active-editors/normal%7Cline%7Call%7C(page_type)~content*non-content%7Cmonthly activity] however. Anyone know what's up? LLM crawling maybe? [[User:Tule-hog|Tule-hog]] ([[User talk:Tule-hog|discuss]] • [[Special:Contributions/Tule-hog|contribs]]) 21:56, 15 June 2025 (UTC)
:I can only assume that it's AI, yes. —[[User:Koavf|Justin (<span style="color:grey">ko'''a'''vf</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 00:17, 18 June 2025 (UTC)
== Wikimedia Foundation Board of Trustees 2025 - Call for Candidates ==
<section begin="announcement-content" />
:''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Call for candidates|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Call for candidates}}&language=&action=page&filter= {{int:please-translate}}]</div>
Hello all,
The [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|call for candidates for the 2025 Wikimedia Foundation Board of Trustees selection is now open]] from June 17, 2025 – July 2, 2025 at 11:59 UTC [1]. The Board of Trustees oversees the Wikimedia Foundation's work, and each Trustee serves a three-year term [2]. This is a volunteer position.
This year, the Wikimedia community will vote in late August through September 2025 to fill two (2) seats on the Foundation Board. Could you – or someone you know – be a good fit to join the Wikimedia Foundation's Board of Trustees? [3]
Learn more about what it takes to stand for these leadership positions and how to submit your candidacy on [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidate application|this Meta-wiki page]] or encourage someone else to run in this year's election.
Best regards,
Abhishek Suryawanshi<br />
Chair of the Elections Committee
On behalf of the Elections Committee and Governance Committee
[1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Call_for_candidates
[2] https://foundation.wikimedia.org/wiki/Legal:Bylaws#(B)_Term.
[3] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Resources_for_candidates<section end="announcement-content" />
[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|discuss]] • [[Special:Contributions/MediaWiki message delivery|contribs]]) 17:44, 17 June 2025 (UTC)
<!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28866958 -->
lebcwkvkrneb8aqza2e5manmylo87iw
User:Stevesuny
2
113474
2718895
2717923
2025-06-17T20:10:40Z
Stevesuny
294667
2718895
wikitext
text/x-wiki
Steve Schneider
Professor
SUNY Polytechnic Institute
User: Stevesuny
steve@sunypoly.edu
http://people.sunypoly.edu/~steve
==Wikiversity projects==
=== Summer 2025: [[AIXworkbench]] ===
=== Older: ===
# [[CourseMaterialsProject]]
# [[CourseMaterialsProject/InteractiveTexts|COM 375/IDT 575: Designing and Writing Interactive Texts (Spring 2024)]]
# [[CourseMaterialsProject/InformationTechnology Spring2024|IDT 507: Information Technology (Spring 2024)]]
# [[CourseMaterialsProject/Principles and Projects Course (Spring 2024)|IDT 553: Principles and Projects Course]]
# [[WikimediaCourse]] (Summer 2024)
# [[SUNY Wikimedia Project]]<br />
== Wikimedia Conference Presentation==
# [[wikiconference:Submissions:2023/Mid-semester_rookie_report:_Starting_a_wikiversity_project_&_teaching_a_class_with_wikiedu_assignments|Mid-semester rookie report: Starting a wikiversity project & teaching a class with wikiedu assignments]] to [[wikiconference:2023/Main_Page|WikiConference North America]]
== My Wikiversity Pages ==
{{Special:PrefixIndex/User:Stevesuny/}}
[[/sandbox/dmis/classes]]
9b65awdwjsfm4h79wdn1z6rew2c8k97
Understanding Arithmetic Circuits
0
139384
2718991
2718443
2025-06-18T11:35:58Z
Young1lim
21186
/* Adder */
2718991
wikitext
text/x-wiki
== Adder ==
* Binary Adder Architecture Exploration ( [[Media:Adder.20131113.pdf|pdf]] )
{| class="wikitable"
|-
! Adder type !! Overview !! Analysis !! VHDL Level Design !! CMOS Level Design
|-
| '''1. Ripple Carry Adder'''
|| [[Media:VLSI.Arith.1A.RCA.20250522.pdf|A]]||
|| [[Media:Adder.rca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.1D.RCA.CMOS.20211108.pdf|pdf]]
|-
| '''2. Carry Lookahead Adder'''
|| [[Media:VLSI.Arith.1.A.CLA.20250614.pdf|A]]||
|| [[Media:Adder.cla.20140313.pdf|pdf]]||
|-
| '''3. Carry Save Adder'''
|| [[Media:VLSI.Arith.1.A.CSave.20151209.pdf|A]]||
|| ||
|-
|| '''4. Carry Select Adder'''
|| [[Media:VLSI.Arith.1.A.CSelA.20191002.pdf|A]]||
|| ||
|-
|| '''5. Carry Skip Adder'''
|| [[Media:VLSI.Arith.5A.CSkip.20250405.pdf|A]]||
||
|| [[Media:VLSI.Arith.5D.CSkip.CMOS.20211108.pdf|pdf]]
|-
|| '''6. Carry Chain Adder'''
|| [[Media:VLSI.Arith.6A.CCA.20211109.pdf|A]]||
|| [[Media:VLSI.Arith.6C.CCA.VHDL.20211109.pdf|pdf]], [[Media:Adder.cca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.6D.CCA.CMOS.20211109.pdf|pdf]]
|-
|| '''7. Kogge-Stone Adder'''
|| [[Media:VLSI.Arith.1.A.KSA.20140315.pdf|A]]||
|| [[Media:Adder.ksa.20140409.pdf|pdf]]||
|-
|| '''8. Prefix Adder'''
|| [[Media:VLSI.Arith.1.A.PFA.20140314.pdf|A]]||
|| ||
|-
|| '''9.1 Variable Block Adder'''
|| [[Media:VLSI.Arith.1A.VBA.20221110.pdf|A]], [[Media:VLSI.Arith.1B.VBA.20230911.pdf|B]], [[Media:VLSI.Arith.1C.VBA.20240622.pdf|C]], [[Media:VLSI.Arith.1C.VBA.20250218.pdf|D]]||
|| ||
|-
|| '''9.2 Multi-Level Variable Block Adder'''
|| [[Media:VLSI.Arith.1.A.VBA-Multi.20221031.pdf|A]]||
|| ||
|}
</br>
=== Adder Architectures Suitable for FPGA ===
* FPGA Carry-Chain Adder ([[Media:VLSI.Arith.1.A.FPGA-CCA.20210421.pdf|pdf]])
* FPGA Carry Select Adder ([[Media:VLSI.Arith.1.B.FPGA-CarrySelect.20210522.pdf|pdf]])
* FPGA Variable Block Adder ([[Media:VLSI.Arith.1.C.FPGA-VariableBlock.20220125.pdf|pdf]])
* FPGA Carry Lookahead Adder ([[Media:VLSI.Arith.1.D.FPGA-CLookahead.20210304.pdf|pdf]])
* Carry-Skip Adder
</br>
== Barrel Shifter ==
* Barrel Shifter Architecture Exploration ([[Media:Bshift.20131105.pdf|bshfit.vhdl]], [[Media:Bshift.makefile.20131109.pdf|bshfit.makefile]])
</br>
'''Mux Based Barrel Shifter'''
* Analysis ([[Media:Arith.BShfiter.20151207.pdf|pdf]])
* Implementation
</br>
== Multiplier ==
=== Array Multipliers ===
* Analysis ([[Media:VLSI.Arith.1.A.Mult.20151209.pdf|pdf]])
</br>
=== Tree Mulltipliers ===
* Lattice Multiplication ([[Media:VLSI.Arith.LatticeMult.20170204.pdf|pdf]])
* Wallace Tree ([[Media:VLSI.Arith.WallaceTree.20170204.pdf|pdf]])
* Dadda Tree ([[Media:VLSI.Arith.DaddaTree.20170701.pdf|pdf]])
</br>
=== Booth Multipliers ===
* [[Media:RNS4.BoothEncode.20161005.pdf|Booth Encoding Note]]
* Booth Multiplier Note ([[Media:BoothMult.20160929.pdf|H1.pdf]])
</br>
== Divider ==
* Binary Divider ([[Media:VLSI.Arith.1.A.Divider.20131217.pdf|pdf]])</br>
</br>
</br>
go to [ [[Electrical_%26_Computer_Engineering_Studies]] ]
[[Category:Digital Circuit Design]]
[[Category:FPGA]]
fn4atkxxpqjiqk1v5gjl57m97f6uqnl
2718993
2718991
2025-06-18T11:37:03Z
Young1lim
21186
/* Adder */
2718993
wikitext
text/x-wiki
== Adder ==
* Binary Adder Architecture Exploration ( [[Media:Adder.20131113.pdf|pdf]] )
{| class="wikitable"
|-
! Adder type !! Overview !! Analysis !! VHDL Level Design !! CMOS Level Design
|-
| '''1. Ripple Carry Adder'''
|| [[Media:VLSI.Arith.1A.RCA.20250522.pdf|A]]||
|| [[Media:Adder.rca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.1D.RCA.CMOS.20211108.pdf|pdf]]
|-
| '''2. Carry Lookahead Adder'''
|| [[Media:VLSI.Arith.1.A.CLA.20250616.pdf|A]]||
|| [[Media:Adder.cla.20140313.pdf|pdf]]||
|-
| '''3. Carry Save Adder'''
|| [[Media:VLSI.Arith.1.A.CSave.20151209.pdf|A]]||
|| ||
|-
|| '''4. Carry Select Adder'''
|| [[Media:VLSI.Arith.1.A.CSelA.20191002.pdf|A]]||
|| ||
|-
|| '''5. Carry Skip Adder'''
|| [[Media:VLSI.Arith.5A.CSkip.20250405.pdf|A]]||
||
|| [[Media:VLSI.Arith.5D.CSkip.CMOS.20211108.pdf|pdf]]
|-
|| '''6. Carry Chain Adder'''
|| [[Media:VLSI.Arith.6A.CCA.20211109.pdf|A]]||
|| [[Media:VLSI.Arith.6C.CCA.VHDL.20211109.pdf|pdf]], [[Media:Adder.cca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.6D.CCA.CMOS.20211109.pdf|pdf]]
|-
|| '''7. Kogge-Stone Adder'''
|| [[Media:VLSI.Arith.1.A.KSA.20140315.pdf|A]]||
|| [[Media:Adder.ksa.20140409.pdf|pdf]]||
|-
|| '''8. Prefix Adder'''
|| [[Media:VLSI.Arith.1.A.PFA.20140314.pdf|A]]||
|| ||
|-
|| '''9.1 Variable Block Adder'''
|| [[Media:VLSI.Arith.1A.VBA.20221110.pdf|A]], [[Media:VLSI.Arith.1B.VBA.20230911.pdf|B]], [[Media:VLSI.Arith.1C.VBA.20240622.pdf|C]], [[Media:VLSI.Arith.1C.VBA.20250218.pdf|D]]||
|| ||
|-
|| '''9.2 Multi-Level Variable Block Adder'''
|| [[Media:VLSI.Arith.1.A.VBA-Multi.20221031.pdf|A]]||
|| ||
|}
</br>
=== Adder Architectures Suitable for FPGA ===
* FPGA Carry-Chain Adder ([[Media:VLSI.Arith.1.A.FPGA-CCA.20210421.pdf|pdf]])
* FPGA Carry Select Adder ([[Media:VLSI.Arith.1.B.FPGA-CarrySelect.20210522.pdf|pdf]])
* FPGA Variable Block Adder ([[Media:VLSI.Arith.1.C.FPGA-VariableBlock.20220125.pdf|pdf]])
* FPGA Carry Lookahead Adder ([[Media:VLSI.Arith.1.D.FPGA-CLookahead.20210304.pdf|pdf]])
* Carry-Skip Adder
</br>
== Barrel Shifter ==
* Barrel Shifter Architecture Exploration ([[Media:Bshift.20131105.pdf|bshfit.vhdl]], [[Media:Bshift.makefile.20131109.pdf|bshfit.makefile]])
</br>
'''Mux Based Barrel Shifter'''
* Analysis ([[Media:Arith.BShfiter.20151207.pdf|pdf]])
* Implementation
</br>
== Multiplier ==
=== Array Multipliers ===
* Analysis ([[Media:VLSI.Arith.1.A.Mult.20151209.pdf|pdf]])
</br>
=== Tree Mulltipliers ===
* Lattice Multiplication ([[Media:VLSI.Arith.LatticeMult.20170204.pdf|pdf]])
* Wallace Tree ([[Media:VLSI.Arith.WallaceTree.20170204.pdf|pdf]])
* Dadda Tree ([[Media:VLSI.Arith.DaddaTree.20170701.pdf|pdf]])
</br>
=== Booth Multipliers ===
* [[Media:RNS4.BoothEncode.20161005.pdf|Booth Encoding Note]]
* Booth Multiplier Note ([[Media:BoothMult.20160929.pdf|H1.pdf]])
</br>
== Divider ==
* Binary Divider ([[Media:VLSI.Arith.1.A.Divider.20131217.pdf|pdf]])</br>
</br>
</br>
go to [ [[Electrical_%26_Computer_Engineering_Studies]] ]
[[Category:Digital Circuit Design]]
[[Category:FPGA]]
khdhdlofw3waaw19g2dnmft5i8gxjo7
2718995
2718993
2025-06-18T11:37:56Z
Young1lim
21186
/* Adder */
2718995
wikitext
text/x-wiki
== Adder ==
* Binary Adder Architecture Exploration ( [[Media:Adder.20131113.pdf|pdf]] )
{| class="wikitable"
|-
! Adder type !! Overview !! Analysis !! VHDL Level Design !! CMOS Level Design
|-
| '''1. Ripple Carry Adder'''
|| [[Media:VLSI.Arith.1A.RCA.20250522.pdf|A]]||
|| [[Media:Adder.rca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.1D.RCA.CMOS.20211108.pdf|pdf]]
|-
| '''2. Carry Lookahead Adder'''
|| [[Media:VLSI.Arith.1.A.CLA.20250617.pdf|A]]||
|| [[Media:Adder.cla.20140313.pdf|pdf]]||
|-
| '''3. Carry Save Adder'''
|| [[Media:VLSI.Arith.1.A.CSave.20151209.pdf|A]]||
|| ||
|-
|| '''4. Carry Select Adder'''
|| [[Media:VLSI.Arith.1.A.CSelA.20191002.pdf|A]]||
|| ||
|-
|| '''5. Carry Skip Adder'''
|| [[Media:VLSI.Arith.5A.CSkip.20250405.pdf|A]]||
||
|| [[Media:VLSI.Arith.5D.CSkip.CMOS.20211108.pdf|pdf]]
|-
|| '''6. Carry Chain Adder'''
|| [[Media:VLSI.Arith.6A.CCA.20211109.pdf|A]]||
|| [[Media:VLSI.Arith.6C.CCA.VHDL.20211109.pdf|pdf]], [[Media:Adder.cca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.6D.CCA.CMOS.20211109.pdf|pdf]]
|-
|| '''7. Kogge-Stone Adder'''
|| [[Media:VLSI.Arith.1.A.KSA.20140315.pdf|A]]||
|| [[Media:Adder.ksa.20140409.pdf|pdf]]||
|-
|| '''8. Prefix Adder'''
|| [[Media:VLSI.Arith.1.A.PFA.20140314.pdf|A]]||
|| ||
|-
|| '''9.1 Variable Block Adder'''
|| [[Media:VLSI.Arith.1A.VBA.20221110.pdf|A]], [[Media:VLSI.Arith.1B.VBA.20230911.pdf|B]], [[Media:VLSI.Arith.1C.VBA.20240622.pdf|C]], [[Media:VLSI.Arith.1C.VBA.20250218.pdf|D]]||
|| ||
|-
|| '''9.2 Multi-Level Variable Block Adder'''
|| [[Media:VLSI.Arith.1.A.VBA-Multi.20221031.pdf|A]]||
|| ||
|}
</br>
=== Adder Architectures Suitable for FPGA ===
* FPGA Carry-Chain Adder ([[Media:VLSI.Arith.1.A.FPGA-CCA.20210421.pdf|pdf]])
* FPGA Carry Select Adder ([[Media:VLSI.Arith.1.B.FPGA-CarrySelect.20210522.pdf|pdf]])
* FPGA Variable Block Adder ([[Media:VLSI.Arith.1.C.FPGA-VariableBlock.20220125.pdf|pdf]])
* FPGA Carry Lookahead Adder ([[Media:VLSI.Arith.1.D.FPGA-CLookahead.20210304.pdf|pdf]])
* Carry-Skip Adder
</br>
== Barrel Shifter ==
* Barrel Shifter Architecture Exploration ([[Media:Bshift.20131105.pdf|bshfit.vhdl]], [[Media:Bshift.makefile.20131109.pdf|bshfit.makefile]])
</br>
'''Mux Based Barrel Shifter'''
* Analysis ([[Media:Arith.BShfiter.20151207.pdf|pdf]])
* Implementation
</br>
== Multiplier ==
=== Array Multipliers ===
* Analysis ([[Media:VLSI.Arith.1.A.Mult.20151209.pdf|pdf]])
</br>
=== Tree Mulltipliers ===
* Lattice Multiplication ([[Media:VLSI.Arith.LatticeMult.20170204.pdf|pdf]])
* Wallace Tree ([[Media:VLSI.Arith.WallaceTree.20170204.pdf|pdf]])
* Dadda Tree ([[Media:VLSI.Arith.DaddaTree.20170701.pdf|pdf]])
</br>
=== Booth Multipliers ===
* [[Media:RNS4.BoothEncode.20161005.pdf|Booth Encoding Note]]
* Booth Multiplier Note ([[Media:BoothMult.20160929.pdf|H1.pdf]])
</br>
== Divider ==
* Binary Divider ([[Media:VLSI.Arith.1.A.Divider.20131217.pdf|pdf]])</br>
</br>
</br>
go to [ [[Electrical_%26_Computer_Engineering_Studies]] ]
[[Category:Digital Circuit Design]]
[[Category:FPGA]]
iseqd2v4qkowtcm8404n6fwcv247bsa
2718997
2718995
2025-06-18T11:39:00Z
Young1lim
21186
/* Adder */
2718997
wikitext
text/x-wiki
== Adder ==
* Binary Adder Architecture Exploration ( [[Media:Adder.20131113.pdf|pdf]] )
{| class="wikitable"
|-
! Adder type !! Overview !! Analysis !! VHDL Level Design !! CMOS Level Design
|-
| '''1. Ripple Carry Adder'''
|| [[Media:VLSI.Arith.1A.RCA.20250522.pdf|A]]||
|| [[Media:Adder.rca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.1D.RCA.CMOS.20211108.pdf|pdf]]
|-
| '''2. Carry Lookahead Adder'''
|| [[Media:VLSI.Arith.1.A.CLA.20250618.pdf|A]]||
|| [[Media:Adder.cla.20140313.pdf|pdf]]||
|-
| '''3. Carry Save Adder'''
|| [[Media:VLSI.Arith.1.A.CSave.20151209.pdf|A]]||
|| ||
|-
|| '''4. Carry Select Adder'''
|| [[Media:VLSI.Arith.1.A.CSelA.20191002.pdf|A]]||
|| ||
|-
|| '''5. Carry Skip Adder'''
|| [[Media:VLSI.Arith.5A.CSkip.20250405.pdf|A]]||
||
|| [[Media:VLSI.Arith.5D.CSkip.CMOS.20211108.pdf|pdf]]
|-
|| '''6. Carry Chain Adder'''
|| [[Media:VLSI.Arith.6A.CCA.20211109.pdf|A]]||
|| [[Media:VLSI.Arith.6C.CCA.VHDL.20211109.pdf|pdf]], [[Media:Adder.cca.20140313.pdf|pdf]]
|| [[Media:VLSI.Arith.6D.CCA.CMOS.20211109.pdf|pdf]]
|-
|| '''7. Kogge-Stone Adder'''
|| [[Media:VLSI.Arith.1.A.KSA.20140315.pdf|A]]||
|| [[Media:Adder.ksa.20140409.pdf|pdf]]||
|-
|| '''8. Prefix Adder'''
|| [[Media:VLSI.Arith.1.A.PFA.20140314.pdf|A]]||
|| ||
|-
|| '''9.1 Variable Block Adder'''
|| [[Media:VLSI.Arith.1A.VBA.20221110.pdf|A]], [[Media:VLSI.Arith.1B.VBA.20230911.pdf|B]], [[Media:VLSI.Arith.1C.VBA.20240622.pdf|C]], [[Media:VLSI.Arith.1C.VBA.20250218.pdf|D]]||
|| ||
|-
|| '''9.2 Multi-Level Variable Block Adder'''
|| [[Media:VLSI.Arith.1.A.VBA-Multi.20221031.pdf|A]]||
|| ||
|}
</br>
=== Adder Architectures Suitable for FPGA ===
* FPGA Carry-Chain Adder ([[Media:VLSI.Arith.1.A.FPGA-CCA.20210421.pdf|pdf]])
* FPGA Carry Select Adder ([[Media:VLSI.Arith.1.B.FPGA-CarrySelect.20210522.pdf|pdf]])
* FPGA Variable Block Adder ([[Media:VLSI.Arith.1.C.FPGA-VariableBlock.20220125.pdf|pdf]])
* FPGA Carry Lookahead Adder ([[Media:VLSI.Arith.1.D.FPGA-CLookahead.20210304.pdf|pdf]])
* Carry-Skip Adder
</br>
== Barrel Shifter ==
* Barrel Shifter Architecture Exploration ([[Media:Bshift.20131105.pdf|bshfit.vhdl]], [[Media:Bshift.makefile.20131109.pdf|bshfit.makefile]])
</br>
'''Mux Based Barrel Shifter'''
* Analysis ([[Media:Arith.BShfiter.20151207.pdf|pdf]])
* Implementation
</br>
== Multiplier ==
=== Array Multipliers ===
* Analysis ([[Media:VLSI.Arith.1.A.Mult.20151209.pdf|pdf]])
</br>
=== Tree Mulltipliers ===
* Lattice Multiplication ([[Media:VLSI.Arith.LatticeMult.20170204.pdf|pdf]])
* Wallace Tree ([[Media:VLSI.Arith.WallaceTree.20170204.pdf|pdf]])
* Dadda Tree ([[Media:VLSI.Arith.DaddaTree.20170701.pdf|pdf]])
</br>
=== Booth Multipliers ===
* [[Media:RNS4.BoothEncode.20161005.pdf|Booth Encoding Note]]
* Booth Multiplier Note ([[Media:BoothMult.20160929.pdf|H1.pdf]])
</br>
== Divider ==
* Binary Divider ([[Media:VLSI.Arith.1.A.Divider.20131217.pdf|pdf]])</br>
</br>
</br>
go to [ [[Electrical_%26_Computer_Engineering_Studies]] ]
[[Category:Digital Circuit Design]]
[[Category:FPGA]]
9eie5241740b7wfmd0fowlyqwedwz67
Wikiversity Law Reports
0
211352
2718955
2657879
2025-06-17T23:57:34Z
1.46.205.237
ระบบกรมหลวง
2718955
wikitext
text/x-wiki
[[File:Wikiversity Law Reports logo.PNG|Wikiversity Law Reports logo|center]]
==<ref>{{Cite web|url=https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&emr=1&followup=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&ifkv=AdBytiO5OhUPi2KZ1sk5g4uCKu0hbeCQJ-SJp3HBfs_5P6tTblMCL6fXI7LF2Seckp23i_hqczW1&osid=1&passive=1209600&service=mail&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S1647671413%3A1750204297084827|title=รัฐธรรมนูญ/กับครบ|last=ไมค์|first=43|date=ลองยาอายุ19อารมร์95|website=accounts.google.com|archive-url=X.com|archive-date=MP|dead-url=+66|access-date=2025-06-17}}</ref>Purpose==
Wikiversity Law Reports are freely-licensed headnotes for court decisions.
They should provide useful information for students and lawyers, ideally making commercial law reports and citators redundant, without unnecessarily duplicating freely-available resources such as Austlii.
==Contents==
Each report performs the same function as the headnote in a law report and consists of:
* Title: the name of the case and its citation in the relevant series of official law reports
** e.g. Commissioner of Taxation v Anstis (2010) 241 CLR 443
* TL;DR: a one-sentence summary of what the case is known for, suitable for putting in parenthesis after a reference to the case
** e.g. self-education expenses are deductible where the course of education is a condition of receiving an assessable government payment such as Youth Allowance
* Court and names of judges
* Facts: summary of the material facts
* Held: the main findings of fact or law of the court (specifying which judges, if not all, agreed with which propositions)
* (optional) Arguments: summary of the arguments of the parties before the court
* Debate: optionally, a summary of any divergent or controversial views on the meaning of the case
** e.g. if there is debate over whether a particular holding in a case was ratio or obiter, or over how far a particular proposition goes, then this can be noted in this section.
** This section should aggressively summarise, not reproduce, people's views. It should include hyperlinks to other pages that contain more details. The purpose of this section is to inform students about the existence of views and let them find out more elsewhere, not to promote one or another or to settle the debate.
* Other publishers' references: list of citations, including official, unofficial and medium-neutral citations
** Where possible, these references should be hyperlinks to the reports themselves. This is often impossible for commercial reports, but is feasible for the versions published on websites like Austlii.
** Wikiversity Law Reports do not contain the text of the decision.
As the reports are written, this structure will evolve.
==List of reports==
<DynamicPageList>
category=Wikiversity Law Reports
namespace=0
</DynamicPageList>
==Ideas==
Please add ideas to this section.
* Reports could include catchwords. Each set of catchwords consists of a series of topics separated by dashes, progressing from general to specific, the last of which is an issue for the court to resolve, along with the answer.
** e.g. income tax (Commonwealth of Australia) - general deductions - self-education expenses - course of study a requirement for receiving assessable government allowance - whether incurred in gaining or producing assessable income - yes
[[Category:Law]]
6a2bzp4ldlcr1fnvv27p9mbmvlbp77i
Segment display/Fourteen-segment display
0
226375
2718982
2700863
2025-06-18T04:34:36Z
49.229.147.118
2718982
wikitext
text/x-wiki
<gallery>
14-segment labeled clockwise.svg|Labeled clockwise
14-segment labeled.svg|Labeled as an increment to a [[sixteen-segment display|16-segment display]]
</gallery>
[[Category:Digital art]]
f672xicl2gg0o6bol0k9nh74ivigi3s
Real World Lab
0
229172
2718821
2471601
2025-06-17T12:55:32Z
Bert Niehaus
2387134
/* See also */
2718821
wikitext
text/x-wiki
[[File:aframe360image.png|thumb|300px|[https://aframe.io/examples/showcase/sky/ AFrame 360 Image] - Look around by draging mouse with mouse button presse]]
[[File:Gibraltar 1 3d model, created using photogrammetry.ogg|thumb|right|3D models assigned to the location, where a skull was found - video example of a 3D model - [[Wikipedia:Gibraltar 1|Gibraltar 1]] [[Wikipedia:Neanderthal|Neanderthal]] skull 3-D wireframe model (see [[Photogrammetry]]) ]]
[[File:See im Wald.jpg|thumb|Lake in the forest - as an example of an Real World Lab - exploration of flora and fauna]]
[[File:01 Auckland New Zealand-1000137.jpg|thumb|View single Image - Sky Tower, Auckland, New Zealand]]
[[File:Sky Tower Auckland in AFrame Panorama.jpg|thumb|[https://niebert.github.io/HuginSample Panorama Image with AFrame]]]
This learning resource introduces Wikiversity authors into the concept of Real World Labs and supports the authors in building a Wikiversity Learning Resource for the [[Risk_Literacy/Real_World_Labs|Real World Lab]].
== Definition: Real World Lab ==
A real world lab is learning environment
* located in the specific area, building, ... which is not the regular classroom location and supports the interaction between the scientific world and civil society,
* encourage the interaction with the objects, the local environment or with processes, which are specific for the location of the Real World Lab,
* learning objects go beyond the exploration of the specific location
* engaging people (students, citizens, visitors, ...) to interact with local and digital objects of the Real World Lab.
* (optional) learning environments in the real world lab (outside classroom, seminar room) are linked to learning environment inside the classroom,
* (optional) digital and non-digital material are collected, documented and analyzed.
== Submodules ==
* [[/Introduction/]]
* [[/Planning/]]
* [[/Open Data/|Open Data for a Learning Resource]]
* [[/3D Model/|3D Model of an area or learning objects]]
== Learning Tasks ==
* Consider the conception of a [https://niebert.github.io/Virtual-Reality-Museum/ virtual museum]<ref>Crecropia (2016) The Hall - Virtual Museum - Demo: https://niebert.github.io/Virtual-Reality-Museum/ GitHub-repository: https://github.com/Cecropia/thehallaframe - Fork: https://github.com/niebert/Virtual-Reality-Museum (accessed 2023/02/01)</ref> and the exploration of the space. What are the analogies and differences with a real-world laboratory where digital visualizations support the exploration of real space?
== Main Use-Cases of RWL ==
* '''(Pre-Visit)''' Preparation of visit with learning tasks and learning resources, that support the learners in being focussed on the learning objectives.
* '''(During-Visit)''' Support the real visit with additional of the RWL with additional Learning Resources (e.g. Quiz, Mulitmedia from WikiMedia Commons, ... in Wikiversity)
* '''(Post-Visit)''' support of post-visit with additional retrospective learning tasks and learning resources.
* '''([https://niebert.github.io/aframe360navigation Virtual-Visit]<ref>Aframe 460 Degree Prototype (2021) GitHub repository for the Wikiversity learning resource - URL: https://niebert.github.io/aframe360navigation - Download: [https://github.com/niebert/trifels/archive/main.zip ZIP of Repository] - (accessed 2021/01/15) </ref>)''' if students are not able to visit a specific area on earth (e.g. due to travel time and travel expenses), then a virtual visit could provide an opportunity explore a Real World Lab at least virtually by visual exploration and learning task, e.g.
** Fiji Islands and the need for migration due to the rise of sea level and explore how a place looked like 50 years ago and now.
** provide learning resources and the scientfic evidence for [[w:Global_warming|Global Warming]] and [[w:Greenhouse Gas|Greenhouse Gas]].
** (Loss of Value for Fossile Energy Sources) Analyse the hypothesis: The acceptance of current scientific evidence for climate change and the incorporation in economical decision making will lead to the loss of value of Fossile Energy Sources, because human-kind had to stop burning those resources (keep in mind, that fossile energy sources are not used for fuel and heating alone).
== Subtopics ==
* [[Risk_Literacy/Real_World_Labs/web-based_Exploration|webbased tools for Real World Labs]]
* [[3D Modelling]] is used to create digital learning resources that allow the exploration of RWL in a pre, during, post, or virtual setting for a learning process.
* [[Photogrammetry]] to create a 3D model of objects in Real World Lab by a set of images from a different angle
== Image Map Graph ==
Create a visual representation ([[Image Map]] Graph - IMG) in LibreOffice Draw and highlight those areas with links to other web resource. This can also be used for the learners to get an overview what can be explored in a learning resource.
:[[File:Imagemap graph.png|550px|Image Map Graph for Navigation]]
The image abover can also be used in the [https://niebert.github.io/imgmap ImageMap Editor] to link the Image Map Graph to the image maps as nodes of the graph.
* Assign a [[Water|Wikiversity Learning Resource about Water]] to an area in the image map or
* Assign a [https://niebert.github.io/JSON3D4Aframe/mods3d/water_molecule_aframe.html 3D-Model about the water molecule] generate by [[3D Modelling]] to the small river on the image.
== Examples of Real World Location for Labs ==
The following list enumerates possible example locations for Real World Labs. The visualizations are created as 360<sup>o</sup> degree images create with [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame]<ref>[https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] (2018) Engelbert Niehaus - Tool for Wikiversity Learning Environments to create a web-based 360<sup>o</sup> degree images for an equirectangular image stored in WikiCommons - 360<sup>o</sup> degree images - URL: https://niebert.github.io/WikiCommons2AFrame/ (accessed 2019/04/10)</ref>
* '''[https://niebert.github.io/aframe360navigation Geographical Location: River]''', The [https://niebert.github.io/aframe360navigation Aframe example] lets the learners explore the river Rhine close to Cologne.
** Biology: flora fauna around the river.
** Architecture: bridges, flood protection measures,...
** History: archeological site, foundation of building, bridges, role of transportation over the river, the river as border between countries
** Technology: water purification, drinking water
** Economy: the role of water in society, transportation of goods over the river
** Physics: fluid dynamic and transformation of river bed, land-water and water-land interaction
** Mathematics: mathematical modelling of topics mentioned before and calculation of models specific to the geolocation of the real world lab.
* '''(Technology)''' Exploration with a [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fc%2Fc7%2FDatteln_Schleuse_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Sluice+in+Datteln+-+Germany%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360 degree image of a sluice in Germany]
* '''Mining Area''' <kbd>[https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg Förderturm_Zeche_Holland_Panorama.jpg]</kbd> -- [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fb%2Fbf%2FF%25C3%25B6rderturm_Zeche_Holland_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Foerderturm+der+Zeche+Holland%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A++++++++++ Förderturm der Zeche Holland] - link created with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] with [https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg equirectangular image from WikiCommons].
* '''[https://github.com/r23/Virtual-Reality-Museum Museum]''' in [[3D Modelling|AFrame]]
* '''Zoo'''
* '''Nature/Environment''' <kbd>[https://niebert.github.io/HuginSample/img/rieselfelder1.jpg Rieselfelder Muenster, Germany]</kbd> with https://niebert.github.io/HuginSample/img/rieselfelder1.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Frieselfelder1.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Generated+with+WikiCommons2AFrame%22%2C%0D%0A++++%22color%22%3A%22blue%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Farm'''
* '''City''' <kbd>[https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg Saumarkt Karlsruhe-Durlach, Germany]</kbd> with https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Fdurlach_saumarkt.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Durlach+-+Saurmarkt%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Kindergarten/Playground'''
* '''[http://www.digitales-forum-romanum.de/?lang=en Archeological Site]<ref>Digital Forum Romanum (2019) Humbold University, Berlin, URL: http://www.digitales-forum-romanum.de/?lang=en (accessed 2021/07/02)</ref>''' learning task is to create e.g. a small temple with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] and assign an [[equirectangular]] image to the 3D scene - see <kbd>[https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Aldara_parks.jpg/1280px-Aldara_parks.jpg Aldara_parks.jpg]</kbd> -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fd%2Fd8%2FAldara_parks.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Aldara+Park%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
== Icon Sets for Learning Resource ==
* Use Icon Sets for your Learning Resource to express, what kind of interaction with the Real World Lab you expect from the learner.
== Learning Tasks ==
* '''([[Risk Literacy/Real World Labs/web-based Exploration|Web-based Exploration]])''' Analyze how a [[Risk Literacy/Real World Labs/web-based Exploration|web-based exploration]] can be used in conjunction with a real visit or preparation of the real visit of the real world lab.
* '''(Markers on a Map)''' Explore the [https://niebert.github.io/Markers4Map/ OpenSource HTML5 Tool] to create markers for your Real World Lab on a map. Use [https://niebert.github.io/Markers4Map/ Markers4Map] and create interesting geolocations on the map and explain e.g. what kind of experiments can be performed at the geolocation ([https://niebert.github.io/openlayer_display_markers/viewicons.html?mapcenter=-1.81185%2C+52.443141&zoom=5&jsondata=%5B%7B+%22geolocation%22+%3A+%5B-0.14467470703124907%2C51.493889053694915%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLondon%5C%22+target%3D%5C%22_blank%5C%22%3ELondon%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3ELondon+created+a+Open+Innovation+Ecosystem+for+SDG+Clean+Water+and+Sanitation%22%7D%2C%0D%0A%7B+%22geolocation%22+%3A+%5B-1.81185%2C51.243141%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBirmingham%5C%22+target%3D%5C%22_blank%5C%22%3EBrimingham%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3EBirmingham+created+SDG-activities+about+SDG7+Clean+and+affordable+Energy+and+SDG3+Health%22%7D%5D Example Map with two markers]).
* '''(Digital and Non-Digital Aspects of the RWL)''' Create a Real World Lab that allows learners and citzens to interact with the environment. Identify digital areas of exploration that augment the experience with real world environment.
** '''(Time)''' Explore the visual appearance of the location
*** '''(Winter)''' in winter by using [[Virtual Reality]], when it is summer and
*** '''(Summer)''' vice versa a [[Virtual Reality|VR experience]] of the location during summer when it is winter.
*** ''(History)'' explore visual experience of the location 50 years before (e.g. plants, buildings) or before/after flooding, ... (Disaster)
** '''(Scale)''' Explore visualisation
*** ''(Microscope)'' under the mircoscope as video of organisms, that can be found in the river,
*** ''([[Satellite Technology|Satellite Image]])'' explore satellite image of the region during extreme event due to [[Climate change|Climate Change]]
*** ''(Drone Video)'' provide a digital bird view or the region.
*** ''(Digital Maps)'' maps used to understand the geographical context of the Real World Lab
== See also ==
* [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] - Open Source webbased tool for Wikiversity learning resources to create links for 360<sup>o</sup> degree images, that are stored in WikiCommons.
* [[AppLSAC]] for privacy-friendly data collection in Real World Labs, that allow offline data collection with in installed browser as runtime environment for the WebApp.
* [[Risk Literacy/Real World Labs]]
* [[Risk Literacy/Real World Labs/web-based Exploration]]
* [[Image_Map/Tutorial]]
* [[c:Category:3D Model - STL|3D Models in STL format]] - STL-Format is a file format of 3D models that is supported by WikiCommons. That allows the integration of 3D models in learning resources of Wikiversity.
== References ==
<noinclude>[[de:Reallabor]]</noinclude>
[[Category:Real World Lab]]
[[Category:Virtual reality]]
b28ljufcjrzkgzqh6jpwssa75odpcbg
2718822
2718821
2025-06-17T12:55:52Z
Bert Niehaus
2387134
/* See also */
2718822
wikitext
text/x-wiki
[[File:aframe360image.png|thumb|300px|[https://aframe.io/examples/showcase/sky/ AFrame 360 Image] - Look around by draging mouse with mouse button presse]]
[[File:Gibraltar 1 3d model, created using photogrammetry.ogg|thumb|right|3D models assigned to the location, where a skull was found - video example of a 3D model - [[Wikipedia:Gibraltar 1|Gibraltar 1]] [[Wikipedia:Neanderthal|Neanderthal]] skull 3-D wireframe model (see [[Photogrammetry]]) ]]
[[File:See im Wald.jpg|thumb|Lake in the forest - as an example of an Real World Lab - exploration of flora and fauna]]
[[File:01 Auckland New Zealand-1000137.jpg|thumb|View single Image - Sky Tower, Auckland, New Zealand]]
[[File:Sky Tower Auckland in AFrame Panorama.jpg|thumb|[https://niebert.github.io/HuginSample Panorama Image with AFrame]]]
This learning resource introduces Wikiversity authors into the concept of Real World Labs and supports the authors in building a Wikiversity Learning Resource for the [[Risk_Literacy/Real_World_Labs|Real World Lab]].
== Definition: Real World Lab ==
A real world lab is learning environment
* located in the specific area, building, ... which is not the regular classroom location and supports the interaction between the scientific world and civil society,
* encourage the interaction with the objects, the local environment or with processes, which are specific for the location of the Real World Lab,
* learning objects go beyond the exploration of the specific location
* engaging people (students, citizens, visitors, ...) to interact with local and digital objects of the Real World Lab.
* (optional) learning environments in the real world lab (outside classroom, seminar room) are linked to learning environment inside the classroom,
* (optional) digital and non-digital material are collected, documented and analyzed.
== Submodules ==
* [[/Introduction/]]
* [[/Planning/]]
* [[/Open Data/|Open Data for a Learning Resource]]
* [[/3D Model/|3D Model of an area or learning objects]]
== Learning Tasks ==
* Consider the conception of a [https://niebert.github.io/Virtual-Reality-Museum/ virtual museum]<ref>Crecropia (2016) The Hall - Virtual Museum - Demo: https://niebert.github.io/Virtual-Reality-Museum/ GitHub-repository: https://github.com/Cecropia/thehallaframe - Fork: https://github.com/niebert/Virtual-Reality-Museum (accessed 2023/02/01)</ref> and the exploration of the space. What are the analogies and differences with a real-world laboratory where digital visualizations support the exploration of real space?
== Main Use-Cases of RWL ==
* '''(Pre-Visit)''' Preparation of visit with learning tasks and learning resources, that support the learners in being focussed on the learning objectives.
* '''(During-Visit)''' Support the real visit with additional of the RWL with additional Learning Resources (e.g. Quiz, Mulitmedia from WikiMedia Commons, ... in Wikiversity)
* '''(Post-Visit)''' support of post-visit with additional retrospective learning tasks and learning resources.
* '''([https://niebert.github.io/aframe360navigation Virtual-Visit]<ref>Aframe 460 Degree Prototype (2021) GitHub repository for the Wikiversity learning resource - URL: https://niebert.github.io/aframe360navigation - Download: [https://github.com/niebert/trifels/archive/main.zip ZIP of Repository] - (accessed 2021/01/15) </ref>)''' if students are not able to visit a specific area on earth (e.g. due to travel time and travel expenses), then a virtual visit could provide an opportunity explore a Real World Lab at least virtually by visual exploration and learning task, e.g.
** Fiji Islands and the need for migration due to the rise of sea level and explore how a place looked like 50 years ago and now.
** provide learning resources and the scientfic evidence for [[w:Global_warming|Global Warming]] and [[w:Greenhouse Gas|Greenhouse Gas]].
** (Loss of Value for Fossile Energy Sources) Analyse the hypothesis: The acceptance of current scientific evidence for climate change and the incorporation in economical decision making will lead to the loss of value of Fossile Energy Sources, because human-kind had to stop burning those resources (keep in mind, that fossile energy sources are not used for fuel and heating alone).
== Subtopics ==
* [[Risk_Literacy/Real_World_Labs/web-based_Exploration|webbased tools for Real World Labs]]
* [[3D Modelling]] is used to create digital learning resources that allow the exploration of RWL in a pre, during, post, or virtual setting for a learning process.
* [[Photogrammetry]] to create a 3D model of objects in Real World Lab by a set of images from a different angle
== Image Map Graph ==
Create a visual representation ([[Image Map]] Graph - IMG) in LibreOffice Draw and highlight those areas with links to other web resource. This can also be used for the learners to get an overview what can be explored in a learning resource.
:[[File:Imagemap graph.png|550px|Image Map Graph for Navigation]]
The image abover can also be used in the [https://niebert.github.io/imgmap ImageMap Editor] to link the Image Map Graph to the image maps as nodes of the graph.
* Assign a [[Water|Wikiversity Learning Resource about Water]] to an area in the image map or
* Assign a [https://niebert.github.io/JSON3D4Aframe/mods3d/water_molecule_aframe.html 3D-Model about the water molecule] generate by [[3D Modelling]] to the small river on the image.
== Examples of Real World Location for Labs ==
The following list enumerates possible example locations for Real World Labs. The visualizations are created as 360<sup>o</sup> degree images create with [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame]<ref>[https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] (2018) Engelbert Niehaus - Tool for Wikiversity Learning Environments to create a web-based 360<sup>o</sup> degree images for an equirectangular image stored in WikiCommons - 360<sup>o</sup> degree images - URL: https://niebert.github.io/WikiCommons2AFrame/ (accessed 2019/04/10)</ref>
* '''[https://niebert.github.io/aframe360navigation Geographical Location: River]''', The [https://niebert.github.io/aframe360navigation Aframe example] lets the learners explore the river Rhine close to Cologne.
** Biology: flora fauna around the river.
** Architecture: bridges, flood protection measures,...
** History: archeological site, foundation of building, bridges, role of transportation over the river, the river as border between countries
** Technology: water purification, drinking water
** Economy: the role of water in society, transportation of goods over the river
** Physics: fluid dynamic and transformation of river bed, land-water and water-land interaction
** Mathematics: mathematical modelling of topics mentioned before and calculation of models specific to the geolocation of the real world lab.
* '''(Technology)''' Exploration with a [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fc%2Fc7%2FDatteln_Schleuse_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Sluice+in+Datteln+-+Germany%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360 degree image of a sluice in Germany]
* '''Mining Area''' <kbd>[https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg Förderturm_Zeche_Holland_Panorama.jpg]</kbd> -- [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fb%2Fbf%2FF%25C3%25B6rderturm_Zeche_Holland_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Foerderturm+der+Zeche+Holland%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A++++++++++ Förderturm der Zeche Holland] - link created with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] with [https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg equirectangular image from WikiCommons].
* '''[https://github.com/r23/Virtual-Reality-Museum Museum]''' in [[3D Modelling|AFrame]]
* '''Zoo'''
* '''Nature/Environment''' <kbd>[https://niebert.github.io/HuginSample/img/rieselfelder1.jpg Rieselfelder Muenster, Germany]</kbd> with https://niebert.github.io/HuginSample/img/rieselfelder1.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Frieselfelder1.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Generated+with+WikiCommons2AFrame%22%2C%0D%0A++++%22color%22%3A%22blue%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Farm'''
* '''City''' <kbd>[https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg Saumarkt Karlsruhe-Durlach, Germany]</kbd> with https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Fdurlach_saumarkt.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Durlach+-+Saurmarkt%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Kindergarten/Playground'''
* '''[http://www.digitales-forum-romanum.de/?lang=en Archeological Site]<ref>Digital Forum Romanum (2019) Humbold University, Berlin, URL: http://www.digitales-forum-romanum.de/?lang=en (accessed 2021/07/02)</ref>''' learning task is to create e.g. a small temple with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] and assign an [[equirectangular]] image to the 3D scene - see <kbd>[https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Aldara_parks.jpg/1280px-Aldara_parks.jpg Aldara_parks.jpg]</kbd> -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fd%2Fd8%2FAldara_parks.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Aldara+Park%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
== Icon Sets for Learning Resource ==
* Use Icon Sets for your Learning Resource to express, what kind of interaction with the Real World Lab you expect from the learner.
== Learning Tasks ==
* '''([[Risk Literacy/Real World Labs/web-based Exploration|Web-based Exploration]])''' Analyze how a [[Risk Literacy/Real World Labs/web-based Exploration|web-based exploration]] can be used in conjunction with a real visit or preparation of the real visit of the real world lab.
* '''(Markers on a Map)''' Explore the [https://niebert.github.io/Markers4Map/ OpenSource HTML5 Tool] to create markers for your Real World Lab on a map. Use [https://niebert.github.io/Markers4Map/ Markers4Map] and create interesting geolocations on the map and explain e.g. what kind of experiments can be performed at the geolocation ([https://niebert.github.io/openlayer_display_markers/viewicons.html?mapcenter=-1.81185%2C+52.443141&zoom=5&jsondata=%5B%7B+%22geolocation%22+%3A+%5B-0.14467470703124907%2C51.493889053694915%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLondon%5C%22+target%3D%5C%22_blank%5C%22%3ELondon%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3ELondon+created+a+Open+Innovation+Ecosystem+for+SDG+Clean+Water+and+Sanitation%22%7D%2C%0D%0A%7B+%22geolocation%22+%3A+%5B-1.81185%2C51.243141%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBirmingham%5C%22+target%3D%5C%22_blank%5C%22%3EBrimingham%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3EBirmingham+created+SDG-activities+about+SDG7+Clean+and+affordable+Energy+and+SDG3+Health%22%7D%5D Example Map with two markers]).
* '''(Digital and Non-Digital Aspects of the RWL)''' Create a Real World Lab that allows learners and citzens to interact with the environment. Identify digital areas of exploration that augment the experience with real world environment.
** '''(Time)''' Explore the visual appearance of the location
*** '''(Winter)''' in winter by using [[Virtual Reality]], when it is summer and
*** '''(Summer)''' vice versa a [[Virtual Reality|VR experience]] of the location during summer when it is winter.
*** ''(History)'' explore visual experience of the location 50 years before (e.g. plants, buildings) or before/after flooding, ... (Disaster)
** '''(Scale)''' Explore visualisation
*** ''(Microscope)'' under the mircoscope as video of organisms, that can be found in the river,
*** ''([[Satellite Technology|Satellite Image]])'' explore satellite image of the region during extreme event due to [[Climate change|Climate Change]]
*** ''(Drone Video)'' provide a digital bird view or the region.
*** ''(Digital Maps)'' maps used to understand the geographical context of the Real World Lab
== See also ==
* [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] - Open Source webbased tool for Wikiversity learning resources to create links for 360<sup>o</sup> degree images, that are stored in WikiCommons.
* [[AppLSAC]] for privacy-friendly data collection in Real World Labs, that allow offline data collection with in installed browser as runtime environment for the WebApp.
* [[Risk Literacy/Real World Labs]]
* [[Risk Literacy/Real World Labs/web-based Exploration]]
* [[Image_Map/Tutorial]]
* [[c:Category:3D Model - STL|3D Models in STL format]] is a file format of 3D models that is supported by WikiCommons. That allows the integration of 3D models in learning resources of Wikiversity.
== References ==
<noinclude>[[de:Reallabor]]</noinclude>
[[Category:Real World Lab]]
[[Category:Virtual reality]]
qfzxyfsi1pscfk8tfoslvw1es04cz17
2718823
2718822
2025-06-17T12:57:37Z
Bert Niehaus
2387134
/* See also */
2718823
wikitext
text/x-wiki
[[File:aframe360image.png|thumb|300px|[https://aframe.io/examples/showcase/sky/ AFrame 360 Image] - Look around by draging mouse with mouse button presse]]
[[File:Gibraltar 1 3d model, created using photogrammetry.ogg|thumb|right|3D models assigned to the location, where a skull was found - video example of a 3D model - [[Wikipedia:Gibraltar 1|Gibraltar 1]] [[Wikipedia:Neanderthal|Neanderthal]] skull 3-D wireframe model (see [[Photogrammetry]]) ]]
[[File:See im Wald.jpg|thumb|Lake in the forest - as an example of an Real World Lab - exploration of flora and fauna]]
[[File:01 Auckland New Zealand-1000137.jpg|thumb|View single Image - Sky Tower, Auckland, New Zealand]]
[[File:Sky Tower Auckland in AFrame Panorama.jpg|thumb|[https://niebert.github.io/HuginSample Panorama Image with AFrame]]]
This learning resource introduces Wikiversity authors into the concept of Real World Labs and supports the authors in building a Wikiversity Learning Resource for the [[Risk_Literacy/Real_World_Labs|Real World Lab]].
== Definition: Real World Lab ==
A real world lab is learning environment
* located in the specific area, building, ... which is not the regular classroom location and supports the interaction between the scientific world and civil society,
* encourage the interaction with the objects, the local environment or with processes, which are specific for the location of the Real World Lab,
* learning objects go beyond the exploration of the specific location
* engaging people (students, citizens, visitors, ...) to interact with local and digital objects of the Real World Lab.
* (optional) learning environments in the real world lab (outside classroom, seminar room) are linked to learning environment inside the classroom,
* (optional) digital and non-digital material are collected, documented and analyzed.
== Submodules ==
* [[/Introduction/]]
* [[/Planning/]]
* [[/Open Data/|Open Data for a Learning Resource]]
* [[/3D Model/|3D Model of an area or learning objects]]
== Learning Tasks ==
* Consider the conception of a [https://niebert.github.io/Virtual-Reality-Museum/ virtual museum]<ref>Crecropia (2016) The Hall - Virtual Museum - Demo: https://niebert.github.io/Virtual-Reality-Museum/ GitHub-repository: https://github.com/Cecropia/thehallaframe - Fork: https://github.com/niebert/Virtual-Reality-Museum (accessed 2023/02/01)</ref> and the exploration of the space. What are the analogies and differences with a real-world laboratory where digital visualizations support the exploration of real space?
== Main Use-Cases of RWL ==
* '''(Pre-Visit)''' Preparation of visit with learning tasks and learning resources, that support the learners in being focussed on the learning objectives.
* '''(During-Visit)''' Support the real visit with additional of the RWL with additional Learning Resources (e.g. Quiz, Mulitmedia from WikiMedia Commons, ... in Wikiversity)
* '''(Post-Visit)''' support of post-visit with additional retrospective learning tasks and learning resources.
* '''([https://niebert.github.io/aframe360navigation Virtual-Visit]<ref>Aframe 460 Degree Prototype (2021) GitHub repository for the Wikiversity learning resource - URL: https://niebert.github.io/aframe360navigation - Download: [https://github.com/niebert/trifels/archive/main.zip ZIP of Repository] - (accessed 2021/01/15) </ref>)''' if students are not able to visit a specific area on earth (e.g. due to travel time and travel expenses), then a virtual visit could provide an opportunity explore a Real World Lab at least virtually by visual exploration and learning task, e.g.
** Fiji Islands and the need for migration due to the rise of sea level and explore how a place looked like 50 years ago and now.
** provide learning resources and the scientfic evidence for [[w:Global_warming|Global Warming]] and [[w:Greenhouse Gas|Greenhouse Gas]].
** (Loss of Value for Fossile Energy Sources) Analyse the hypothesis: The acceptance of current scientific evidence for climate change and the incorporation in economical decision making will lead to the loss of value of Fossile Energy Sources, because human-kind had to stop burning those resources (keep in mind, that fossile energy sources are not used for fuel and heating alone).
== Subtopics ==
* [[Risk_Literacy/Real_World_Labs/web-based_Exploration|webbased tools for Real World Labs]]
* [[3D Modelling]] is used to create digital learning resources that allow the exploration of RWL in a pre, during, post, or virtual setting for a learning process.
* [[Photogrammetry]] to create a 3D model of objects in Real World Lab by a set of images from a different angle
== Image Map Graph ==
Create a visual representation ([[Image Map]] Graph - IMG) in LibreOffice Draw and highlight those areas with links to other web resource. This can also be used for the learners to get an overview what can be explored in a learning resource.
:[[File:Imagemap graph.png|550px|Image Map Graph for Navigation]]
The image abover can also be used in the [https://niebert.github.io/imgmap ImageMap Editor] to link the Image Map Graph to the image maps as nodes of the graph.
* Assign a [[Water|Wikiversity Learning Resource about Water]] to an area in the image map or
* Assign a [https://niebert.github.io/JSON3D4Aframe/mods3d/water_molecule_aframe.html 3D-Model about the water molecule] generate by [[3D Modelling]] to the small river on the image.
== Examples of Real World Location for Labs ==
The following list enumerates possible example locations for Real World Labs. The visualizations are created as 360<sup>o</sup> degree images create with [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame]<ref>[https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] (2018) Engelbert Niehaus - Tool for Wikiversity Learning Environments to create a web-based 360<sup>o</sup> degree images for an equirectangular image stored in WikiCommons - 360<sup>o</sup> degree images - URL: https://niebert.github.io/WikiCommons2AFrame/ (accessed 2019/04/10)</ref>
* '''[https://niebert.github.io/aframe360navigation Geographical Location: River]''', The [https://niebert.github.io/aframe360navigation Aframe example] lets the learners explore the river Rhine close to Cologne.
** Biology: flora fauna around the river.
** Architecture: bridges, flood protection measures,...
** History: archeological site, foundation of building, bridges, role of transportation over the river, the river as border between countries
** Technology: water purification, drinking water
** Economy: the role of water in society, transportation of goods over the river
** Physics: fluid dynamic and transformation of river bed, land-water and water-land interaction
** Mathematics: mathematical modelling of topics mentioned before and calculation of models specific to the geolocation of the real world lab.
* '''(Technology)''' Exploration with a [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fc%2Fc7%2FDatteln_Schleuse_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Sluice+in+Datteln+-+Germany%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360 degree image of a sluice in Germany]
* '''Mining Area''' <kbd>[https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg Förderturm_Zeche_Holland_Panorama.jpg]</kbd> -- [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fb%2Fbf%2FF%25C3%25B6rderturm_Zeche_Holland_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Foerderturm+der+Zeche+Holland%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A++++++++++ Förderturm der Zeche Holland] - link created with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] with [https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg equirectangular image from WikiCommons].
* '''[https://github.com/r23/Virtual-Reality-Museum Museum]''' in [[3D Modelling|AFrame]]
* '''Zoo'''
* '''Nature/Environment''' <kbd>[https://niebert.github.io/HuginSample/img/rieselfelder1.jpg Rieselfelder Muenster, Germany]</kbd> with https://niebert.github.io/HuginSample/img/rieselfelder1.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Frieselfelder1.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Generated+with+WikiCommons2AFrame%22%2C%0D%0A++++%22color%22%3A%22blue%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Farm'''
* '''City''' <kbd>[https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg Saumarkt Karlsruhe-Durlach, Germany]</kbd> with https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Fdurlach_saumarkt.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Durlach+-+Saurmarkt%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Kindergarten/Playground'''
* '''[http://www.digitales-forum-romanum.de/?lang=en Archeological Site]<ref>Digital Forum Romanum (2019) Humbold University, Berlin, URL: http://www.digitales-forum-romanum.de/?lang=en (accessed 2021/07/02)</ref>''' learning task is to create e.g. a small temple with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] and assign an [[equirectangular]] image to the 3D scene - see <kbd>[https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Aldara_parks.jpg/1280px-Aldara_parks.jpg Aldara_parks.jpg]</kbd> -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fd%2Fd8%2FAldara_parks.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Aldara+Park%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
== Icon Sets for Learning Resource ==
* Use Icon Sets for your Learning Resource to express, what kind of interaction with the Real World Lab you expect from the learner.
== Learning Tasks ==
* '''([[Risk Literacy/Real World Labs/web-based Exploration|Web-based Exploration]])''' Analyze how a [[Risk Literacy/Real World Labs/web-based Exploration|web-based exploration]] can be used in conjunction with a real visit or preparation of the real visit of the real world lab.
* '''(Markers on a Map)''' Explore the [https://niebert.github.io/Markers4Map/ OpenSource HTML5 Tool] to create markers for your Real World Lab on a map. Use [https://niebert.github.io/Markers4Map/ Markers4Map] and create interesting geolocations on the map and explain e.g. what kind of experiments can be performed at the geolocation ([https://niebert.github.io/openlayer_display_markers/viewicons.html?mapcenter=-1.81185%2C+52.443141&zoom=5&jsondata=%5B%7B+%22geolocation%22+%3A+%5B-0.14467470703124907%2C51.493889053694915%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLondon%5C%22+target%3D%5C%22_blank%5C%22%3ELondon%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3ELondon+created+a+Open+Innovation+Ecosystem+for+SDG+Clean+Water+and+Sanitation%22%7D%2C%0D%0A%7B+%22geolocation%22+%3A+%5B-1.81185%2C51.243141%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBirmingham%5C%22+target%3D%5C%22_blank%5C%22%3EBrimingham%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3EBirmingham+created+SDG-activities+about+SDG7+Clean+and+affordable+Energy+and+SDG3+Health%22%7D%5D Example Map with two markers]).
* '''(Digital and Non-Digital Aspects of the RWL)''' Create a Real World Lab that allows learners and citzens to interact with the environment. Identify digital areas of exploration that augment the experience with real world environment.
** '''(Time)''' Explore the visual appearance of the location
*** '''(Winter)''' in winter by using [[Virtual Reality]], when it is summer and
*** '''(Summer)''' vice versa a [[Virtual Reality|VR experience]] of the location during summer when it is winter.
*** ''(History)'' explore visual experience of the location 50 years before (e.g. plants, buildings) or before/after flooding, ... (Disaster)
** '''(Scale)''' Explore visualisation
*** ''(Microscope)'' under the mircoscope as video of organisms, that can be found in the river,
*** ''([[Satellite Technology|Satellite Image]])'' explore satellite image of the region during extreme event due to [[Climate change|Climate Change]]
*** ''(Drone Video)'' provide a digital bird view or the region.
*** ''(Digital Maps)'' maps used to understand the geographical context of the Real World Lab
== See also ==
* [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] - Open Source webbased tool for Wikiversity learning resources to create links for 360<sup>o</sup> degree images, that are stored in WikiCommons.
* [[AppLSAC]] for privacy-friendly data collection in Real World Labs, that allow offline data collection with in installed browser as runtime environment for the WebApp.
* [[Risk Literacy/Real World Labs]]
* [[Risk Literacy/Real World Labs/web-based Exploration]]
* [[Image_Map/Tutorial]]
* [[c:Category:3D Model - STL|3D Models STL in WikiCommons]] contains 3D models a file format STL - for integration of 3D models in learning resources in Wikiversity.
== References ==
<noinclude>[[de:Reallabor]]</noinclude>
[[Category:Real World Lab]]
[[Category:Virtual reality]]
55cw3dnfryyhir3nmgnfk775a8nqzws
2718824
2718823
2025-06-17T12:58:41Z
Bert Niehaus
2387134
added [[Category:3D modeling]] using [[Help:Gadget-HotCat|HotCat]]
2718824
wikitext
text/x-wiki
[[File:aframe360image.png|thumb|300px|[https://aframe.io/examples/showcase/sky/ AFrame 360 Image] - Look around by draging mouse with mouse button presse]]
[[File:Gibraltar 1 3d model, created using photogrammetry.ogg|thumb|right|3D models assigned to the location, where a skull was found - video example of a 3D model - [[Wikipedia:Gibraltar 1|Gibraltar 1]] [[Wikipedia:Neanderthal|Neanderthal]] skull 3-D wireframe model (see [[Photogrammetry]]) ]]
[[File:See im Wald.jpg|thumb|Lake in the forest - as an example of an Real World Lab - exploration of flora and fauna]]
[[File:01 Auckland New Zealand-1000137.jpg|thumb|View single Image - Sky Tower, Auckland, New Zealand]]
[[File:Sky Tower Auckland in AFrame Panorama.jpg|thumb|[https://niebert.github.io/HuginSample Panorama Image with AFrame]]]
This learning resource introduces Wikiversity authors into the concept of Real World Labs and supports the authors in building a Wikiversity Learning Resource for the [[Risk_Literacy/Real_World_Labs|Real World Lab]].
== Definition: Real World Lab ==
A real world lab is learning environment
* located in the specific area, building, ... which is not the regular classroom location and supports the interaction between the scientific world and civil society,
* encourage the interaction with the objects, the local environment or with processes, which are specific for the location of the Real World Lab,
* learning objects go beyond the exploration of the specific location
* engaging people (students, citizens, visitors, ...) to interact with local and digital objects of the Real World Lab.
* (optional) learning environments in the real world lab (outside classroom, seminar room) are linked to learning environment inside the classroom,
* (optional) digital and non-digital material are collected, documented and analyzed.
== Submodules ==
* [[/Introduction/]]
* [[/Planning/]]
* [[/Open Data/|Open Data for a Learning Resource]]
* [[/3D Model/|3D Model of an area or learning objects]]
== Learning Tasks ==
* Consider the conception of a [https://niebert.github.io/Virtual-Reality-Museum/ virtual museum]<ref>Crecropia (2016) The Hall - Virtual Museum - Demo: https://niebert.github.io/Virtual-Reality-Museum/ GitHub-repository: https://github.com/Cecropia/thehallaframe - Fork: https://github.com/niebert/Virtual-Reality-Museum (accessed 2023/02/01)</ref> and the exploration of the space. What are the analogies and differences with a real-world laboratory where digital visualizations support the exploration of real space?
== Main Use-Cases of RWL ==
* '''(Pre-Visit)''' Preparation of visit with learning tasks and learning resources, that support the learners in being focussed on the learning objectives.
* '''(During-Visit)''' Support the real visit with additional of the RWL with additional Learning Resources (e.g. Quiz, Mulitmedia from WikiMedia Commons, ... in Wikiversity)
* '''(Post-Visit)''' support of post-visit with additional retrospective learning tasks and learning resources.
* '''([https://niebert.github.io/aframe360navigation Virtual-Visit]<ref>Aframe 460 Degree Prototype (2021) GitHub repository for the Wikiversity learning resource - URL: https://niebert.github.io/aframe360navigation - Download: [https://github.com/niebert/trifels/archive/main.zip ZIP of Repository] - (accessed 2021/01/15) </ref>)''' if students are not able to visit a specific area on earth (e.g. due to travel time and travel expenses), then a virtual visit could provide an opportunity explore a Real World Lab at least virtually by visual exploration and learning task, e.g.
** Fiji Islands and the need for migration due to the rise of sea level and explore how a place looked like 50 years ago and now.
** provide learning resources and the scientfic evidence for [[w:Global_warming|Global Warming]] and [[w:Greenhouse Gas|Greenhouse Gas]].
** (Loss of Value for Fossile Energy Sources) Analyse the hypothesis: The acceptance of current scientific evidence for climate change and the incorporation in economical decision making will lead to the loss of value of Fossile Energy Sources, because human-kind had to stop burning those resources (keep in mind, that fossile energy sources are not used for fuel and heating alone).
== Subtopics ==
* [[Risk_Literacy/Real_World_Labs/web-based_Exploration|webbased tools for Real World Labs]]
* [[3D Modelling]] is used to create digital learning resources that allow the exploration of RWL in a pre, during, post, or virtual setting for a learning process.
* [[Photogrammetry]] to create a 3D model of objects in Real World Lab by a set of images from a different angle
== Image Map Graph ==
Create a visual representation ([[Image Map]] Graph - IMG) in LibreOffice Draw and highlight those areas with links to other web resource. This can also be used for the learners to get an overview what can be explored in a learning resource.
:[[File:Imagemap graph.png|550px|Image Map Graph for Navigation]]
The image abover can also be used in the [https://niebert.github.io/imgmap ImageMap Editor] to link the Image Map Graph to the image maps as nodes of the graph.
* Assign a [[Water|Wikiversity Learning Resource about Water]] to an area in the image map or
* Assign a [https://niebert.github.io/JSON3D4Aframe/mods3d/water_molecule_aframe.html 3D-Model about the water molecule] generate by [[3D Modelling]] to the small river on the image.
== Examples of Real World Location for Labs ==
The following list enumerates possible example locations for Real World Labs. The visualizations are created as 360<sup>o</sup> degree images create with [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame]<ref>[https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] (2018) Engelbert Niehaus - Tool for Wikiversity Learning Environments to create a web-based 360<sup>o</sup> degree images for an equirectangular image stored in WikiCommons - 360<sup>o</sup> degree images - URL: https://niebert.github.io/WikiCommons2AFrame/ (accessed 2019/04/10)</ref>
* '''[https://niebert.github.io/aframe360navigation Geographical Location: River]''', The [https://niebert.github.io/aframe360navigation Aframe example] lets the learners explore the river Rhine close to Cologne.
** Biology: flora fauna around the river.
** Architecture: bridges, flood protection measures,...
** History: archeological site, foundation of building, bridges, role of transportation over the river, the river as border between countries
** Technology: water purification, drinking water
** Economy: the role of water in society, transportation of goods over the river
** Physics: fluid dynamic and transformation of river bed, land-water and water-land interaction
** Mathematics: mathematical modelling of topics mentioned before and calculation of models specific to the geolocation of the real world lab.
* '''(Technology)''' Exploration with a [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fc%2Fc7%2FDatteln_Schleuse_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Sluice+in+Datteln+-+Germany%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360 degree image of a sluice in Germany]
* '''Mining Area''' <kbd>[https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg Förderturm_Zeche_Holland_Panorama.jpg]</kbd> -- [https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fb%2Fbf%2FF%25C3%25B6rderturm_Zeche_Holland_Panorama.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Foerderturm+der+Zeche+Holland%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A++++++++++ Förderturm der Zeche Holland] - link created with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] with [https://commons.wikimedia.org/wiki/File:F%C3%B6rderturm_Zeche_Holland_Panorama.jpg equirectangular image from WikiCommons].
* '''[https://github.com/r23/Virtual-Reality-Museum Museum]''' in [[3D Modelling|AFrame]]
* '''Zoo'''
* '''Nature/Environment''' <kbd>[https://niebert.github.io/HuginSample/img/rieselfelder1.jpg Rieselfelder Muenster, Germany]</kbd> with https://niebert.github.io/HuginSample/img/rieselfelder1.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Frieselfelder1.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Generated+with+WikiCommons2AFrame%22%2C%0D%0A++++%22color%22%3A%22blue%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Farm'''
* '''City''' <kbd>[https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg Saumarkt Karlsruhe-Durlach, Germany]</kbd> with https://niebert.github.io/HuginSample/img/durlach_saumarkt.jpg -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fniebert.github.io%2FHuginSample%2Fimg%2Fdurlach_saumarkt.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Durlach+-+Saurmarkt%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
* '''Kindergarten/Playground'''
* '''[http://www.digitales-forum-romanum.de/?lang=en Archeological Site]<ref>Digital Forum Romanum (2019) Humbold University, Berlin, URL: http://www.digitales-forum-romanum.de/?lang=en (accessed 2021/07/02)</ref>''' learning task is to create e.g. a small temple with [https://niebert.github.io/WikiCommons2AFrame WikiCommons2AFrame] and assign an [[equirectangular]] image to the 3D scene - see <kbd>[https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Aldara_parks.jpg/1280px-Aldara_parks.jpg Aldara_parks.jpg]</kbd> -- Generated Link for '''[https://niebert.github.io/WikiCommons2AFrame/wikicommons2aframe.html?domain=weblink&skyimage=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fd%2Fd8%2FAldara_parks.jpg&useaframecode=yes&aframecode=%7B%0D%0A++%22a-text%22%3A+%7B%0D%0A++++%22font%22%3A%22kelsonsans%22+%2C%0D%0A++++%22value%22%3A%22Aldara+Park%22%2C%0D%0A++++%22color%22%3A%22white%22%2C%0D%0A++++%22width%22%3A%226%22%2C%0D%0A++++%22position%22%3A%22-3.5+2.25+-2.5%22%2C%0D%0A++++%22rotation%22%3A%220+15+0%22%0D%0A++%7D%0D%0A%7D%0D%0A 360<sup>o</sup>-Image]'''
== Icon Sets for Learning Resource ==
* Use Icon Sets for your Learning Resource to express, what kind of interaction with the Real World Lab you expect from the learner.
== Learning Tasks ==
* '''([[Risk Literacy/Real World Labs/web-based Exploration|Web-based Exploration]])''' Analyze how a [[Risk Literacy/Real World Labs/web-based Exploration|web-based exploration]] can be used in conjunction with a real visit or preparation of the real visit of the real world lab.
* '''(Markers on a Map)''' Explore the [https://niebert.github.io/Markers4Map/ OpenSource HTML5 Tool] to create markers for your Real World Lab on a map. Use [https://niebert.github.io/Markers4Map/ Markers4Map] and create interesting geolocations on the map and explain e.g. what kind of experiments can be performed at the geolocation ([https://niebert.github.io/openlayer_display_markers/viewicons.html?mapcenter=-1.81185%2C+52.443141&zoom=5&jsondata=%5B%7B+%22geolocation%22+%3A+%5B-0.14467470703124907%2C51.493889053694915%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLondon%5C%22+target%3D%5C%22_blank%5C%22%3ELondon%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3ELondon+created+a+Open+Innovation+Ecosystem+for+SDG+Clean+Water+and+Sanitation%22%7D%2C%0D%0A%7B+%22geolocation%22+%3A+%5B-1.81185%2C51.243141%5D%2C%22name%22+%3A+%22%3Cb%3E%3Ca+href%3D%5C%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBirmingham%5C%22+target%3D%5C%22_blank%5C%22%3EBrimingham%3C%2Fa%3E%3C%2Fb%3E%3Cbr%3EBirmingham+created+SDG-activities+about+SDG7+Clean+and+affordable+Energy+and+SDG3+Health%22%7D%5D Example Map with two markers]).
* '''(Digital and Non-Digital Aspects of the RWL)''' Create a Real World Lab that allows learners and citzens to interact with the environment. Identify digital areas of exploration that augment the experience with real world environment.
** '''(Time)''' Explore the visual appearance of the location
*** '''(Winter)''' in winter by using [[Virtual Reality]], when it is summer and
*** '''(Summer)''' vice versa a [[Virtual Reality|VR experience]] of the location during summer when it is winter.
*** ''(History)'' explore visual experience of the location 50 years before (e.g. plants, buildings) or before/after flooding, ... (Disaster)
** '''(Scale)''' Explore visualisation
*** ''(Microscope)'' under the mircoscope as video of organisms, that can be found in the river,
*** ''([[Satellite Technology|Satellite Image]])'' explore satellite image of the region during extreme event due to [[Climate change|Climate Change]]
*** ''(Drone Video)'' provide a digital bird view or the region.
*** ''(Digital Maps)'' maps used to understand the geographical context of the Real World Lab
== See also ==
* [https://niebert.github.io/WikiCommons2AFrame/ WikiCommons2AFrame] - Open Source webbased tool for Wikiversity learning resources to create links for 360<sup>o</sup> degree images, that are stored in WikiCommons.
* [[AppLSAC]] for privacy-friendly data collection in Real World Labs, that allow offline data collection with in installed browser as runtime environment for the WebApp.
* [[Risk Literacy/Real World Labs]]
* [[Risk Literacy/Real World Labs/web-based Exploration]]
* [[Image_Map/Tutorial]]
* [[c:Category:3D Model - STL|3D Models STL in WikiCommons]] contains 3D models a file format STL - for integration of 3D models in learning resources in Wikiversity.
== References ==
<noinclude>[[de:Reallabor]]</noinclude>
[[Category:Real World Lab]]
[[Category:Virtual reality]]
[[Category:3D modeling]]
ds4zdbkh9g57xzo77pyai5alun1ywix
Image Map
0
229192
2718825
2215855
2025-06-17T13:01:13Z
Bert Niehaus
2387134
added [[Category:Navigating Information Landscapes]] using [[Help:Gadget-HotCat|HotCat]]
2718825
wikitext
text/x-wiki
[[File:Imgeditor screenshot.png|350px|thumb|[https://niebert.github.io/imgmap/index.html Online Image Map Editor] on GitHub]]
ImageMap in Wikiversity allows learners to explore a learning resource visually. This learning resource is designed for authors of learning resources in Wikiversity, that want to enhance learning resources with visual explorations of the content.
<imagemap>File:Annweiler Queich 05.JPG|<span style="color:#FF0000">Click on Water Wheel</span> - Image River: Queich, City: Annweiler, Country: Germany|350px|thumb
rect 1178 344 1508 1243 [[Wikipedia:Water_wheel|Water Wheel Link to Wikipedia]]
</imagemap>
[[File:Imagemap graph.png|thumb|350px|Image Map Graph for Navigation]]
== Objective ==
* [[/Tutorial/|'''Tutorial Online-ImageMap Editor:''' Learn to create an ImageMap for Wikiversity.]]
* [[/Navigation/|'''Navigation with ImageMaps:''' Learn to create a Learning Environment through which learner can "walk" / navigate by application of image maps]].
* '''Learning Resources in Image Maps:''' Learn to link learning resources to objects displayed on an image. Printout a selected image in light greyscale and paint the
** rectangles, circle, polygons on that image with numbers and
** assign learning resources and other images to that clickable area.
** create such an image map design for [[/Navigation/|all nodes in the navigation graph]].
== Learning Tasks ==
* Explore the concept of [[Real World Lab|Real World Labs]] with learning resources in Wikiversity attached to a geographical location. Explain how image maps can help to explore the geographical location!
* Place the images representing a certain geolocation on the map a create an icon for with the
** (Learning Resource) Wikiversity URL with the learning resource for that geolocation or
** (Image Map Page) with Image Map on the Wikiversity page. Users change from MAP-navigation to IMAGE-based navigation.
* Explore the [[GNU_Image_Manipulation_Program_(GIMP)/Image_maps|Image Map]] features and the requirments and constraints for learners<ref>Allen, R. (1998). The Web: interactive and multimedia education. Computer Networks and ISDN Systems, 30(16), 1717-1727.</ref> with the following examples
** [[w:Image_map|Image Map Example on Wikipedia]] - click on single person in painting on the right.
** You can create an Image Map in [https://help.libreoffice.org/Common/ImageMap_Editor LibreOffice] or [https://docs.gimp.org/en/plug-in-imagemap.html GIMP]. See Youtube Video for [https://www.youtube.com/watch?v=jnG0nJbAoSM GIMP] or you can try the [http://imagemap-generator.dariodomi.de/ Online image editor].
** Create ImageMaps with webbased tool [https://niebert.github.io/imgmap ImgMap]<ref>ImgMap - Webbased OpenSource Tool for creating ImageMap for Wikiversity (accessed 2017/10/24) - https://niebert.github.io/imgmap - Download; https://www.github.com/niebert/imgmap (Offline use of ImageMap Editor)</ref>, that does
* Select images for your Real World Lab (e.g. the image on the right with the river Queich) and create an image map that informs about the objects seen on the image (e.g. the water wheel or the river). The ImageMap editor will defined clickable areas on the image. Users explore the Real World Lab just by the web browser by selecting the river bed, or a building. By clicking on the river or the building the user can select further details of river or the building (view inside the building).
** Use the following URL in the [https://niebert.github.io/imgmap/index.html Online Image Map] originally created by Adam Maschek and forked and adapted (2017) for an improved application within Wikiversity.
::: [https://upload.wikimedia.org/wikipedia/commons/5/5e/Annweiler_Queich_05.JPG <kbd>https://upload.wikimedia.org/wikipedia/commons/5/5e/Annweiler_Queich_05.JPG</kbd>]
:* Mark the water wheel and create a reference to an online resource in Wikipedia, that explains this type of old technology.
:* Try other types of links that make a reference objects see on the image, e.g. a geographical map with a marker, that shows where the image was taken, or any other web-based resouce including quizzes, YouTube Videos, ...
== See also ==
[[File:Aldara parks.jpg|thumb|[https://niebert.github.com/HuginSample/Aldara_parks.html Equirectangular Image from Wikiversity used for Aframe 360 Degree Image] (see [[3D Modelling/Create 3D Models/Hugin|Hugin]])]]
* '''Real World Labs and ImageMaps:''' [[Real World Lab]] and visual exploration of geographical location with ImageMaps
* '''Technical Details of ImageMaps in Wikiversity:''' For further details see [[GNU_Image_Manipulation_Program_(GIMP)/Image_maps|GIMP Image Maps]] in Wikiversity.
* '''[[3D Modelling/Examples|360 Degree Images]]''' as an replacement for Image Maps (e.g. [https://niebert.github.io/HuginSample/ Durlach Market] or [https://niebert.github.io/HuginSample/Aldara_park.html Aldara Park])
* '''[[AppLSAC]]:''' The [https://niebert.github.io/imgmap Image Map Editor] to create image maps for Wikiversity is an [[AppLSAC]] - i.e. it is a WebApp that run complete in the browser as runtime environment for the Javascript code.
== Links ==
* '''[https://niebert.github.io/imgmap/index.html Online ImageMap Editor for MediaWikis]'''
** WebApp that does not upload any images to a server,
** ImgMap App is able to use online images in WikiMedia directly loaded into the WebApp.
== References ==
[[Category:Navigating Information Landscapes]]
fa7aejbksyevedwng1yhi2jzvvcb089
2718826
2718825
2025-06-17T13:01:23Z
Bert Niehaus
2387134
added [[Category:Navigation]] using [[Help:Gadget-HotCat|HotCat]]
2718826
wikitext
text/x-wiki
[[File:Imgeditor screenshot.png|350px|thumb|[https://niebert.github.io/imgmap/index.html Online Image Map Editor] on GitHub]]
ImageMap in Wikiversity allows learners to explore a learning resource visually. This learning resource is designed for authors of learning resources in Wikiversity, that want to enhance learning resources with visual explorations of the content.
<imagemap>File:Annweiler Queich 05.JPG|<span style="color:#FF0000">Click on Water Wheel</span> - Image River: Queich, City: Annweiler, Country: Germany|350px|thumb
rect 1178 344 1508 1243 [[Wikipedia:Water_wheel|Water Wheel Link to Wikipedia]]
</imagemap>
[[File:Imagemap graph.png|thumb|350px|Image Map Graph for Navigation]]
== Objective ==
* [[/Tutorial/|'''Tutorial Online-ImageMap Editor:''' Learn to create an ImageMap for Wikiversity.]]
* [[/Navigation/|'''Navigation with ImageMaps:''' Learn to create a Learning Environment through which learner can "walk" / navigate by application of image maps]].
* '''Learning Resources in Image Maps:''' Learn to link learning resources to objects displayed on an image. Printout a selected image in light greyscale and paint the
** rectangles, circle, polygons on that image with numbers and
** assign learning resources and other images to that clickable area.
** create such an image map design for [[/Navigation/|all nodes in the navigation graph]].
== Learning Tasks ==
* Explore the concept of [[Real World Lab|Real World Labs]] with learning resources in Wikiversity attached to a geographical location. Explain how image maps can help to explore the geographical location!
* Place the images representing a certain geolocation on the map a create an icon for with the
** (Learning Resource) Wikiversity URL with the learning resource for that geolocation or
** (Image Map Page) with Image Map on the Wikiversity page. Users change from MAP-navigation to IMAGE-based navigation.
* Explore the [[GNU_Image_Manipulation_Program_(GIMP)/Image_maps|Image Map]] features and the requirments and constraints for learners<ref>Allen, R. (1998). The Web: interactive and multimedia education. Computer Networks and ISDN Systems, 30(16), 1717-1727.</ref> with the following examples
** [[w:Image_map|Image Map Example on Wikipedia]] - click on single person in painting on the right.
** You can create an Image Map in [https://help.libreoffice.org/Common/ImageMap_Editor LibreOffice] or [https://docs.gimp.org/en/plug-in-imagemap.html GIMP]. See Youtube Video for [https://www.youtube.com/watch?v=jnG0nJbAoSM GIMP] or you can try the [http://imagemap-generator.dariodomi.de/ Online image editor].
** Create ImageMaps with webbased tool [https://niebert.github.io/imgmap ImgMap]<ref>ImgMap - Webbased OpenSource Tool for creating ImageMap for Wikiversity (accessed 2017/10/24) - https://niebert.github.io/imgmap - Download; https://www.github.com/niebert/imgmap (Offline use of ImageMap Editor)</ref>, that does
* Select images for your Real World Lab (e.g. the image on the right with the river Queich) and create an image map that informs about the objects seen on the image (e.g. the water wheel or the river). The ImageMap editor will defined clickable areas on the image. Users explore the Real World Lab just by the web browser by selecting the river bed, or a building. By clicking on the river or the building the user can select further details of river or the building (view inside the building).
** Use the following URL in the [https://niebert.github.io/imgmap/index.html Online Image Map] originally created by Adam Maschek and forked and adapted (2017) for an improved application within Wikiversity.
::: [https://upload.wikimedia.org/wikipedia/commons/5/5e/Annweiler_Queich_05.JPG <kbd>https://upload.wikimedia.org/wikipedia/commons/5/5e/Annweiler_Queich_05.JPG</kbd>]
:* Mark the water wheel and create a reference to an online resource in Wikipedia, that explains this type of old technology.
:* Try other types of links that make a reference objects see on the image, e.g. a geographical map with a marker, that shows where the image was taken, or any other web-based resouce including quizzes, YouTube Videos, ...
== See also ==
[[File:Aldara parks.jpg|thumb|[https://niebert.github.com/HuginSample/Aldara_parks.html Equirectangular Image from Wikiversity used for Aframe 360 Degree Image] (see [[3D Modelling/Create 3D Models/Hugin|Hugin]])]]
* '''Real World Labs and ImageMaps:''' [[Real World Lab]] and visual exploration of geographical location with ImageMaps
* '''Technical Details of ImageMaps in Wikiversity:''' For further details see [[GNU_Image_Manipulation_Program_(GIMP)/Image_maps|GIMP Image Maps]] in Wikiversity.
* '''[[3D Modelling/Examples|360 Degree Images]]''' as an replacement for Image Maps (e.g. [https://niebert.github.io/HuginSample/ Durlach Market] or [https://niebert.github.io/HuginSample/Aldara_park.html Aldara Park])
* '''[[AppLSAC]]:''' The [https://niebert.github.io/imgmap Image Map Editor] to create image maps for Wikiversity is an [[AppLSAC]] - i.e. it is a WebApp that run complete in the browser as runtime environment for the Javascript code.
== Links ==
* '''[https://niebert.github.io/imgmap/index.html Online ImageMap Editor for MediaWikis]'''
** WebApp that does not upload any images to a server,
** ImgMap App is able to use online images in WikiMedia directly loaded into the WebApp.
== References ==
[[Category:Navigating Information Landscapes]]
[[Category:Navigation]]
cjixgf5e7xtr7j78ixdwjx4ux9hbd2a
3D Modelling/Examples
0
229293
2718820
2283622
2025-06-17T12:49:15Z
Bert Niehaus
2387134
/* List of Examples */
2718820
wikitext
text/x-wiki
[[File:Hugin result in aframe.png|thumb|300px|[https://niebert.github.io/HuginSample/ AFrame Example Durlach] or [https://aframe.io/examples/showcase/sky/ AFrame Sample 360 Degree Image] - Look around by draging mouse with mouse button pressed]]
[[File:Water molecule aframe.png|300px|thumb|[https://niebert.github.io/JSON3D4Aframe/mods3d/water_molecule_aframe.html AFrame Water Molecule] created with [https://niebert.github.io/JSON3D4Aframe/ JSON3D4Aframe] ]]
[[File:Anaglyph glasses.png|thumb|Paper anaglyph 3D objects produce an 3D image at low cost without the requirement of IT - suitable for inclusion in paper based learning resources incorporating 3D views of a learning object.]]
[[File:Crystal lattice with hugin sky background.png|thumb|Screenshot of [https://niebert.github.io/HuginSample/crystal_lattice_sky.html Crystal Lattice with Hugin Sky Background in AFrame]. Use cursor keys to move crystal lattice.]]
[[File:Kanji marker_ARjs.png|300px|thumb|Kanji-Marker<ref>Kanji-Marker, der vom ARToolkit auf Github zur Verfügung gestellt wird (aufgerufen am 12.12.2017) - https://github.com/artoolkit/artoolkit5/blob/master/doc/patterns/Kanji%20pattern.pdf </ref> für AR.js - das 3D-Modell wird auf dem Marker im Kamerabild platziert.]]
The following learning resource generated to explore existing frameworks and examples on the web that use 3D modelling.
<!-- [[File:Sky Tower Auckland in AFrame Panorama.jpg|thumb|300px|Shows AFrame 3D Panorama in Browser of Sky Tower in Auckland - Fullscreen AFrame with Text in AFrame Model]] -->
== List of Examples ==
* '''[[/Panorama 360/|Panorama 360 Degree]]''' - sky projection in Aframe
* '''[[/3D with Primitives/]]''' - like a Water Molecule made of spheres
* '''[[/Web 3D Tour/]]''' - Virtual Tour Museum
* '''[[/AR with Markers/]]''' - [[Augmented Reality]] with Markers based on ''AR Tool Kit''
* '''[[/Red-Green Anaglyph/]]''' - Red-Green-Filter Glasses are necessary
* '''[[Real World Lab]]''' - Use 3D modelling as learning resources at specific geolocation.
* '''[[c:Category:3D Model - STL|3D Models in STL format]]''' - STL-Format is a file format of 3D models that is supported by WikiCommons. That allows the integration of 3D models in learning resources of Wikiversity.
== Learning Tasks ==
* '''([[Videoconferencing]] and [[3D Modelling]])''' Explore some examples and here and explain how 3D models can be used on markers with AR.js in a video conference. Explain how these 3D models got increased importance during home schooling scenarios during [[COVID-19]].
* '''([[Digital Filter]])''' Analyze the generic principles of digital filters and transfer the mechanism e.g. on anaglyph images, tranparent colours of objects in a 3D scene, to identify the 3D location of objects even if the objects are covered by other objects.
== External Examples ==
* '''[https://stemkoski.github.io/AR-Examples/ AR-Examples with AR.js]''' by [https://github.com/stemkoski Lee Stemlowski]
* '''[http://www.snappytree.com Create 3D Trees]<ref>Paul Brunt (2012) SnappyTree Demo Tree Generation URL: http://www.snappytree.com - GitHub-Repository: https://github.com/supereggbert/SnappyTree - (accessed 2021/05/07)</ref> - see also [https://github.com/supereggbert/SnappyTree GitHub-Repository].'''
== Applications ==
* '''[http://www.digitales-forum-romanum.de History Reconstructions]''' with the example of ancient [[Wikipedia:Forum_Romanum|Forum Romanum]]
== 360-Degree Video ==
* [https://www.youtube.com/watch?time_continue=105&v=--OGJdFF_pE Youtube Example of National Parks] - published by Google, select Fullscreen in Youtube Video and use the cursor buttons in the top right to look around in the video.
* [http://flimshaw.github.io/Valiant360/ Valiant 360 Degree Video]<ref>Charlie Hoey (2017) Valiant360 - 360 degree videos in browser, URL: http://flimshaw.github.io/Valiant360/ (accessed 2019/06/07)</ref> - See top video on the website and drag mouse to look around. Furthermore it contains a repository to create your own 3D videos. Learn how to create the video with Hugin (see also IEEE Viewport-adaptive navigable 360-degree video<ref>Corbillon, X., Simon, G., Devlic, A., & Chakareski, J. (2017, May). Viewport-adaptive navigable 360-degree video delivery. In 2017 IEEE international conference on communications (ICC) (pp. 1-7). IEEE.</ref>).
== Create your own 3D-Products ==
If you decide to create your own 3D products, then try learning moduls for OpenSource environments explained in ''[[3D Modelling/Create 3D Models|Create 3D-Models]]''
* [https://niebert.github.io/JSON3D4Aframe JSON3D4Aframe]
* [https://www.github.com/niebert/HuginSample HuginSample - Files for this Learning Resource]
== See also ==
* [https://niebert.github.io/JSON3D4Aframe/index.html WebApp JSON3D4Frame] to create 3D models with geometric primitives.
* [[Real World Lab]]
* [https://www.artoolkit.org/ AR-Toolkit]
* [https://github.com/jeromeetienne/AR.js/blob/master/README.md AR.js]
* [[3D Modelling/360 Degree Video|Create 360 Degree Video]]
* [[JSON Editor]]
* [[COVID-19/Workflow Transformation]]
* [[Stereoscopy/Left Eye - Right Eye]]
== References ==
[[Category:3D modeling]]
[[Category:Real World Lab]]
[[Category:AFrame]]
<noinclude>[[de:3D-Modellierung/Beispiele]]</noinclude>
srqwi28x3of7d3ydm6soeia2ldwplay
Social Victorians/Victorian Things
0
264334
2718940
2714046
2025-06-17T23:07:33Z
Scogdill
1331941
2718940
wikitext
text/x-wiki
= Victorian Things and Everyday Objects =
== Barristers and Solicitors ==
The men in the courtroom arguing the cases are barristers, the elite of their class and profession. They went to what we could call "prep" schools together, or with boys just like them. One might hire a solicitor, or have a solicitor on retainer, for regular, normal legal advice, as for weddings and wills, taxes and finances, real estate, and so on.
== Bathing Machines ==
Bathing machines were little wooden shacks or houses, usually on wheels, which allowed modest people a place to change to their swimming costumes and get into the water without being seen. The houses were lined up on the beach, and the users would go to their house, or the one they had rented, and enter it through a door facing the water. Inside were hooks for hanging clothing on and benches attached to the walls to sit on. When the users had changed and hung their clothing up on the hooks out of the reach of the water, the house could be rolled into the surf far enough that the users could swim out the front door and play in the water without having to stand, visible, in their swimming suits.
For much of the century women used the bathing machines and men swam nude, or at least it was common enough for men to swim nude that it would not have been shocking. There were swimming costumes for both men and women, however, which were knee-length dresses and shorts for the women, and a sleeveless top and shorts for the men. Likely to have been made of wool, they were heavy and bulky and probably itchy as well, but they covered much of the body and still were a great deal less cloth and structure than people's normal clothing.
In an email he wrote on this subject to the discussion list Savoynet, Larry Simons says, "Finally, it's worthy of mention that in the 1997 film Mrs Brown (also called Her Majesty, Mrs Brown in the USA), there is one scene in which Queen Victoria (played by Dame Judi Dench) goes for a swim and actually USES a bathing machine (http://us.imdb.com/Title?0119280)" (Simons "More on bathing machines").
Lewis Carroll mentions a bathing machine in "The Hunting of the Snark" and in ''Alice's Adventures Underground'', in the chapter called "Pool of Tears":<blockquote>"In that case, I can go back by railway." (Alice had been to the seaside once in her life, and had come to the general conclusion that, wherever you go to on the English coast, you find a number of bathing-machines in the sea, some children digging in the sand with wooden spades, then a row of lodging houses, and behind them, a railway station).</blockquote>
In a posting to Savoynet from the bathing-machine thread, J. L. Speranza points out these citations and says, "For more on bathing-machines, see Chapter 2, Note 6, of ''Alice's Adventures Underground'' in ''The Annotated Alice''; and ''The English Seaside'' by H. G. Stokes, 1947, pages 17-25" (Speranza "something between a large bathing-machine").
In Gilbert and Sullivan's ''Iolanthe'', the Lord Chancellor describes something as being in size "'something between a large bathing-machine / and a very small second-class carriage."
== Brand Names ==
* [[Social Victorians/Victorian Things#Popular Medicinal Products|Bayer aspirin]]
* [[Social Victorians/Victorian Things#Popular Medicinal Products|Coca Cola]]
* [[Social Victorians/Victorian Things#Encyclopaedia Britannica|Encyclopaedia Britannica]]
* [[Social Victorians/Victorian Things#Popular Medicinal Products|Heroin]]
* House of Worth
* [[Social Victorians/Terminology#Liberty Fabrics|Liberty Fabrics]]
* Pepsi Cola
* Vaseline: "the word 'vaseline' was introduced as a proprietary term by R. A. Chesebrough" in 1872. According to Morris Rosenblum, "It is found in British publications in 1874 and 1876." (Baring-Gould I 450, n. 13).
== Cartes des Visites, Visiting and Calls ==
=== Cartes des Visites ===
From Victoriana.com Study Center, "Fashions in Calling Cards (for Gentlemen) from Harper's Bazaar (C.1868)":
<blockquote>
"Visiting cards for the coming season are of unglazed card board, large and almost square. Tinted cards, especially buff, are fashionable. The lettering is in old English text, or in script. The expense of fifty cards is $3.50.
One corner of the card is turned down to denote the object of the visit. In different cities a different signification is attached to these broken cards. We give the custom of New York society. On the left hand upper corner the word Visite is engraved on the reverse side. This corner is turned downed, displaying the word on the front of the card to signify that an ordinary call is made. On the right hand corner is Felicitation, to be used when making a visit of congratulation on some happy event, such as a marriage, or the birth of a child. On the left lower side is Conge, or Good-by. The remaining corner is marked Condolence." (http://www.victoriana.com/library/ccard.html)
</blockquote>
E-bay had some silver cases, with chain handle, for carrying visiting cards.
=== Visiting and Calls ===
Judge Brack's early calls on the Tesmans in ''Hedda Gabler'' are daring and aggressive. According to Sally Mitchell, "morning calls" occurred between 3:00 and 5:00 P.M. "Morning," used in an expression like morning dress or morning coat, meant something like "daytime," the opposite of evening. Unless the calls were to acknowledge some event like a wedding, when they were likely to be no more than fifteen minutes, calls typically ran twenty minutes to half an hour. Judge Brack arrives early in the morning, as early as 7:30, even after a death in the family, which seems clearly indecent.
Food was not likely to be served.
'''???''' says it is proper to make morning calls no earlier than 11:00 A.M., though for many morning calls properly began at noon.
Mrs. Beeton discusses calls, as well.
Daniel Poole says,<blockquote>If you were not well acquainted with the callee, you made your call between three and four o'clock. If you were somewhat better acquainted, between four and five, and a good friend received you between five and six. ... Certainly, no one but a great intimate would presume to actually call in the ''real'' morning, i.e., before one o'clock. (68-69)</blockquote>
== Dictionaries, Encyclopedias and Other Reference Works ==
=== Dictionary of Slang ===
John Stephen Farmer. ''Slang and Its Analogues Past and Present: A Dictionary, Historical and Comparative, of the Heterodox Speech of All Classes of Society for More Than Three Hundred Years. With Synonyms in English, French, German, Italian, Etc''. Poulter, 1890. Vol. 1: ''Google Books'': https://books.google.com/books?id=A8xfcjboymkC. [Google Books incorrectly has ''Haterodox'' in the title.]
=== Encyclopaedia Britannica ===
It has been published in the United States since 1901, although the spelling has remained British.<ref name=":7">{{Cite journal|date=2023-01-08|title=Encyclopædia Britannica|url=https://en.wikipedia.org/w/index.php?title=Encyclop%C3%A6dia_Britannica&oldid=1132316500|journal=Wikipedia|language=en}} https://en.wikipedia.org/wiki/Encyclop%C3%A6dia_Britannica.</ref>
==== The 9th Edition ====
Here is a copy of the 9th edition at the ''Internet Archive'': [[iarchive:encyclopaedia-britannica-9ed-1875/I|https://archive.org/details/encyclopaedia-britannica-9ed-1875/]].
If the people who attended the [[Social Victorians/1897 Fancy Dress Ball|Duchess of Devonshire's 1897 fancy-dress ball]] did any research on the figures from the past or from art or mythology or the arts, the 9th edition of the Britannica offers an example of what kinds of information would have been available to them. (The idea of them doing personal research like this is unlikely — more likely might be that they or their costumier studied what art and portraits were available at the galleries they frequented.) In a sense, the Britannica represents higher level popular knowledge.
The 9th edition of the Britannica (1875–1889) — the "Scholar's Edition" — was the first edition written by men (almost exclusively) who were experts in their field and who could write well.<ref name=":7" /> [[Social Victorians/People/George Bernard Shaw|George Bernard Shaw]] said he read the 9th edition except for the articles about science.<ref>Kogan, Herman. ''The Great EB: The Story of the Encyclopædia Britannica''. The University of Chicago Press, 1958. Cited in https://en.wikipedia.org/wiki/Encyclop%C3%A6dia_Britannica.</ref> Some notable people who contributed articles (with the abbreviations used for authorship attribution) include the following:<ref>{{Cite web|url=https://www.1902encyclopedia.com/contributors.html|title=Important Contributors to Encyclopaedia Britannica, 9th Edition (1875-89) and 10th Edition (1902-03)|website=www.1902encyclopedia.com|access-date=2023-01-11}}</ref>
* Grant Allen (G.A.): "Mimicry"
* Amelia Blandford Edwards (A.B.E.): "Mummy"
* James George Frazer (J.G.F<small>R</small>.): "Pericles," "Taboo," "Totemism"
* Thomas Henry Huxley (T.H.H.): "'''Actinozoa'''," "'''Animal''' Kingdom," "'''Biology'''," "Evolution: Evolution in Biology"
* Prince Peter Alexeivitch, Prince Kropotkine (P.A.K.): "Moscow", "Nova Zembla [Novaya Zemlya]," "Odessa," "Siberia"
* Andrew Lang (A.L.): "'''Apparitions'''," "Family," "Molière"
* Thomas Babington, Lord Macaulay (M.): "Francis '''Atterbury'''," "John '''Bunyan'''," "Samuel Johnson," "Oliver Goldsmith," "William Pitt [the Younger]"
* Clements Robert Markham (C.R.M.): "Geography (Historical Geography)"
* James Clerk Maxwell (J.C.M.): "'''Atom'''," "Ether"
* William Minto (W.M.): "'''Byron'''," "'''Chaucer'''," "'''Dickens'''," "Poe," "Wordsworth"
* William Morris (W.M<small>O</small>.) and John Henry Middleton (J.H.M.): "Mural Decoration"
* Emilia F. S. Pattison, Lady Dilke (E.F.S.P.): "Jean Auguste Dominique Ingres"
* Lord Rayleigh (R.): "Optics, Geometrical" and "Wave Theory of Light"
* William Michael Rossetti (W.M.R.): "Bartolemé Esteban Murillo," "Percy Bysshe Shelley"
* George Edward Bateman Saintsbury (G.S<small>A</small>.): "Pierre '''Corneille'''," "Daniel '''Defoe'''," "Clément Marot," "Michel de Montaigne," "Jean Racine," "Jean-Jacques Rousseau," "François Marie Arouet de Voltaire"
* Eleanor Mildred Sidgwick (Mrs. Henry Sidgwick) (E.M.S.): "Spiritualism"
* Robert Louis Stevenson (R.L.S.): "Pierre Jean de '''Béranger'''"
* Algernon Charles Swinburne (A.C.S.): "John Keats"
*John Addington Symonds (J.A.S.): "Renaissance"
*William Thompson, Lord Kelvin (W.T<small>H</small>.): "'''Ether'''," "Elasticity," "Heat" [I can't find the byline, but the article ends with tables and a "Mathematical Appendix," so it's a little difficult to tell where it actually ends]
*Alfred Russell Wallace (A.R.W.): "'''Acclimatisation'''," "'''Distribution''' (Biology) - Introduction. Distribution of Animal Life"
The 25 volumes had<blockquote>thick boards and high-quality leather bindings, premier paper, and a production which took full advantage of the technological advances in printing in the years between the 1850s and 1870s. Great use was made of the new ability to print large graphic illustrations on the same pages as the text, as opposed to limiting illustrations to separate copperplates. Although this technology had first been used in a primitive fashion the 7th edition, and to a much lesser extent in the 8th, in the 9th edition there were thousands of quality illustrations set into the text pages, in addition to the plates.<ref>"Ninth edition, 1875–1889." {{Cite journal|date=2022-11-10|title=History of the Encyclopædia Britannica|url=https://en.wikipedia.org/w/index.php?title=History_of_the_Encyclop%C3%A6dia_Britannica&oldid=1121066541|journal=Wikipedia|language=en}} https://en.wikipedia.org/wiki/History_of_the_Encyclopædia_Britannica#Ninth edition, 1875–1889.</ref></blockquote>
The 11th edition (1911) continued the tradition of recruiting writers who had expertise and is also known for the quality of the writing.<ref name=":7" />
Until the ''Wikisource'' project on the ''Britannica'' is finished, perhaps the best online source is at the ''Internet Archive'':
* Index volume here:
* List of contributors for the 9th edition: https://archive.org/details/encyclopaedia-britannica-9ed-1875/Index%20193479114.23/page/491/mode/1up
Perhaps 500,000 pirated copies of this edition — "10,000 sets sold by Britannica and 45,000 authorized sets made in the US by Little, Brown in Boston and Schribners' Sons in NY"<ref>{{Cite journal|date=2023-01-08|title=Encyclopædia Britannica|url=https://en.wikipedia.org/w/index.php?title=Encyclop%C3%A6dia_Britannica&oldid=1132316500|journal=Wikipedia|language=en}} [[wikipedia:Encyclopædia_Britannica|https://en.wikipedia.org/wiki/Encyclop%C3%A6dia_Britannica#Edition summary]].</ref> — were made in the US.
==== The 10th Edition ====
The 10th edition (1902–1903) was the first managed and owned by Americans. It is "an eleven-volume supplement (including one each of maps and an index) to the 9th, numbered as volumes 25–35."<ref>{{Cite journal|date=2023-01-08|title=Encyclopædia Britannica|url=https://en.wikipedia.org/w/index.php?title=Encyclop%C3%A6dia_Britannica&oldid=1132316500|journal=Wikipedia|language=en}} [[wikipedia:Encyclopædia_Britannica|https://en.wikipedia.org/wiki/Encyclop%C3%A6dia_Britannica#1901–1973]].</ref> The supplement revised the articles to be more current at the beginning of the 20th century, may have increased the coverage of North America in deference to its American readers.
John Muir wrote the article on Yosemite for the 10th edition.
== Drugs ==
Depending upon when, of course, drugs that were not regulated and products that were generally available that would not be now:
*Arsenic
*Laudanum
*Cocaine
*Coca wine
*Heroin
According to [[Social Victorians/People/Waite|A. E. Waite]], [[Social Victorians/People/Less-Famous People Involved in Spiritualism#Walter Moseley|Walter Moseley]]'s "health had been seriously damaged by the use of drugs for occult purposes" (Howe 85 39, n. 3). Possibly [[Social Victorians/People/William Butler Yeats|W. B. Yeats]] had injections of ground-up "monkey glands" in order to increase his masculinity (is this true?).
Baring-Gould speaks of Sherlock Holmes, as always, as if he were a biographical rather than fictional character:
<blockquote>
Dr. Kohki Naganuma has questioned ("Sherlock Holmes and Cocaine") Holmes' use of cocaine by hypodermic injection at this time since "Karl Ludwig Schleich, of Berlin, [was] the first surgeon to use cocaine solution in hypodermic injection [in 1891].] But Dr. Julian Wolff has replied ("A Narcotic Monograph") that "although Schleich is usually given credit for priority in the use of cocaine by injection, actually the credit should go to a great American surgeon. The first such use of cocaine was not in 1891 by Schleich, as is generally supposed, but in 1884, by Dr. William S. Halsted. … 1884 was early enough so that it was no anachronism for Holmes to be taking cocaine injections when Watson said he was."
It should be pointed out that, at this time, there was no popular prejudice against drug-takers. As Mr. Michael Harrison has written (In the Footsteps of Sherlock Homes): "In Holmes' day, not only was the purchase of most 'Schedule IV' drugs legal; Madeleine Smith and Mrs. Maybrick bought their arsenic; De Quincey and Dickens and Robert Louis Stevenson, their laudanum; with no more trouble than that with which they purchased their tooth-powder. No 'Dangerous Drug Act' had been passed, in its original form when Holmes bought and took his cocaine in doses that Watson's description of the typical cocaine-addition syndromes indicate to have been heavy ones. (Holmes probably purchased his supplies from either John Taylor, Chemist, at the corner of George Street and Baker Street — east side — or of Curtis and Company, No. 44, on the west side) …." (Baring-Gould I 610, n. 1; all editorial marks are ''sic).''
</blockquote>
=== Popular Medicinal Products ===
[[File:Bayer Heroin bottle.jpg|thumb|Bottle of heroin produced by Friedr. Bayer & Co.]]
==== Beecham's Pills ====
The 1909 ''Secret Remedies: What They Cost and What They Contain'' says that a box of Beecham's Pills, "advertised to be worth a guinea, is sold for 1s. 1 1/2 d., and the prime cost of the ingredients of the 56 pills it contains is about half a farthing. ... The pills had an average weight of 11/4 grains, and analysis showed them to consist of aloes, ginger and soap ; no other medicinal ingredient was found." It lists the ingredients for each pill thus:
:Aloes... ... ... ... ... 0.5 grain.
:Powdered ginger... ..... 0.55 "
:Powdered soap... ... ... 0.18 "
Liz Calvert Smith says that "aloes are 'a bitter purgative drug, condensed from the juice of the leaves of various species of Aloes'" (Smith 2003).
==== Coca wine ====
Coca wine, developed in the mid-19th century, contained cocaine and wine.<ref name=":5">{{Cite journal|date=2022-04-08|title=Coca wine|url=https://en.wikipedia.org/w/index.php?title=Coca_wine&oldid=1081528920|journal=Wikipedia|language=en}} https://en.wikipedia.org/wiki/Coca_wine.</ref> It seems to have been produced by local pharmacists from a standard formula. As the US began prohibition, the wine in the mixture had to be replaced. One Georgia pharmacist replaced the wine with a sugar syrup, making the original recipe for Coca Cola.<ref name=":5" /> Lindsey Fitzharris says that one brand of coca wine, Vin Mariani (the same formulation used by the pharmacist in Georgia), "was enjoyed by Jules Verne, Alexander Dumas & Arthur Conan Doyle" and Thomas Edison, and that it "contained 6 mg of cocaine per fluid ounce."<ref>Fitzharris, Lindsey @DrLindseyFitz. ''Twitter'' 27 December 2022 11:07 a.m. https://twitter.com/DrLindseyFitz/status/1607785196987752448 (accessed December 2022).</ref>
==== Heroin ====
Although C. R. Alder Wright synthesized what we now call heroin in 1874, nothing was done with the invention beyond one test on animals.<ref name=":6">"History." {{Cite journal|date=2022-12-22|title=Heroin|url=https://en.wikipedia.org/w/index.php?title=Heroin&oldid=1128826316|journal=Wikipedia|language=en}} [[wikipedia:Heroin|https://en.wikipedia.org/wiki/Heroin#History]].</ref> Felix Hoffmann, who was working for pharmaceutical company Friedr. Bayer & Co. in Germany, re-invented the chemical independently, 11 days after he had synthesized aspirin for the first time, 21 August 1897.<ref name=":6" /> Bayer lost trademark rights to heroin and aspirin after Germany's defeat in World War I.<ref name=":6" />
== Electricity ==
1880: Electricity "would have been theoretically possible [in England] at any time after 1880 but in practice it was most unlikely, for the original legislation was most restrictive and the first supply companies found it practically impossible to function. Only later in the eighties / were the restrictions removed." (Baring-Gould II 566-67, n. 19).
1894: Electricity was available in Hampstead (Baring-Gould II 567, n. 19).
The newspapers reported as people had electricity installed in their houses. Richard D'Oyly Carte is said to have had the first house in London to have electricity and an elevator, and the Savoy Theatre, which he built, was the first public building to be lit only with electricity. The Savoy Hotel was the first to be lit with electricity and the first to have electric elevators. Electric lights were used for the coronation of King Edward VII; Queen Consort Alexandra's coronation dress had silver threads in the weft, making it quite a statement under the electric lights in Westminster Abbey.
== Food ==
=== Punch ===
Punch was a drink served cold or at room temperature in glasses, often colored or flavored by the citrus fruits currently in season. In 1889, Mrs. Beeton says of punch,
<blockquote>Punch is a beverage made of various spirituous liquors or wine, hot water, the acid juice of fruits, and sugar. It is considered to be very intoxicating; but this is probably because the spirit being partly sheathed by the mucilaginous juice and the sugar, its strength does not appear to the taste so great as it really is. Punch, which was almost universally drunk among the middle classes about fifty or sixty years ago, has almost disappeared from our domestic tables, being superseded by wine. There are many different varieties of punch. It is sometimes kept cold in bottles, and makes a most agreeable summer drink. In Scotland, instead of the Madeira or sherry generally used in its manufacture, whiskey is substituted, and then its insiduous properties are more than usually felt. Where fresh lemons cannot be had for punch or similar beverages, crystallised citric acid and a few drops of the essence of lemon will be very nearly the same thing. In the composition of "Regent's punch," champagne, brandy and veritable Martinique are required; "Norfolk punch" requires Seville oranges; "milk punch" may be extemporised by adding a little hot milk to lemonade, and then straining it through a jelly-bag. Then there are "Wine punch," Tea-punch" [sic] and "French punch," made with lemons, spirits, tea and wine, in fantastic proportions. But of all the compounds of these materials, perhaps for a summer drink, the North-American "mint julep" is the most inviting. Captain Marryat gives the following recipe for its preparation: — "Put into a tumbler about a dozen sprigs of the tender shoots of mint; upon them put a spoonful of white sugar, and equal proportions of peach and common brandy, so as to fill up one third, or, perhaps, a little less; then take rasped or pounded ice, and fill up the tumbler. Epicures rub the lips of the tumbler with a piece of fresh pineapple; and the tumbler itself if very often encrusted outside with stalactites of ice. As the ice melts, you drink." The Virginians, says Captain Marryat, claim the merit of having invented this superb compound; but, from a passage in the "Comus" of Milton, he claims it for his own country. (Beeton 1889 1220-21)</blockquote>
=== Biscuits ===
Mrs. Beeton covers biscuits in her ''Book of Household Management'' and provides a page of illustrations (1109). Biscuits are both sweet and savory, depending on the recipe, what Americans might call both cookies and crackers.
== Grooming and Hygiene ==
Macassar Oil
== Mail ==
"In downtown London, in Holmes' and Watson's day, there were as many as twelve postal deliveries a day, and in Baker Street there were six. There were no Sunday deliveries, however -- if one wanted to send a message on the Sabbath, he found it necessary to hire a commissionaire or some other special messenger" (Baring-Gould I 349, n. 17).
== Money ==
The denominations:
* Penny
* Shilling
* Pound
In "A Case of Identity," Sherlock Holmes says to Miss Mary Sutherland, "I believe that a single lady can get on very nicely upon an income of about sixty pounds." Baring-Gould says that this is a "highly revealing statement on the cost of living in Britain in the 1880's. A single lady could then get on very nicely upon an income of about sixty pounds -- about $300 -- a year" (Baring-Gould I 407 and n. 13).
John Watson appears to have had his practice in the [[Social Victorians/Places#Paddington|Paddington district]]:<blockquote>It is impossible to say in which of Paddington's many streets Watson lived; he could have lived in Eastbourne Terrace, which runs alongside the west wall of Paddington Station, and connects Praed Street with Bishop's Bridge Road. ... It is far more likely that Watson lived across Praed Street, in Spring Street or London Street or even in Norfolk Square, which is separated from Praed Street only by a block of houses. He would thus be near neough to the Station to be known to the staff, which sufficiently removed from the traffic of Praed Street to enjoy a certain amount of quiet. His rent would have been (for a three-storeyed house in, say Spring Street) about £60 [$300] per annum; a four-storeyed house in nearby Norfolk Square would have been about £80 [$400]; both figures exclusive of rates" (Baring-Gould II 153-54, n. 2, quoting Michael Harrison; ellipsis mine, interpolations his).</blockquote>Resources for understanding Victorian finances
* Inflation Calculator. Bank of England. Internet Archive: https://web.archive.org/web/20090324044204/http://www.bankofengland.co.uk/education/inflation/calculator/flash/index.htm (retrieved October 2020).
== Newspapers ==
[[Social Victorians/Newspapers|Newspapers]] and magazines are on their own page, with places to find them and some of the people in the industry.
== Ostrich Plumes and Prince of Wales's Feathers ==
For much of the late 18th and 19th centuries, white ostrich plumes were central to fashion at court, and '''at a certain point in the 19th century''' they became required for women being presented to the monarch and for their sponsors.
Separately, a secondary heraldic emblem of the Prince of Wales has been a specific arrangement of 3 ostrich feathers in a gold coronet<ref>{{Cite journal|date=2022-11-07|title=Prince of Wales's feathers|url=https://en.wikipedia.org/w/index.php?title=Prince_of_Wales%27s_feathers&oldid=1120556015|journal=Wikipedia|language=en}} https://en.wikipedia.org/wiki/Prince_of_Wales's_feathers.</ref> since King Edward III (1312–1377<ref>{{Cite journal|date=2022-12-14|title=Edward III of England|url=https://en.wikipedia.org/w/index.php?title=Edward_III_of_England&oldid=1127343221|journal=Wikipedia|language=en}} https://en.wikipedia.org/wiki/Edward_III_of_England.</ref>). Although they were both called Prince of Wales's feathers, the fashionable plumes worn at court by women and this official part of the Prince of Wales's heraldry have a complex relationship, especially in the 18th century.
In her "'Falling into Feathers': Jews and the Trans-Atlantic Ostrich Feather Trade," Sarah Abrevaya Stein says that the ostrich-feather industry<blockquote>
was shaped by — and in turn influenced — imperial policy and social realities in the Russian and British empires; the complex social and economic constitution of colonial Africa; the growing importance of global, trans-Atlantic, and colonial trade; and the whims and politics of women's fashion. And it was fostered primarily by Jews, who were instrumental in nurturing the popularity and exchange of this commodity over oceans, political boundaries, and cultural and linguistic divides.<ref name=":4">Stein, Sarah Abrevaya. "'Falling into Feathers': Jews and the Trans-Atlantic Ostrich Feather Trade." ''The Journal of Modern History'' December 2007 (Vol. 79, No. 4): 772–812. DOI: https://doi.org/10.1086/521065 (accessed December 2022). Stable url: https://www.jstor.org/stable/10.1086/521065.</ref> (774)</blockquote>
It appears that the fashion for wearing plumes in headdresses was imported from France in the last half of the 18th century, before the French revolution, when so much of what people wore signified political allegiance. Miriam Handley refers to an image from 1786 of George, Prince of Wales and "eight well-known aristocratic ladies, seven of whom wear the feather .... The image alludes to Gay’s ''The Beggar’s Opera'', III. xvii and uses the feather to imply the sexual relationship between the Prince and the women."<ref name=":8">Handley, Miriam. "Flying the Feather: George, Prince of Wales and the Performance of Masculinity on the Late-Eighteenth-Century Stage." ''European Drama and Performance Studies'', n° 10, 2018 – 1, ''Masculinité et théâtre'': 29–49. DOI: [https://classiques-garnier.com/european-drama-and-performance-studies-2018-1-n-10-masculinite-et-theatre-flying-the-feather.html 10.15122/isbn.978-2-406-07790-9.p.0029].</ref> (30, n. 4) One link, then, between the Prince of Wales and aristocratic women is the implication that women who wore the feather were "his." The ostrich plume was eventually used in political cartoons and comic theatre in the 18th century to associate the Prince of Wales and fashionable women with complexities in the performance of masculinity, appropriation by women for social status, power and political opposition, and freedom and enslavement. Handley says, "as the image of [a double-gendered] Chevalier suggests, the feather in the late 1770s was seen as the crowning touch to an extravagant head-dress. Plays and caricatures derived much comedy from these head-dresses, which were worn first by Macaronis returning from their European Grand Tours, ... and subsequently by fashionable aristocratic women in the early 1770s."<ref name=":8" /> (35)
The "popular women's fashion" of white ostrich plumes spread widely among the fashionable in Europe and North America:<blockquote>A variety of feathers, including those of the ostrich, adorned the hats and clothes of elite European and American women from at least the second half of the eighteenth century, when Marie Antoinette introduced a minor ostrich feather craze among elite women by wearing towering plumes atop her hats. The thirst for feathers endured among members of the aristocracy throughout the late eighteenth and early nineteenth centuries. But ostrich feathers were not widely employed by the fashion world until the 1880s. This was a decade in which women were gaining ever more opportunity and desire to consume ....<ref name=":4" /> (778)</blockquote>
=== Late 18th and Early 19th Centuries ===
Women wore plumes at the court of Charlotte, Queen Consort of George III. The January 1810 ''La Belle Assemblée'' reports that the Duchess of Leeds headdress was a "Caledonian cap of crimson velvet, diamonds, and ostrich feathers."<ref name=":0">Qtd. in Rachel Knowles. "Drawing Room Presentations — A Regency History Guide." ''Regency History'' 27 October 2021<nowiki/>https://www.regencyhistory.net/2021/10/drawing-room-presentations-regency.html (accessed November 2022).</ref> Charles Lamb's 1809 ''Book Explaining the Ranks and Dignities of British Society''. says, "Feathers are not reckoned a necessary part of a court dress; but young ladies very seldom go without them, and they are supposed to be under dressed if they do.<ref name=":0" />
The ''Lady’s Magazine'' mentions the headdress worn by the Countess of Carlisle in January 1809: "Head-dress, ruby turban, jewels, and feathers."<ref name=":1">Candice Hern. "Court Dresses, Overview." ''Regency World'' https://candicehern.com/regencyworld/court-dresses-overview/ (accessed November 2022).</ref> Every illustration on "Court Dresses, Overview" in Candice Hern's blog ''Regency World'' — and they are all tinted fashion plates — shows a woman wearing plumes. Most of the plumes on this page are white, but one plate from March 1806 shows plumes dyed to match the dress, and most of the drawings show a few feathers (perhaps 3) but one plate from July 1820 has a positive efflorescence of plumes in the headdress.<ref name=":1" />
=== Victorian Era ===
The three white plumes so like the Prince of Wales's feathers were not universal in early June 1853 at the first Queen's drawing room of the year.<ref>"Her Majesty's Drawing-Room." ''The Court Journal'' 4 June 1853, Saturday: 354, Col. 1a – 363, Col. 3c; 366, Col. 2a – 372, Col. 1a. ''Google Books'' [https://www.google.com/books/edition/The_Court_Journal/JKhUGEnNVTwC?hl=en&gbpv=1&dq=three+white+ostrich+plumes+at+court&pg=PA371&printsec=frontcover https://www.google.com/books/edition/The_Court_Journal/JKhUGEnNVTwC] (accessed December 2022).</ref> Many but not all of the women present did wear white plumes, and not all the plumes were white.
What was first fashionable and then de rigeur at court evolved and then reified by the end of the 19th century. First published in 1893, Lady Colin Campbell's ''Manners and Rules of Good Society'' (1911 edition) says that<blockquote>
It was compulsory for both Married and Unmarried Ladies to Wear Plumes. The married lady’s Court plume consisted of three white feathers. An unmarried lady’s of two white feathers. The three white feathers should be mounted as a Prince of Wales plume and worn towards the left hand side of the head. Colored feathers may not be worn. In deep mourning, white feathers must be worn, black feathers are inadmissible.
White veils or lace lappets must be worn with the feathers. The veils should not be longer than 45 inches.<ref>{{Cite web|url=https://www.edwardianpromenade.com/etiquette/the-court-presentation/|title=The Court Presentation|last=Holl|first=Evangeline|date=2007-12-07|website=Edwardian Promenade|language=en-US|access-date=2022-12-18}} https://www.edwardianpromenade.com/etiquette/the-court-presentation/.</ref></blockquote>
In ''Plumes: Ostrich Feathers, Jews, and a Lost World of Global Commerce'', Sarah Abrevaya Stein says, "Ostrich feathers were valuable commodities at the beginning of the twentieth century, their value per pound almost equal to that of diamonds."<ref name=":2">Qtd in {{Cite web|url=https://www.cityoflondon.gov.uk/things-to-do/history-and-heritage/london-metropolitan-archives/collections/cityoflondon.gov.uk/things-to-do/history-and-heritage/london-metropolitan-archives/collections/ostrich-feather-trade|title=Ostrich feather trade|website=City of London|language=en|access-date=2022-12-22}} https://www.cityoflondon.gov.uk/things-to-do/history-and-heritage/london-metropolitan-archives/collections/ostrich-feather-trade.</ref> Stein says, "Ostrich feathers could be found wherever there were arbiters of style: a consignment of £20,000 worth of the plumes was even lost" when ''Titanic'' sank.<ref name=":4" /> (780) When ostrich feathers first became popular in the west, the birds were hunted and killed for their plumage, but by the end of the 19th century they were farmed and the plumes plucked.
The labor force was in some cases highly skilled and specialized: <blockquote>London acquired the monopoly on European ostrich feather auctions in 1876, just as the feather market — and London's merchant house economy — was expanding. ... At about the same time, London was absorbing roughly 15,000 Eastern European Jewish immigrants: men, women, girls, and boys who furnished a bountiful labor market to the feather trade. ... Due in great part to this influx of immigrants, Jews quickly proved well represented in all tiers of the supply side of Britain's feather industry. Jewish girls and women were the principal unskilled, semiskilled, and skilled workers to staff the hundreds of feather manufactories that dotted London's East End, and Jewish men were well represented among ostrich feather dealers and manufacturers in the British capital, constituting, in 1883, 57 percent and 43 percent of these occupational niches, respectively.<ref name=":4" /> </blockquote>
The labor force associated with ostrich plumes was largely "immigrant Jewish women and girls who had experience in the needle trades. Workers suffered poor wages and were often subject to the abuse of their rights by employers."<ref name=":3" /> Before the 20th century, this industry was "concentrated in a one-mile radius from the City of London into the East End. In particular, around the Barbican, Aldersgate, London Wall, Jewin Street, Cripplegate, Bartholomew Close, and the Fenchurch Street area."<ref name=":3" />
=== Post-Edwardian Era ===
Besides people working in the ostrich-feather industry itself, milliners also needed the skills for working with the plumes. From the immediately post-Edwardian era, this book addresses not the plumes worn at court but attached to the hats of the fashionable:<blockquote>Prince of Wales feathers ... consist of three small ostrich feathers, one placed high in the center and the other two placed just below, so that the flues of the two lowest feathers will cover the stem of the one at the top. They are frequently referred to as the Prince de Galles. The Prince of Wales tips are used for trimming hats for the mature woman and are quite frequently separated and used to encircle the crown of a wide-brimmed hat for a younger woman. In case they are used in this manner the wire items should be cut off and the back of the feather sewed firmly to the hat. Small feathers that are attached to the side crown of the hat should be sewed on with silk floss matching the feather in color. Sew over the stem but not through it, so that, / after the entire hat is trimmed, each feather may be twisted and turned to its proper position.<ref>Cné, Orna. "Flowers and Feathers." "Natural and Man-Made Feathers." Children and Misses' {{Cite book|url=https://books.google.com/books?id=Ak08AQAAMAAJ&newbks=0&printsec=frontcover&pg=RA5-PA28&dq=Prince+of+Wales+plumes+women+headdress&hl=en|title=Woman's Institute Reference Library ... V. A7-A9|last=millinery|first=Woman's Institute of Domestic Arts and Sciences Department of|date=1916|publisher=International textbook Company|language=en}} 1916. Google Books [https://www.google.com/books/edition/Woman_s_Institute_Reference_Library_V_A7/Ak08AQAAMAAJ?hl=en&gbpv=1&dq=Prince+of+Wales+plumes+women+headdress&pg=RA5-PA28&printsec=frontcover https://www.google.com/books/edition/Woman_s_Institute_Reference_Library_V_A7/Ak08AQAAMAAJ?hl=en&gbpv=1&dq=Prince+of+Wales+plumes+women+headdress&pg=RA5-PA28].</ref>{{rp|28–29}}</blockquote>
=== The Crash ===
The market for ostrich plumes rose and fell several times: two years in which the plumes were not fashionable were 1885 and 1913.<ref name=":3">{{Cite web|url=https://www.cityoflondon.gov.uk/things-to-do/history-and-heritage/london-metropolitan-archives/collections/cityoflondon.gov.uk/things-to-do/history-and-heritage/london-metropolitan-archives/collections/ostrich-feather-trade|title=Ostrich feather trade|website=City of London|language=en|access-date=2022-12-22}} https://www.cityoflondon.gov.uk/things-to-do/history-and-heritage/london-metropolitan-archives/collections/ostrich-feather-trade,</ref> The fashion for prior years had used plumes and feathers of other birds to "excess," as the 6 January 1886 ''Pall Mall Gazette'' put it.<ref name=":2" /> The Plumage League was founded in 1885, "a predecessor of the Royal Society for the Protection of Birds."<ref name=":3" />
Stein says,<blockquote>1913 proved a peak year for feather sales, but their popularity was not to endure long: feathers would soon be rejected by consumers on both sides of the Atlantic. This shift in taste ws at one aesthetic, political, and economic. It was prompted by several related factors: the success of the antiplumage and bird protection movement; an emerging sense of austerity in women's fashion catalyzed, in part, by the outbreak of the First World War; and the extensive oversupply of ostrich plumes.<ref name=":4" /> (802)</blockquote>
=== Questions about Ostrich Plumes and the Prince of Wales's Feathers ===
# At some point, women being presented at court were expected to wear a headdress with 3 white ostrich-feather plumes. When did this occur?
# At some point, did the court style of the feathered headdress became associated with the Prince of Wales' heraldic badge of the three ostrich-feather plumes?
== Phonograph, Gramophone, etc. ==
In "England in 1903, ''gramophone'' distinctly meant the Berliner-Gramophon & Typewriter disc machine, while cyclinder [sic] machines were known as ''phonographs'' or ''graphophones''." (Baring-Gould II 745, n. 15).
See also [[Social Victorians/Victorian Things#Electrophone|Electrophone]].
== Photography ==
*Daguerrotype
*Frames for photographs were common wedding gifts, and in the lists of gifts, reporters are likely to use the term ''photo'' as well as ''photograph frame''.
== Police Business ==
Francis Galton gave a paper "to the British Association … on Finger-prints and the Detection of Crime in India. Galton's method was examined by a committee appointed by Asquith in 1894. … Finger-prints as a means of detecting criminals were first used by Sir William Herschel of the I.C.S. in the district of Hooghli, in Bengal. They were recognized as superior to Bertillon's anthropometry, and were recommended for all India in a report of 1896." (Baring-Gould II 425, n. 9, quoting Vernon Rendall). Fingerprinting was adopted by Scotland Yard ikn 1901 (Baring-Gould II 425, n. 9).
== Retailers ==
* [[Social Victorians/Victorian Things#Edouard Henry Dreyfous|Edouard Henry Dreyfous]]
* [[Social Victorians/People/Dressmakers and Costumiers#Worth, of Paris|Worth, of Paris]]
=== Edouard Henry Dreyfous ===
A "retailer of fine antique furniture and objets d’art with establishments in London (Mayfair), Paris and New York[, Dreyfous] was active in the late 19th century, from 1880, through early in the 20th century."<ref name=":9">"A Very Fine and Rare french 19th Century Louis XV Style Etched Glass, Ormolu and Porcelain (Probably by Sèvres) Encrier Inkwell by E''douard Henry Dreyfous''." Jan's & Co., Inc.: Fine French Antiques & Ojects d'Art. 17 June 2025 https://www.jansantiques.com/Lot/jac2520.php.</ref> Born in France, "Dreyfous called London his home and sold fine furnishings and objets d'art."<ref name=":9" /> He held a Royal Warrant (in the early 20th century at least), and his "main clientele were some of the richest, most affluent and influential people from around the world, including Royalty," like Queen Alexandra and Queen Mary.<ref name=":9" />
Three gifts identified as having come from Dreyfous were given to [[Social Victorians/Stewart-Stavordale Wedding 1902-01-25|Lady Helen Stewart at her 1902 marriage to Lord Stavordale]], a green leather blotter apparently bought from Dreyfous as well as 2 trays.
== Sequins and Spangles ==
Sequins have holes in the center and spangles at the top; paillettes are large and flat.
Sequins themselves have a long history and were probably mass-produced by the end of the 19th century. The silver ones like the ones used in the Duchess of Devonshire's costume in 1897 were useful in garments worn only once because they would have tarnished, turning black and dull.
Sequins in one form or another have been used to decorate clothing, especially for the elite, for millennia (dating back to the Egyptians, discovered during and popularized by the opening of King Tutenkhamen's tomb in 1922<ref>Spivack, Emily. "A History of Sequins from King Tut to the King of Pop." ''Smithsonian Magazine'' 28 December 2012. https://www.smithsonianmag.com/arts-culture/a-history-of-sequins-from-king-tut-to-the-king-of-pop-8035/ (accessed December 2022).</ref>).
== Servants and Household Staff ==
Sally Mitchell says that "The most typical middle-class urban household had three female servants: cook, housemaid, and nursemaid. The cook was in charge" (Mitchell 52). <blockquote>When there were only two or three servants, the cook cleaned the kitchen and dining room and swept the outside steps; she might also look after children for part of the day. ...
Housemaids swept, dusted, and cleaned. If there were no menservants, the housemaids carried coal and tended fires; even if there were menservants, housemaids would be responsible for the fires in the bedrooms used by women and children. They also carried water upstairs, saw to baths, emptied slops, and looked after lamps. (Mitchell 54)
The standard outfit for female servants consisted of a washable cotton dress (usually of striped or printed material) with a full-length apron and a white cap, which was worn in the morning while cleaning. Servants who might be visible during the afternoons wore a black dress with a fancier cap and apron. (Mitchell 56) </blockquote>In England, "servants made up 16% of the national workforce in 1891" (Poole 1993 220).
At the end of the 1890s, in a household in the Paddington district in London, the staff might have been paid the following:
*cook £30 a year
*house parlormaid between £18 to £15 a year
*tweeny between £10 to £15 a year
(Baring-Gould II 225, n. 3, quoting M. Harrison)
== Telephone and Telegraph ==
"The telegram rate to France of twopence a word was introduced in 1889 and continued until 1920, when it changed to twopence halfpenny; the rate to Switzerland at the time was threepence a word (it dropped to twopence halfpenny in 1909 but reverted to threepence in 1926)." (Baring-Gould II 658, n. 6, quoting Kaser).
=== Electrophone ===
On Monday, 11 May 1896,<blockquote>An electrophone has been installed at Marlborough House, whereby the Prince of Wales and family on Monday listened to the Drury Lane opera and selections from other pieces in various London theatres.<ref>"Latest Home News by the 'Carthage.'" ''Civil & Military Gazette'' (Lahore) 12 May 1896, Tuesday: 4 [of 18], Col. 1b [of 4]. ''British Newspaper Archive'' https://www.britishnewspaperarchive.co.uk/viewer/bl/0003221/18960512/036/0004. Same print title and p.</ref></blockquote>
== Typewriter ==
=== Typewriter Manufacturers ===
*Berliner-Gramophon & Typewriter
*Remington
=== Writers and Their Typewriters ===
==== [[Social Victorians/People/William Butler Yeats|W. B. Yeats]] ====
Yeats wrote "The Second Coming" on a typewriter? In these comments, a ''typewriter'' is a person, not a machine:
*letter WBY to Lady Gregory, 10 April 1902, from 18 Woburn Bldgs: "I am working at my novel — dictating to a typewriter. I dictated 2000 words in an hour and ten minutes yesterday — and go on again tomorrow. This dictation is really a discovery" (Wade 370).
*letter WBY to Lady Gregory, 3 April 1905, from 8 Cavendish Row, Dublin: "You will be sorry to hear that I have just dictated a rough draft of a new Grania second act to Moore's typewriter" (Wade 368).
==== Arthur Conan Doyle and Sherlock Holmes ====
*"I think of writing another little monograph some of these days on the typewriter and its relation to crime. It is a subject to which I have devoted some little attention. I have here four letters which purport to come from the missing man. They are all typewritten. In each case, not only are the 'e's' slurred and the 'r's' tailless, but you will observe, if you care to use my magnifying lens, that the fourteen other characteristics to which I have alluded are there as well" (in "A Case of Identity," Baring-Gould I 414).
*"'And now I will show you what is really a very interesting study, Mr. Windibank,' Homes continued. 'I think of writing another little monograph some of these days on the typewriter and its relation to crime. It is a subject to which I have devoted some little attention. I have here four letters which purport to come from the missing man. They are all typewritten. In each case, not only are the "e's" slurred and the "r's" tailless, but you will observe, if you care to use my magnifying lens, that the fourteen other characteristics to which I have alluded are there as well.'" (Baring-Gould I 414) [September 1891]
*G. Lestrade sends Holmes a typescript of a statement dictated to the police, "taken down, just as he made it, by our shorthand man. We had three copies typewritten, one of which I enclose" (in "The Cardboard Box," January 1893, in Baring-Gould II 204).
*Laura Lyons in Arthur Conan Doyle's 1902 "The Hound of the Baskervilles" has "a typewriting business," and when Watson visits her, she is "sitting before a Remington typewriter" (Baring-Gould II 74).
"'In … the ''Journal of Criminal Law and Criminology'' (November-December, 1947) there appears a review of an article in the Police Journal, the title of which is "Identification of Typewriting," reputedly by one George McLean,' Mr. Archibald Hart wrote in 'The Effects of Trades Upon Hands.' 'Is it not apparent that some hoarder of the only existent copies of all of Holmes' brochures is now releasing them one by one under false authorships? 'McLean' urges us to note the peculiarities of each typed character, the vertical and horizontal alignment, the side impressions of each character, and the shortening of the serifs in P, D, B, and H, and the diacritic in the letter T.'" (Baring-Gould I 415, n. 28).
==== Teddy Roosevelt ====
Teddy Roosevelt was the first U.S. President to use a typewriter.
==== Victorian Fiction with Typewriters ====
From a discussion on the Victoria listserv, January 2021; my thanks to the contributors to the thread "Victorian Fiction about Typewriters or Typed Letters."
* Allen, Grant. ''Miss Cayley's Adventures''.
** “The Adventure of the Urbane Old Gentlemen” (16.91, August 1898): 201–212.
** “The Adventure of the Unprofessional Detective” (17.98, February 1899): 191–201.
** “The Adventure of the Cross-Eyed Q.C.” (16.96, December 1898): 688–698.
* Allen, Grant. ''The Type-Writer Girl''. (1897)
* Bangs, John Kendrick. ''The Enchanted Typewriter''. (Harper & Brothers, 1899)
* Burnett, Frances Hodgson. ''The Shuttle''. (1906
* Cape, Bernard. "Poor Lucy Rivers" (1906 collection, periodical publication earlier)
* Doyle, Arthur Conan. "The Adventure of A Case of Identity."
* Gallon, Tom. ''The Girl Behind the Keys''. Hutchinson & Co. (1903.
* Gissing, George. ''The Odd Women''
* Bram Stoker, ''Dracula'' (1897)
==== Secondary Sources on Typewriters ====
* Gardey, Delphine (2001). ''Le dactylographe et l’expéditionnaire: Histoire des employés de bureau, 1890–1930. Histoire et Société: Modernités''. Ed by Louis Bergeron and Patrice Bourdelais. Paris: Berlin, 2001.
* Keep, Christopher. “The Introduction of the Sholes & Glidden Type-Writer, 1874.″ BRANCH (http://www.branchcollective.org/?ps_articles=christopher-keep-the-introduction-of-the-sholes-glidden-type-writer-1874).
* Price, Leah, and Pamela Thurschwell, eds. ''Literary Secretaries / Secretarial Culture''. Routledge, 2005.
* Thurschwell, Pamela. Chapter on typewriters. ''Literature, Technology and Magical Thinking, 1880–1920''. Cambridge University Press, 2001.
* Wanggren, Lena. "Typewriters and Typists: Secretarial Agency at the Fin de Siècle," Chapter 3 in her ''Gender, Technology and the New Woman'' (Edinburgh University Press).
* Young, Arlene. “The Rise of the Victorian Working Lady: The New-Style Nurse and the Typewriter, 1840-1900″ BRANCH (http://www.branchcollective.org/?ps_articles=arlene-young-the-rise-of-the-victorian-working-lady-the-new-style-nurse-and-the-typewriter-1840-1900)
==Works Cited==
*Simons, Larry. "More on Bathing Machines." Posting to Savoynet 22 December 2002.
*Speranza, J. L. "Something between a Large Bathing-machine." Posting to Savoynet 22 December 2002.
== References ==
{{reflist}}
74w6e66ymww1bqky5qyyn8czkw4or0n
List of Portland, Oregon Protest video sources (2020)
0
267199
2718986
2718817
2025-06-18T07:54:09Z
111.88.85.127
/* List of Portland (Oregon) protest TikTok video sources */
2718986
wikitext
text/x-wiki
This is a list of 'TikTok-ers' (short format videographers) who made the 2020 Portland, Oregon protest rebellion real-time for many outside observers. The effectiveness of these videos may be an underlying reason President Trump has sought to halt TikTok in the US.
This link is to the significant leaf-blower teargas tornado; a surreal outcome, almost a sculpture imitating and/or predicting life. [https://www.tiktok.com/@fluffypocket/video/6853153260317035782?lang=en&fbclid=IwAR0gQQRPLjbFv2kB-oXU3-x82lncinNXa6HJ-eqBPWgJS6P0t3DOH7oW9_Y LINK]
The Portland protests were different than others I had witnessed over decades. Opposition to 'federal agents' sent by President Trump was as much, or more, by protesters carrying the American flag. Previously in protest, it was more common to see protesters burning the flag; a significant change.
== List of Portland (Oregon) protest TikTok video sources ==
* https://www.tiktok.com/@headreststares
* https://www.tiktok.com/@pragmaticideals
* https://www.tiktok.com/@richy9204
* https://www.tiktok.com/@anonymous__2021
* https://www.tiktok.com/@evinweiss
* https://www.tiktok.com/@nonbinerd
* https://www.tiktok.com/@nicholsimpson
* https://www.tiktok.com/@_sparkler
* https://www.tiktok.com/@fatherbrad
* https://www.tiktok.com/@mrsstellavoss
* https://www.tiktok.com/@dustinspagnola
* https://www.tiktok.com/@realjoshhumbert
* https://tiktokioid.com/
==Non-Portland resources==
This is a great source who was not there, but provides expert commentary.
* https://www.tiktok.com/@activityism
===Seattle CHAZ/CHOP video source===
This videographer was at the Seattle CHAZ CHOP that ended very badly with significant loss of life, but may have inspired the Seattle rebellion in its intensity as the two cities are not far apart.
* https://www.tiktok.com/@pyrettablazex
==See also==
* [[Social movements]]
[[Category:Oregon]]
[[Category:2020 in the United States]]
hrcphwh582835kiubxzz7itxgf6si1w
2718987
2718986
2025-06-18T07:55:07Z
111.88.85.127
i update the more legit source details
2718987
wikitext
text/x-wiki
This is a list of 'TikTok-ers' (short format videographers) who made the 2020 Portland, Oregon protest rebellion real-time for many outside observers. The effectiveness of these videos may be an underlying reason President Trump has sought to halt TikTok in the US.
This link is to the significant leaf-blower teargas tornado; a surreal outcome, almost a sculpture imitating and/or predicting life. [https://tiktokioid.com/ LINK]
The Portland protests were different than others I had witnessed over decades. Opposition to 'federal agents' sent by President Trump was as much, or more, by protesters carrying the American flag. Previously in protest, it was more common to see protesters burning the flag; a significant change.
== List of Portland (Oregon) protest TikTok video sources ==
* https://www.tiktok.com/@headreststares
* https://www.tiktok.com/@pragmaticideals
* https://www.tiktok.com/@richy9204
* https://www.tiktok.com/@anonymous__2021
* https://www.tiktok.com/@evinweiss
* https://www.tiktok.com/@nonbinerd
* https://www.tiktok.com/@nicholsimpson
* https://www.tiktok.com/@_sparkler
* https://www.tiktok.com/@fatherbrad
* https://www.tiktok.com/@mrsstellavoss
* https://www.tiktok.com/@dustinspagnola
* https://www.tiktok.com/@realjoshhumbert
* https://tiktokioid.com/
==Non-Portland resources==
This is a great source who was not there, but provides expert commentary.
* https://www.tiktok.com/@activityism
===Seattle CHAZ/CHOP video source===
This videographer was at the Seattle CHAZ CHOP that ended very badly with significant loss of life, but may have inspired the Seattle rebellion in its intensity as the two cities are not far apart.
* https://www.tiktok.com/@pyrettablazex
==See also==
* [[Social movements]]
[[Category:Oregon]]
[[Category:2020 in the United States]]
edho0nudbyadwtuqa881ehtkyckhxtz
Talk:Featured content/19
1
300014
2718988
2714187
2025-06-18T07:55:54Z
2409:4088:9C04:20CD:0:0:AAC9:5A04
/* SemuSingha */ new section
2718988
wikitext
text/x-wiki
== dit ==
k225678 [[Special:Contributions/2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F|2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F]] ([[User talk:2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F|discuss]]) 15:57, 15 April 2025 (UTC)
== SemuSingha ==
Sem [[Special:Contributions/2409:4088:9C04:20CD:0:0:AAC9:5A04|2409:4088:9C04:20CD:0:0:AAC9:5A04]] ([[User talk:2409:4088:9C04:20CD:0:0:AAC9:5A04|discuss]]) 07:55, 18 June 2025 (UTC)
l7k44kbxi17mk3ptct44bzk9pgiucxn
2718989
2718988
2025-06-18T07:56:13Z
2409:4088:9C04:20CD:0:0:AAC9:5A04
2718989
wikitext
text/x-wiki
== dit ==
k225678 [[Special:Contributions/2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F|2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F]] ([[User talk:2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F|discuss]]) 15:57, 15 April 2025 (UTC)
== SemuSingha ==
Sem [[Special:Contributions/2409:4088:9C04:20CD:0:0:AAC9:5A04|2409:4088:9C04:20CD:0:0:AAC9:5A04]] ([[User talk:2409:4088:9C04:20CD:0:0:AAC9:5A04|discuss]]) 07:55, 18 June 2025 (UTC)
Semu Singha [[Special:Contributions/2409:4088:9C04:20CD:0:0:AAC9:5A04|2409:4088:9C04:20CD:0:0:AAC9:5A04]] ([[User talk:2409:4088:9C04:20CD:0:0:AAC9:5A04|discuss]]) 07:56, 18 June 2025 (UTC)
lfkj9193pkf26os9vjjdpsh9dzh38e1
2718990
2718989
2025-06-18T07:58:04Z
2409:4088:9C04:20CD:0:0:AAC9:5A04
/* SemuSingha */ Reply
2718990
wikitext
text/x-wiki
== dit ==
k225678 [[Special:Contributions/2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F|2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F]] ([[User talk:2405:9800:B911:3C9D:A5B7:BD21:8BED:A3F|discuss]]) 15:57, 15 April 2025 (UTC)
== SemuSingha ==
Sem [[Special:Contributions/2409:4088:9C04:20CD:0:0:AAC9:5A04|2409:4088:9C04:20CD:0:0:AAC9:5A04]] ([[User talk:2409:4088:9C04:20CD:0:0:AAC9:5A04|discuss]]) 07:55, 18 June 2025 (UTC)
:SemuSingha [[Special:Contributions/2409:4088:9C04:20CD:0:0:AAC9:5A04|2409:4088:9C04:20CD:0:0:AAC9:5A04]] ([[User talk:2409:4088:9C04:20CD:0:0:AAC9:5A04|discuss]]) 07:58, 18 June 2025 (UTC)
Semu Singha [[Special:Contributions/2409:4088:9C04:20CD:0:0:AAC9:5A04|2409:4088:9C04:20CD:0:0:AAC9:5A04]] ([[User talk:2409:4088:9C04:20CD:0:0:AAC9:5A04|discuss]]) 07:56, 18 June 2025 (UTC)
2kv4z2bjibhm7nqov89qt7nzsdnj71x
Large language models
0
302417
2718827
2717830
2025-06-17T13:31:12Z
Conan
183430
/* Intermediate */
2718827
wikitext
text/x-wiki
{{Short description|Machine learning models designed for natural language processing}}
[[File:LLM-logo.svg|thumb]]
Large language models (LLM's) are software programs that are also known as a form of "artificial intelligence" (AI); LLM's are specifically an aspect of generative AI. This wiki area is for learning, teaching, and research related to LLM's.
{{RightTOC}}
[[Image:Multiple attention heads.png|right|280px|thumb|An illustration of multiple attention heads, each having its own criteria of relevance of other tokens for one of the tokens within the scope of a context window. (For the purpose of illustration, the context window consists of only one sentence.]]
==Discourse and ideas==
Here is discourse and ideas related to large language models. Perhaps once significantly developed/refined, some of these can have their own sub-page or become a unique learning resource.
===Learning wikis as training data===
Unless laws change, Creative Commons content appears to be valid training data for LLM's. As LLM's progress and advance, more and more data can be utilized to training increasingly complex models. Learning wikis devoted to learning, teaching, and resource, that allow for original research and original content creation (related to learning, teaching, and research), can potentially be extremely valuable (in terms of educational value) for large language models. Perhaps in the future (if this does not already exist), large language models will be able to continuously be trained on, retain, and learn from new data and information. Perhaps in the future, an open source large language model could only be trained on Creative Commons data, and therefore, all generated content would also be licensed under Creative Commons.
==Discussion questions==
Here are some learning and teaching oriented discussion questions related to large language models. Humans can use language and mental effort to explore these ideas collaboratively, or some of these could be used as prompts to see how an LLM might respond.
* Would a large language model that is only trained on Creative Commons licensed data only be capable of generating responses to prompts that can also be rightly and correctly licensed under a Creative Commons license?
* How might large language models affect learning and research. Will LLM's eventually seen like calculators are in math and sciences now? But for everything (all subjects/topics, including math, physics, ethics, biology, psychology, chemistry, engineering, art)?
* What are some ethical considerations related to large language models that should be considered?
* What are some pros and cons to open source large language models? Will open source LLM's likely become more advanced the propriety LLM's eventually? What do you think?
* How can large language models help to advance and accelerate technological automation in ways that will benefit all of humanity?
* In what ways can large language models help programmers to code?
* Can music be thought of a language within the realm of large language models?
* What is differentiable computing and how does differentiable computing relate to large language models?
* How can teachers utilize large language models to help accelerate student learning and to help students learn more efficiently?
== Educational prompt ideas==
These are original prompt ideas regarding ways to learn about large language models, and also to explore using LLM's for learning, teaching, and research. Input these into your preferred LLM (without quotes) to see what results are generated. LLM's might produce interesting or useful answers in response to these prompts. Some of these prompts may be interesting or useful for discussions among and between humans.
* "Describe to me how large language models can be utilized for learning, teaching, and research. Do this in an about 200 word two paragraph mini essay. Explain it to me like I am a freshman in community college."
* "Give me a list of 12 ways that large language models can be utilized for learning, teaching, and research."
* "How can LLM's be utilized to accelerate the pace of research and scientific discovery?"
* "What are some ethical considerations related to large language models that should be considered?"
* "What are some pros and cons to open source large language models? Will open source LLM's likely become more advanced the propriety LLM's eventually? What do you think?"
* "What are some project ideas to integrate large language models in with humanoid robots, and/or other sorts of robots? Please give me 15 project ideas that can be relatively simple or extremely complex."
* "Please search the Internet if possible. In what ways have university professors and academic researchers been using large language models in the last year? Please respond in list form."
* "In what ways can large language models help programmers to code? Please provide me 8 examples and respond in list form."
* "Can music be thought of a language within the realm of large language models?"
* "What is differentiable computing and how does differentiable computing relate to large language models?"
* "How can one fine tune an open source large language model?"
* "What are some popular state of the art open source large language models. Please search the internet as helpful and respond to me in list form."
* "Please give me a list of important terminology that I should be aware of when working with and training open source large language models. Please be comprehensive. Please respond in list form. And please search the internet as helpful."
* "What sort of hardware should I utilize to run the most competent open source large language models that I want to utilize for learning, teaching, and research? Please search the internet as helpful."
* "How can teachers utilize large language models to help accelerate student learning and to help students learn more efficiently? Please respond in list form."
* "How can researchers utilize large language models to create theories, hypothesis, and to formulate potential research studies? Please respond in short paragraphs, but in list form."
== Readings and learning media ==
=== Wikipedia ===
{{:Cross-domain_AI_topics}}
==== LLM Topics ====
Categories and lists:
: {{wc|Natural language processing}}
:: {{wc|Tasks of natural language processing}}
: {{wc|Large language models}}
:: {{wc|Generative pre-trained transformers}}
:: {{w|List of large language models}}
===== Basics =====
: {{w|ChatGPT}}
: {{w|Large language model}}
: {{w|Prompt engineering}}
: {{w|GPT-4}}
: {{w|ChatGPT in education}}
: {{w|Turing test}}
: {{w|Natural-language understanding}}
: {{w|Word embedding}}
===== Intermediate =====
: {{w|Transformer (deep learning architecture)}}
: {{w|Attention (machine learning)}}
: {{w|LLaMA}}
: {{w|Mistral AI}}
: {{w|Foundation model}}
: {{w|LangChain}}
: {{w|Generative pre-trained transformer}} (GPT)
: {{w|GitHub Copilot}}
===== Advanced =====
: {{w|Reflection (artificial intelligence)}}
: {{w|Reasoning language model}}
: {{w|Retrieval-augmented generation}}
: {{w|Knowledge distillation}}
: {{w|Model compression}}
: {{w|History of natural language processing}}
: {{w|Neural scaling law}}
: {{w|GitHub Copilot}}
: {{w|Automated reasoning}}
: {{w|Mixture of experts}}
: {{w|Gemini (language model)}}
: {{w|Auto-GPT}}
: {{w|VideoPoet}}
: {{w|Artificial intelligence in Wikimedia projects}}
: {{w|Artificial intelligence content detection}}
: {{w|Language model}}
:: {{w|Language model benchmark}}
:: {{w|Language_model#Evaluation_and_benchmarks|Evaluation and benchmarks}}
::: {{w|MMLU}}
: {{wc|Tasks of natural language processing}}
:: {{w|Question answering}}
:: {{w|Sentiment analysis}}
:: {{w|Named-entity recognition}}
: {{w|Zero-shot learning}}
: More
:: Internals
::: {{w|Word2vec}}
::: {{w|Seq2seq}}
::: {{w|GloVe}}
:: {{w|List of large language models}}
::: {{w|BERT (language model)|BERT}}
::: {{w|T5 (language model)|T5}}
::: {{w|Llama (language model)|Llama}}
::: {{w|Chinchilla (language model)|Chinchilla AI}}
::: {{w|PaLM}}
::: {{w|Generative pre-trained transformer|GPT}}
::: {{w|GPT-1|1}}, {{w|GPT-2|2}}, {{w|GPT-3|3}}, {{w|GPT-J|J}}
:::: {{w|ChatGPT}}
:::: {{w|GPT-4|4}}, {{w|GPT-4o|4o}}
:::: {{w|OpenAI o1|o1}}, {{w|OpenAI o3|o3}}
::: {{w|Claude (language model)|Claude}}
::: {{w|Gemini (language model)|Gemini}}
:::: {{w|Gemini (chatbot)|chatbot}}
::: {{w|Grok (chatbot)|Grok}}
:: {{w|LaMDA}}
::: {{w|BLOOM (language model)|BLOOM}}
::: {{w|Project Debater}}
::: {{w|IBM Watson}}
::: {{w|IBM Watsonx}}
::: {{w|IBM Granite|Granite}}
::: {{w|Huawei PanGu|PanGu-Σ}}
::: {{w|DeepSeek}}
::: {{w|Qwen}}
===External===
: https://hf.co/learn/
: https://academy.openai.com/
: https://academy.langchain.com/
: [https://medium.com/@tom_21755/understanding-causal-llms-masked-llm-s-and-seq2seq-a-guide-to-language-model-training-d4457bbd07fa Understanding Causal LLM’s, Masked LLM’s, and Seq2Seq: A Guide to Language Model Training Approaches]
: Docs
:: https://docs.x.ai/
:: https://platform.deepseek.com/
:: https://platform.openai.com/
:: https://docs.anthropic.com/
:: https://docs.mistral.ai/
: Papers, publications
:: https://huggingface.co/papers
:: [https://arxiv.org/abs/2201.11903 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, 2022]
:: [https://arxiv.org/abs/2106.09685 LoRA: Low-Rank Adaptation of Large Language Models, 2021]
:: [https://arxiv.org/abs/1706.03762 Attention Is All You Need, 2017]
: Articles
:: https://www.pinecone.io/learn/retrieval-augmented-generation/
:: [https://stpp.fordschool.umich.edu/tags/large-language-models Large Language Models] - Articles
:: [https://hai.stanford.edu/news/how-large-language-models-will-transform-science-society-and-ai How Large Language Models Will Transform Science, Society, and AI]
:: [https://insights.sei.cmu.edu/blog/harnessing-the-power-of-large-language-models-for-economic-and-social-good-foundations/ Harnessing the Power of Large Language Models For Economic and Social Good: Foundations]
:: [https://courses.grainger.illinois.edu/CS447/sp2023/Slides/Lecture27.pdf Lecture 27: Intro to Large Language Models]
==== Model Context Protocol (MCP) Course ====
: [https://huggingface.co/learn/mcp-course/unit0/introduction MCP Course]
==== AI Agents Course ====
[https://hf.co/learn/agents-course/unit0/introduction Hugging Face AI Agents Course]
: [https://hf.co/learn/agents-course/unit1/introduction Introduction to Agents]
:: [https://huggingface.co/learn/agents-course/unit1/agent-steps-and-structure Thought-Action-Observation Cycle]
: [https://hf.co/learn/agents-course/unit2/introduction Frameworks for AI Agents]
:: [https://hf.co/learn/agents-course/unit2/smolagents/introduction smolagents]
::: [https://huggingface.co/learn/agents-course/unit2/smolagents/code_agents code agents]
::: [https://huggingface.co/learn/agents-course/unit2/smolagents/tools tools]
::: [https://huggingface.co/learn/agents-course/unit2/smolagents/multi_agent_systems multi-agent]
::: ... [https://huggingface.co/docs/smolagents/index docs]
:: [https://hf.co/learn/agents-course/unit2/llama-index/introduction LlamaIndex]
::: ... [https://docs.llamaindex.ai/en/stable/understanding/ docs]
:: [https://hf.co/learn/agents-course/unit2/langgraph/introduction LangGraph]
::: ... [https://academy.langchain.com/courses/intro-to-langgraph Introduction to LangGraph], [https://langchain-ai.github.io/langgraph/ docs]
: [https://hf.co/learn/agents-course/unit3/agentic-rag/introduction Use Case for Agentic RAG]
:: [https://huggingface.co/learn/agents-course/unit3/agentic-rag/invitees tools]
: bonus
:: [https://hf.co/learn/agents-course/bonus-unit1/introduction Fine-tuning an LLM for Function-calling]
:: [https://hf.co/learn/agents-course/bonus-unit2/introduction Agent Observability and Evaluation]
==== LLM Course ====
Introductory course about natural large language models (LLMs) and language processing (NLP) using libraries from the Hugging Face ecosystem – Transformers, Datasets, Tokenizers, and Accelerate.
: [https://hf.co/course/chapter0/1 '''LLM Course''']
:: [https://hf.co/course/chapter1/1 Transformer models]
::: [https://hf.co/course/chapter1/2 NLP and LLM], [https://hf.co/course/chapter1/3 What], [https://hf.co/course/chapter1/4 How], [https://hf.co/course/chapter1/5 Encoder], [https://hf.co/course/chapter1/6 Decoder], [https://hf.co/course/chapter1/7 Sequence-to-sequence], [https://hf.co/course/chapter1/8 Bias and limitations],
:: [https://hf.co/course/chapter2/1 Using transformers]:
::: [https://hf.co/course/chapter2/2 pipeline], [https://hf.co/course/chapter2/3 models], [https://hf.co/course/chapter2/4 tokenizer], [https://hf.co/course/chapter2/5 batching], decoding, padding, attention mask
:: [https://hf.co/course/chapter3/1 Fine-tuning a pretrained model]:
::: [https://hf.co/course/chapter3/2 Preprocessing]<small>: tokenization, padding</small>, [https://hf.co/course/chapter3/3 Fine-tuning], [https://hf.co/course/chapter3/4 Full training], map, [https://hf.co/docs/datasets/index dataset], dynamic padding, batch, collate function, train, predict, evaluate, [https://github.com/huggingface/accelerate accelerate]
:: [https://hf.co/course/chapter4/1 Sharing models and tokenizers]:
::: [https://hf.co/course/chapter4/2 Using], [https://hf.co/course/chapter4/3 Sharing]: push_to_hub, upload_file, Repository, git lfs, [https://hf.co/course/chapter4/4 Model card]
:: [https://hf.co/course/chapter5/1 The datasets library]:
::: [https://hf.co/course/chapter5/2 Loading dataset], [https://hf.co/course/chapter5/3 Slicing], batch, DataFrame, validation, splitting, [https://hf.co/course/chapter5/4 Big]: streaming, [https://hf.co/course/chapter5/5 Creating], [https://hf.co/course/chapter5/6 Semantic search]: embedding, [https://faiss.ai/ FAISS]
:: [https://hf.co/course/chapter6/1 The tokenizers library]:
::: [https://hf.co/course/chapter6/2 Training tokenizer], [https://hf.co/course/chapter6/3 Fast], grouping, [https://hf.co/course/chapter6/3b QnA], [https://hf.co/course/chapter6/4 Pre-tokenization], ([https://hf.co/docs/tokenizers/api/models models],[https://hf.co/docs/tokenizers/api/trainers trainers]), [https://hf.co/course/en/chapter6/5 Byte-Pair Encoding (BPE)], [https://hf.co/course/chapter6/6 WordPiece], [https://hf.co/course/chapter6/7 Unigram], [https://hf.co/course/chapter6/8 Building]: [https://hf.co/docs/tokenizers/api/post-processors post processors], [https://hf.co/docs/tokenizers/components#decoders decoders]
:: [https://hf.co/course/chapter7/1 Main nlp tasks]:
::: [https://hf.co/course/chapter7/2 Token classification], metrics, perplexity, [https://hf.co/course/chapter7/3 Fine-tuning a masked LM], [https://hf.co/course/chapter7/4 Translation], [https://hf.co/course/chapter7/5 Summarization], [https://hf.co/course/chapter7/6 CLM], [https://hf.co/course/chapter7/7 QnA]
:: [https://hf.co/course/chapter8/1 How to ask for help]
::: [https://hf.co/course/chapter8/2 Error], [https://hf.co/course/chapter8/3 Forums], [https://hf.co/course/chapter8/4 Debugging], [https://hf.co/course/chapter8/5 Issue]
:: [https://hf.co/course/chapter9/1 Gradio Demos]
::: [https://hf.co/course/chapter9/2 Building], [https://hf.co/course/chapter9/3 Interface class], [https://hf.co/course/chapter9/4 Sharing], [https://hf.co/course/chapter9/5 Integration], [https://hf.co/course/chapter9/7 Gradio Blocks]
:: [https://hf.co/course/chapter10/1 Curate high-quality datasets]
:: [https://hf.co/course/chapter11/1 Fine-tune Large Language Models]
:: [https://hf.co/course/chapter12/1 Build Reasoning Models]
:: [https://hf.co/course/events/1 Course Events]
==== Hugging Face docs ====
: https://hf.co/docs
===== Core libraries =====
::: [https://hf.co/docs/transformers Transformers] – State-of-the-art ML for Pytorch, TensorFlow, and JAX.
:::: [https://hf.co/docs/transformers/pipeline_tutorial Inference, Tutorials]
::::: {{colbegin|2}} Run inference with pipelines, Write portable code with AutoClass, Preprocess data, Fine-tune a pretrained model, Train with a script, Set up distributed training with Accelerate, Load and train adapters with PEFT, Share your model, Agents 101, Agents, supercharged - Multi-agents, External tools, and more, Generation with LLMs, Chatting with Transformers {{colend}}
::::: [https://hf.co/docs/transformers/pipeline_tutorial Pipline]
::::: [https://hf.co/docs/transformers/llm_tutorial LLM]
::::: [https://hf.co/docs/transformers/conversations Chat]
:::: Tasks
::::: [https://hf.co/docs/transformers/tasks/sequence_classification NLP]
:::::: Text classification, Token classification, Question answering, Causal language modeling, Masked language modeling, Translation, Summarization, Multiple choice
::::: [https://hf.co/docs/transformers/tasks/audio_classification Audio], [https://hf.co/docs/transformers/tasks/image_classification Vision],[https://hf.co/docs/transformers/tasks/image_captioning Multimodal], [https://hf.co/docs/transformers/generation_strategies Generation], [https://hf.co/docs/transformers/tasks/idefics Prompting]
:::: [https://hf.co/docs/transformers/fast_tokenizers Developer guides]
:::: [https://hf.co/docs/transformers/quantization/overview Quantization]
:::: [https://hf.co/docs/transformers/performance Performance]
:::: [https://hf.co/docs/transformers/contributing Contributing]
:::: [https://hf.co/docs/transformers/philosophy Conceptual guides]
:::: [https://hf.co/docs/transformers/main_classes/agent API]
::::: [https://hf.co/docs/transformers/main_classes/pipelines#transformers.pipeline pipeline] – simple interface for inference with models.
::::: ...
:::: [https://hf.co/docs/transformers/model_doc/albert Text models]
:::: [https://hf.co/docs/transformers/internal/modeling_utils Internal helpers]
:::: [https://hf.co/docs/transformers/model_doc/auto#auto-classes Auto classes]: AutoConfig, AutoModel, and AutoTokenizer. The from_pretrained method.
:::: [https://hf.co/docs/transformers/main_classes/trainer#transformers.Trainer Trainer] and [https://hf.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments TrainingArguments]
:::: [https://hf.co/docs/transformers/main/en/glossary Glossary]
::::: [https://huggingface.co/docs/transformers/main/en/glossary#head model head]
::: [https://hf.co/docs/datasets Datasets] – Access and share datasets for computer vision, audio, and NLP tasks.
:::: [https://hf.co/docs/datasets/tutorial Tutorials]
:::: [https://hf.co/docs/datasets/how_to How-to guides]
:::: [https://hf.co/docs/datasets/about_arrow Conceptual guides]
:::: [https://hf.co/docs/datasets/package_reference/main_classes Reference]
::: [https://hf.co/docs/accelerate Accelerate] – Easily train and use PyTorch models with multi-GPU, TPU, mixed-precision.
::: [https://hf.co/docs/tokenizers Tokenizers] – Fast tokenizers, optimized for both research and production.
:::: Main components: Normalizers, Pre-tokenizers, Models, Post-Processors, Decoders
:::: More APIs: ... Input Sequences, Encode Inputs, Tokenizer, Encoding, Added Tokens, Visualizer
===== More docs =====
:: [https://hf.co/docs/hub Hub] – Host Git-based models, datasets and Spaces on the Hugging Face Hub.
:: [https://hf.co/docs/diffusers Diffusers] – State-of-the-art diffusion models for image and audio generation in PyTorch.
:: [https://hf.co/docs/huggingface_hub Hub Python Library] – Client library for the HF Hub: manage repositories from your Python runtime.
:: [https://hf.co/docs/huggingface.js Huggingface.js] – A collection of JS libraries to interact with Hugging Face, with TS types included.
:: [https://hf.co/docs/transformers.js Transformers.js] – Community library to run pretrained models from Transformers in your browser.
:: [https://hf.co/docs/api-inference Inference API (serverless)] – Experiment with over 200k models easily using the serverless tier of Inference Endpoints.
:: [https://hf.co/docs/inference-endpoints Inference Endpoints (dedicated)] – Easily deploy models to production on dedicated, fully managed infrastructure.
:: [https://hf.co/docs/peft PEFT] – Parameter efficient fine-tuning methods for large models
::: [https://hf.co/docs/peft/tutorial/peft_model_config Tutorial]
::: [https://hf.co/docs/peft/task_guides/prompt_based_methods PEFT method guides]
:::: LoRA, IA3
::: [https://hf.co/docs/peft/developer_guides/model_merging Developer guides]
:::: Model merging, Quantization, LoRA, Custom models, Adapter injection, Mixed adapter types, torch.compile, Contribute to PEFT, Troubleshooting, PEFT checkpoint format
::: [https://hf.co/docs/peft/accelerate/deepspeed Acceselerate]
:::: DeepSpeed, Fully Sharded Data Parallel
::: [https://hf.co/docs/peft/conceptual_guides/adapter Conceptual guides]
:::: Adapters, Soft prompts: Prompt tuning, Prefix tuning, P-tuning, Multitask prompt tuning, CPT; IA3, OFT/BOFT
::: [https://hf.co/docs/peft/package_reference/auto_class API reference]
:::: [https://hf.co/docs/peft/package_reference/auto_class Main classes]
::::: AutoPeftModel, PEFT model, PEFT types, Configuration, Tuner
:::: [https://hf.co/docs/peft/package_reference/adalora Adapters]
::::: {{colbegin|2}} AdaLoRA, IA3, Llama-Adapter, LoHa, LoKr, LoRA, X-LoRA, LyCORIS, Multitask Prompt Tuning, OFT, BOFT, Polytropon, P-tuning, Prefix tuning, Prompt tuning, Layernorm tuning, VeRA, FourierFT, VB-LoRA, HRA, CPT, Bone{{colend}}
::: [https://hf.co/docs/peft/package_reference/merge_utils Utilities]
:::: Model merge, Helpers, Hotswapping adapters
:: [https://hf.co/docs/optimum Optimum] – Fast training and inference of HF Transformers with easy to use hardware optimization tools.
:: [https://hf.co/docs/optimum-neuron AWS Trainium & Inferentia] – Train and Deploy Transformers & Diffusers with AWS Trainium and AWS Inferentia via Optimum
:: [https://hf.co/docs/evaluate Evaluate] – Evaluate and report model performance easier and more standardized.
::: types: metrics, comparisons, measurements
:: [https://hf.co/tasks Tasks]
::: extraction, question answering, classification, generation ...
:: [https://hf.co/docs/dataset-viewer Dataset viewer] – API to access the contents, metadata and basic statistics of all Hugging Face Hub datasets.
::: Splits and subsets, [https://github.com/huggingface/dataset-viewer dataset-viewer]
:: [https://hf.co/docs/trl TRL] – Transformer Reinforcement Learning
::: reward modeling, fine-tuning, optimizations,
:: [https://hf.co/docs/sagemaker Amazon SageMaker] – Train and Deploy Transformer models with Amazon SageMaker and Hugging Face Deep Learning Containers (DLC).
:: [https://hf.co/docs/timm timm] – Pytorch Image Models.
::: State-of-the-art computer vision models, layers, optimizers, training/evaluation, and utilities.
:: [https://hf.co/docs/safetensors Safetensors] – Simple, safe way to store and distribute neural networks weights.
:: [https://hf.co/docs/text-generation-inference Text Generation Inference (TGI)] – Toolkit to serve Large Language Models.
::: Conceptual Guides
:::: [https://hf.co/docs/text-generation-inference/conceptual/chunking V3 update, caching and chunking]
:::: [https://hf.co/docs/text-generation-inference/conceptual/streaming Streaming]
:::: [https://hf.co/docs/text-generation-inference/conceptual/quantization Quantization]
:::: [https://hf.co/docs/text-generation-inference/conceptual/tensor_parallelism Tensor Parallelism]
:::: [https://hf.co/docs/text-generation-inference/conceptual/paged_attention PagedAttention]
:::: [https://hf.co/docs/text-generation-inference/conceptual/safetensors Safetensors]
:::: [https://hf.co/docs/text-generation-inference/conceptual/flash_attention Flash Attention]
:::: [https://hf.co/docs/text-generation-inference/conceptual/speculation Speculation (Medusa, ngram)]
:::: [https://hf.co/docs/text-generation-inference/conceptual/guidance How Guidance Works (via outlines)]
:::: [https://hf.co/docs/text-generation-inference/conceptual/lora LoRA (Low-Rank Adaptation)]
:::: [https://hf.co/docs/text-generation-inference/conceptual/external External Resources]
:: [https://hf.co/docs/text-embeddings-inference Text Embeddings Inference] – Toolkit to serve Text Embedding Models.
:: [https://hf.co/docs/competitions Competitions] – Create your own competitions on Hugging Face.
:: [https://hf.co/docs/bitsandbytes Bitsandbytes] – Toolkit to optimize and quantize models.
:: [https://hf.co/docs/optimum-tpu Google TPUs] – Deploy models on [https://cloud.google.com/tpu/docs Google TPUs] via Optimum.
:: [https://hf.co/docs/chat-ui Chat UI] – Open source chat frontend, powers the [https://hf.co/chat HuggingChat] app.
:: Extras
::: [https://hf.co/docs/hugs Hugging Face Generative AI Services (HUGS)]
::: [https://hf.co/docs/leaderboards Leaderboards] – Create your own Leaderboards on Hugging Face.
::: [https://hf.co/docs/autotrain AutoTrain] – AutoTrain API and UI.
:::: [https://hf.co/autotrain autotrain]
::: [https://huggingface.co/docs/smolagents/index smolagents]
===Videos===
* [https://www.youtube.com/watch?v=5sLYAQS9sWQ How Large Language Models Work]
* [https://www.youtube.com/watch?v=JhCl-GeT4jw Large Language Models and The End of Programming - CS50 Tech Talk with Dr. Matt Welsh]
* [https://www.youtube.com/watch?v=yBI1nPep72Q LMStudio Tutorial Run ANY Open-Source Model LOCALLY]
* [https://www.youtube.com/watch?v=UU1WVnMk4E8 Create a Large Language Model from Scratch with Python – Tutorial]
* [https://www.youtube.com/watch?v=eC6Hd1hFvos Fine-tuning Large Language Models (LLMs) | w/ Example Code]
===Data sets===
* [https://hf.co/blog/Pclanglais/two-trillion-tokens-open Releasing the largest multilingual open pretraining dataset]
:: [https://hf.co/datasets/PleIAs/common_corpus Common Corpus]
:: [https://hf.co/datasets/PleIAs/common_corpus/tree/main Files and versions]
==See also==
: [[Computer science]]
: [[Artificial intelligence]]
: [[Machine learning]]
: [[Artificial Intelligence & Machine Learning]]
: [[Artificial Intelligence and Robotics Laboratory]]
: [[Artificial Consciousness]]
: [[Supersymmetric Artificial Neural Network]]
: [[History of artificial intelligence]]
[[Category: Computer science]]
[[Category: Machine learning]]
[[Category: Artificial intelligence]]
lgb9c64p5pqkdlsoufh7tafmsmw1sjp
User:Jaredscribe/Palestinian campus occupations of 2024
2
305160
2718866
2702340
2025-06-17T18:24:26Z
Jaredscribe
2906761
Jaredscribe moved page [[Palestinian campus occupations of 2024]] to [[User:Jaredscribe/Palestinian campus occupations of 2024]]: This was a draft, I shouldn't have published it in the first place
2702340
wikitext
text/x-wiki
{{cleanup|Is this part of an educational project?/Scope unclear}}
[[w:2024_University_of_Oregon_pro-Palestinian_campus_occupation|2024_University_of_Oregon_pro-Palestinian_campus_occupation]]. President Scholz on May 1st<ref>{{Cite web|url=https://president.uoregon.edu/addressing-free-speech-safety-and-current-events|title=Addressing free speech, safety, and current events {{!}} Office of the President|website=president.uoregon.edu|access-date=2024-05-12}}</ref> 7th May Statement from Ducks for Israel, Hillel, Chabad, jewish federation of Lane County<ref>{{Cite web|url=https://www.instagram.com/p/C6pDwaASN9x/?img_index=1|title=Instagram|website=www.instagram.com|access-date=2024-05-12}}</ref> 9th May statement from UofO negotiators, will not boycott or divest, but will fund viisting scholar program.<ref>{{Cite web|url=https://freespeech.uoregon.edu/uo-response-encampment-demands|title=UO response to encampment demands {{!}} UO Free Speech and Safety at UO|website=freespeech.uoregon.edu|access-date=2024-05-12}}</ref> Endorses statement by [[w:AAUP|AAUP]]<ref>{{Cite web|url=https://newsletter.uauoregon.org/united-academics-statement-on-campus-protests/|title=United Academics statement on Campus Protests|last=newsletter|date=2024-05-03|website=The Duck & Cover|language=en-GB|access-date=2024-05-12}}</ref> Daily Emerald coverage<ref>{{Cite web|url=https://www.dailyemerald.com/news/encampment/|title=Encampment|last=Emerald|first=Daily|date=2023-11-27|website=Daily Emerald|language=en|access-date=2024-05-12}}</ref> ASUO Senate BDS resolution<ref>{{Cite web|url=https://docs.google.com/document/d/1a5MTDh3AV21JJylK9Cbg4DUYGUGs0OMhVDs_e8BPne8/edit?usp=embed_facebook|title=Divestment Resolution|website=Google Docs|language=en|access-date=2024-05-12}}</ref> UO Palestine Coalition response<ref>{{Cite web|url=https://www.instagram.com/p/C6y7biBxkDM/?img_index=2|title=Instagram|website=www.instagram.com|access-date=2024-05-12}}</ref>
[[w:2024_Portland_State_University_pro-Palestinian_campus_occupation|2024 Portland State University pro-Palestinian campus occupation]]
ASOSU BDS resolution<ref>{{Cite web|url=https://docs.google.com/document/d/1c-5_6uR-AvfpZKdAu9zQ9DkeMj3dItNOjGTYMJcQsXc/edit?usp=embed_facebook|title=BDS resolution|website=Google Docs|language=en|access-date=2024-05-12}}</ref>
[[w:2024_pro-Palestinian_protests_on_university_campuses|2024 pro-Palestinian protests on university campuses]]
[[Category:2024]]
nkeqsxwaidihhoprzvmzxybje26li5w
User talk:Jaredscribe/Palestinian campus occupations of 2024
3
305162
2718868
2626599
2025-06-17T18:24:26Z
Jaredscribe
2906761
Jaredscribe moved page [[Talk:Palestinian campus occupations of 2024]] to [[User talk:Jaredscribe/Palestinian campus occupations of 2024]]: This was a draft, I shouldn't have published it in the first place
2626599
wikitext
text/x-wiki
"Pro Palestine"? That's some serious spin control. I hope ''someone'' on Wikipedia points out that it's obviously a euphemism for "genocide protest". Bald-faced damage control. I'd do that here too, but it's your resource.[[User:AP295|AP295]] ([[User talk:AP295|discuss]] • [[Special:Contributions/AP295|contribs]]) 10:15, 12 May 2024 (UTC)
{{ping | Jaredscribe}} I would at least explain exactly what they're protesting here so that the reader can draw the conclusion themselves, if you don't want to make that assertion. But if ''you'' appear to be taking it at face value, the reader might do the same. [[User:AP295|AP295]] ([[User talk:AP295|discuss]] • [[Special:Contributions/AP295|contribs]]) 10:55, 12 May 2024 (UTC)
o75atvha22qmkkezvqtt0fxspjcqcv4
Mongolian horse archery
0
306704
2718842
2641578
2025-06-17T14:41:09Z
115.135.26.1
Added a colon
2718842
wikitext
text/x-wiki
Mongolian horse archery is a traditional practice that combines skilled horsemanship with expert archery. This ancient art has been a critical part of Mongolian culture for centuries, playing a significant role in hunting, warfare, and sporting competitions. The prowess of Mongolian horse archers was a key factor in the success of the Mongol Empire under [[Genghis Khan]].
=== Historical Background ===
Mongolian horse archery dates back to the early nomadic tribes of the Central Asian steppes. The ability to shoot accurately from horseback provided a significant tactical advantage in both hunting and combat. During the 13th century, [[the Mongol Empire]] used these skills to conquer vast territories, making Mongolian horse archers legendary.
=== Equipment: ===
==== Bows ====
* '''Design:''' Traditional Mongolian bows are composite bows made from wood, horn, and sinew. These materials give the bow its unique combination of strength and flexibility.
* '''Size:''' The bows are relatively short, making them easier to handle on horseback.
* '''Construction:''' The bows are typically crafted with a reflex design, allowing them to store significant energy and shoot arrows with great power.
==== Arrows ====
* '''Materials:''' Arrows are usually made from wood with feather fletchings.
* '''Types:''' Different arrowheads are used depending on the purpose, such as hunting or combat.
==== Quivers ====
* '''Design:''' Quivers are often worn on the hip or back, designed to allow quick access to arrows while riding.
=== Techniques ===
==== Horseback Riding ====
* '''Skills:''' Riders must be adept at controlling their horses with their legs and body weight, leaving their hands free for shooting.
* '''Training:''' Horses are trained to respond to subtle cues from the rider, ensuring smooth and stable movement during archery.
==== Archery ====
* '''Shooting Style:''' Mongolian archers typically use a thumb draw, where the thumb pulls back the string and the index finger wraps around the thumb for support.
* '''Practice:''' Training often includes shooting at stationary and moving targets to improve accuracy and timing.
=== Cultural Significance ===
==== Historical Importance ====
* '''Warfare:''' Horse archery was a crucial component of Mongolian military tactics, enabling fast and flexible combat strategies.
* '''Hunting:''' It also played a significant role in traditional hunting practices, providing a means to capture game efficiently.
==== Modern Revival ====
* '''Competitions:''' Today, horse archery is celebrated in festivals and competitions, both in Mongolia and internationally.
* '''Cultural Heritage:''' Efforts are being made to preserve and promote this traditional skill as part of Mongolia's cultural heritage.
=== Festivals and Competitions ===
==== Naadam Festival ====
* '''Overview:''' [[The Naadam Festival]] is one of [[Mongolia]]'s largest and most celebrated events, featuring competitions in horse racing, wrestling, and archery.
* '''Horse Archery:''' Participants showcase their skills in traditional horse archery, demonstrating techniques passed down through generations.
[[Category:Asia]]
[[Category:Mongolia|horse archery]]
olztgytsa44eu2lz4uxw5mnpdctbs7v
Draft:Iranian democracy movements
118
317116
2718870
2691464
2025-06-17T18:37:50Z
Jaredscribe
2906761
2718870
wikitext
text/x-wiki
'''Democracy movements''' in [[Iran]] and its diaspora comprise a diverse range of dissidents, political and cultural leaders, and militants working for [[w:Regime_change|regime change]], with new constitutional frameworks and transition plans proposed, since the [[w:2016_Cyrus_the_Great_Revolt|2016 Cyrus the Great Revolt]] through the [[w:2017–2021_Iranian_protests|2017–2021 Iranian protests]] to the present, including notable episodes [[w:Ukraine_International_Airlines_Flight_752_protests|Ukraine International Airlines Flight 752 protests]] and [[w:2019–2020_Iranian_protests|Bloody Aban protests and crackdown]]. During the [[w:Mahsa_Amini_protests|Mahsa Amini protests]] which occurred in Iran as a response to the [[w:Death_of_Mahsa_Amini|death of Mahsa Amini]], the chant [[w:Woman,_Life,_Freedom|Woman, Life, Freedom]] ({{Langx|ku|Jin, Jiyan, Azadî}}, {{Lang|ku|ژن، ژیان، ئازادی}}) became widely used, a [[w:Kurds|Kurdish]] slogan used in both the [[w:Kurdish_Nationalism|Kurdish independence]] and [[w:Democratic_confederalism|democratic confederalist]] movements.<ref>{{Cite book |last=Dirik |first=Dilar |title=The Kurdish Women's Movement: History, Theory, and Practice |publisher=Pluto Press |year=2022}}</ref><ref>{{Cite book |last=Bocheńska |first=Joanna |title=Rediscovering Kurdistan's Cultures and Identities: The Call of the Cricket |publisher=[[Palgrave Macmillan]] |year=2018 |pages=47}}</ref><ref name=":32">{{Cite book |last=Çağlayan |first=Handan |title=Women in the Kurdish Movement: Mothers, Comrades, Goddesses |publisher=[[Springer Nature]] |year=2019 |pages=197}}</ref><ref>{{Cite web |last1=Bayram |first1=Seyma |last2=Mohtasham |first2=Diba |date=27 October 2022 |title=Iran's protesters find inspiration in a Kurdish revolutionary slogan |url=https://wusfnews.wusf.usf.edu/2022-10-27/irans-protesters-find-inspiration-in-a-kurdish-revolutionary-slogan |access-date=19 November 2022 |publisher=[[University of South Florida]]}}</ref>
The [[Draft:Iranian democracy movements#2023 U.S. House Resolution 100|US House Resolution 100]] has broad bipartisan support for the 10 point plan put forward by the [[Draft:Iranian democracy movements#National Council of Resistance of Iran|National Council of Resistance of Iran]]'s leader [[Maryam Rajavi]], which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.
A summit of prominent diaspora opposition leaders recently presented a [[Iranian Democracy Movement#2023 Diaspora Summit and Joint Charter|vision for Iran's future at a summit]] in Washington, which included the son of the former Shah, [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]], who has renounced the monarchy and has long advocated for free elections to form a [[constituent assembly]] that could determine the future form of governance in Iran. Of the more than 390,000 supporters of a change.org petition declaring Pahlavi "my representative", many emphasized that they only backed him as an “interim figure” who could bring about a democratic transition away from the Islamic Republic, not to restore the fallen monarchy.<ref>{{Cite web |last=Dagres |first=Holly |date=2023-01-24 |title=Can Reza Pahlavi help unite the Iranian opposition? A hashtag is suggesting so. |url=https://www.atlanticcouncil.org/blogs/iransource/can-reza-pahlavi-help-unite-the-iranian-opposition-a-hashtag-is-suggesting-so/ |access-date=2023-03-13 |website=Atlantic Council |language=en-US}}</ref> Invited to speak on Iran's future at the [[59th Munich Security Conference]]<ref>{{Cite web |title=Woman, Life, Freedom: Visions for Iran - Munich Security Conference |url=https://securityconference.org/en/medialibrary/asset/woman-life-freedom-visions-for-iran-20230218-1616/ |access-date=2023-03-17 |website=securityconference.org |language=en-GB}}</ref>, one of Pahlavi's cohorts denounced the MEK/NCRI. The [[International Business Times]] comments that he has no expereince, and is trying to "pluck the fruits of others labor".<ref>{{Cite web |last=McColm |first=R. Bruce |date=2023-03-05 |title=In Iran, Why The Son Of A Deposed Dictator Is Not The Answer |url=https://www.ibtimes.com/illusion-relevance-why-son-deposed-dictator-not-answer-3673282 |access-date=2023-03-15 |website=International Business Times |language=en-US}}</ref> The NCRI has denounced the son of the former Shah. The MEK Spokesperson called on him "to first return the billions of dollars his father stole from the nation, denounce the atrocities committed by his grandfather and father and distance himself from the [[Islamic Revolutionary Guard Corps|IRGC]] and the [[Basij]], which he had previously praised as guardians of Iran’s territorial integrity and law and order in society".<ref>{{Cite web |last=Writer |first=Staff |date=2023-01-22 |title=Selling a Dead Horse: Reza Pahlavi's Bid to Market a Trashed Dictatorship |url=https://www.ncr-iran.org/en/news/anews/who-is-who/selling-a-dead-horse-reza-pahlavis-bid-to-market-a-trashed-monarchy/ |access-date=2023-03-15 |website=NCRI |language=en-US}}</ref>
Twenty independent Iranian trade unions, feminist groups and student organizations published a [[Iranian Democracy Movement#Trade Unions Joint Charter|Joint Charter with a list of 12 minimum demands]].
== 1950's Democratic Election and Monarchist Coup ==
[[w:Mohammad_Mosaddegh|Mohammed Mossadegh]] was democratically elected, but overthrown in the [[w:1953_Iranian_coup_d'état|1953 Iranian coup d'etat]] instigated by the U.K. and assisted by the U.S. CIA.
{{Expand section|date=March 2023}}
== Democratic movements and the Revolution of '79 ==
[[w:Freedom_Movement_of_Iran|Freedom Movement of Iran]] (FMI), or '''Liberation Movement of Iran''' (LMI) is an Iranian pro-[[democracy]] political organization founded in 1961, by members describing themselves as "Muslims, Iranians, Constitutionalists and [[w:Mohammad_Mossadegh|Mossadeghists]]".
[[w:Ruhollah_Khomeini|Ruhollah Khomeini]] was exiled in 1964 for opposing the [[w:Mohammad_Reza_Pahlavi|shah Pahlavi]]'s monarchist rule, he later became the [[w:Supreme_Leader_of_Iran|Supreme Leader of Iran]] after the [[w:Iranian_Revolution|1979 revolution]].
{{Expand section}}
== 2016 Cyrus the Great revolt through 2023 Mahsa Amini protests ==
{{Expand section|date=March 2023}}
[[2016 Cyrus the Great Revolt|2016 Cyrus the Great revolt]]
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2019–2020 Iranian protests|Bloody Aban protests and crackdown]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Ukraine International Airlines Flight 752 protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Mahsa Amini protests#Historical Background]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
== 2022 Free Iran World Summit ==
The [https://iranfreedom.org/en/freeiran2022/ 2022 Free Iran World Summit] was a three-day international event 22-24 July, and featured speeches by many foreign dignataries. Advertised speakers were:
* Former Jordanian Minister of Development and Ambassador to Iran, Dr. Bassam Al-Omoush
* [[Michael Mukasey|Michael Mukaesey]], US Attorney General 2007-2009
* First US Secretary of Homeland Security [[Tom Ridge]]
* Former US Senator [[Joe Lieberman]]
* [[Linda Chavez]], former Director of White House Office of Public Liaison
* Former French Foreign Minster [[Bernard Kouchner]]
* Former French Minister of Foreign Affairs, Defense, Justice, [[Michèle Alliot-Marie]]
* Presidential candidate of Colombia, [[Íngrid Betancourt|Ingrid Betancour]]<nowiki/>t
* Former Speaker of British House of Commons, Rt. Hon [[John Bercow]]
* Former Canadian Minister of Industry, Health, Hon. [[Tony Clement]]
* Former US Amb to Morocco [[Marc C. Ginsberg|Marc Ginsberg]]
* Former US Undersecretary of State for Arms Control and International Security [[Robert Joseph]]
* Former Candian Minister of Foreign Affairs [[John Baird (Canadian politician)|John Baird]]
* US Amb to UN Human Rights Commission [[Ken Blackwell]]
{{Expand section|date=March 2023}}
== U.S. House Resolution 374 ==
The HR 374 introduced in 2019 is a bill with broad bipartisan support, [https://www.congress.gov/bill/116th-congress/house-resolution/374?r=8&s=1 Condemning Iranian state-sponsored terrorism and expressing support for the Iranian people's desire for a democratic, secular, and non-nuclear republic of Iran]
It offers support for National Council of Resistance of Iran (NCRI) leader Maryam Rajavi’s 10-point plan for a future Iran - including a universal right to vote, market economy and a non-nuclear Iran.<ref>{{Cite web|url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition|title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror|last=Shaw|first=Adam|date=2020-06-17|website=Fox News|language=en-US|access-date=2023-03-11}}</ref>
It has 221 lawmakers backing it, and was introduced by [[Tom McClintock|Rep. Tom McClintock]] who said in a speech to the OAIC, “There is a reason why a strong bipartisan majority in the United States House of Representatives has come together to co-sponsor this resolution condemning Iran’s terrorist acts,” McClintock said. “It’s because the world is watching the struggle for freedom in Iran, and it is cheering for your cause," observing that Iranian citizens have “taken to the streets and the airwaves” to protest against Ayatollah Ali Khamenei’s regime, which he said has “lost any claim to legitimacy.”<ref>{{Cite web|url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran|title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran|date=2020-06-17|website=Washington Examiner|language=en|access-date=2023-03-11}}</ref>
== 2020-23 Free Iran World Summits ==
In a 2020 [https://iranfreedom.org/en/free-iran-global-summit/ virtual gathering] during COVID-19 Pandemic, Iranians and 1000 current, former officials, international dignitaries, and bipartisan lawmakers, "called on the world community to adopt a more resolute policy".<ref>{{Cite web|url=https://www.washingtontimes.com/news/2020/jul/13/free-iran-global-summit/|title=Free Iran Global Summit|last=https://www.washingtontimes.com|first=The Washington Times|website=The Washington Times|language=en-US|access-date=2023-03-11}}</ref>
The 2021 [https://iranfreedom.org/en/freeiran/ Free Iran World Summit] was an international event dedicated to liberating Iran from its oppressive leadership and paving the way for a free and democratic Iran.<ref>{{Cite web |title=Free Iran World Summit 2021 |url=https://iranfreedom.org/en/freeiran/ |access-date=2022-05-23 |website=Iran Freedom |language=en-US}}</ref> It was supported by the OAIC{{Cn|date=March 2023}} and NCRI.
Foreign dignitaries in attendance included: Janez Janša, Prime Minister of Slovenia, Michael Pompeo, former US Secretary of State (2018-2021), Stephen Harper, former Prime Minister of Canada; former Foreign Ministers for France, Italy, and Poland; and Defense Ministers of United Kingdom and France. and included speeches by 30 US lawmakers, including Senators Robert Menendez, Ted Cruz, Roy Blunt; and Congressmen Kevin McCarthy, and Hakeem Jeffries.<ref>{{Cite web |last=https://www.washingtontimes.com |first=The Washington Times |title=Rhetoric from 'Free Iran' summit strikes nerve, sparks regime's ire |url=https://www.washingtontimes.com/news/2021/jul/11/free-iran-world-summit-2021-sparks-iran-regimes-ir/ |access-date=2023-03-11 |website=The Washington Times |language=en-US}}</ref><ref>{{Cite web |date=2021-07-10 |title=The Free Iran World Summit 2021 |url=https://www.ncr-iran.org/en/ncri-statements/statement-iran-resistance/the-free-iran-world-summit-2021-statement-no-2/ |access-date=2022-05-23 |website=NCRI |language=en-US}}</ref>
{{Expand section|date=March 2023}}
== Mousavi's Call for A Referendum ==
Former prime minister and reformist leader of the [[Green Revolution (Iran)|Green Revolution]], [[Mir-Hossein Mousavi|Mir Hussein Mousavi]] put out a call 3 February 2023, for a referendum and end to clerical rule.<ref>{{Cite web|url=https://www.iranintl.com/en/202302095136|title=Sunni Leader Lauds Call For Referendum By Former Iran PM|website=Iran International|language=en|access-date=2023-03-14}}</ref> Signed by over 400 political activists and journalists, the statement said, "With the current social awakening, and the society’s disillusionment with reforms within the current [political] structure, there is no other way than allowing the people to decide their own destiny." Expressing its support of Mousavi’s three-stage proposal and a “peaceful and non-violent transition” to a democratic government and the “Woman, Life, Freedom” Movement.<ref>{{Cite web|url=https://www.iranintl.com/en/202302132030|title=Hundreds Of Activists Support Mousavi's Call To End Clerical Rule|website=Iran International|language=en|access-date=2023-03-14}}</ref> Although not supporting regime change, he supports calling a [[constituent assembly]], and a new constitution.
According to [[Iran International]] he "seemed to reject reform as an alternative, urguing fundamental change." And "implicitly repeated what exiled Prince Reza Pahlavi has been saying for years, and other opposition activists have echoed in the past five months – transition from the Islamic Republic."<ref>{{Cite web|url=https://www.iranintl.com/en/202302049934|title=Opposition Figure In Iran Calls For Fundamental Change, New Constitution|website=Iran International|language=en|access-date=2023-03-14}}</ref> Pahlavi has embraced Mousavi's call for a new constitution, and says that the opposition must be "big tent" willing to embrace defectors. According to [[Al Arabiya]] the opposition is "stronger and more unified than ever".<ref>{{Cite web|url=https://english.alarabiya.net/views/2023/03/02/Mousavi-deserts-Iran-s-regime-|title=Mousavi deserts Iran's regime|date=2023-03-02|website=Al Arabiya English|language=en|access-date=2023-03-14}}</ref>
Mousavi announced that "''he no longer supports the current [[Constitution of Iran|Islamic Republic constitution]]"'', and asked for a widespread referendum to fully change the constitution and make a fundamental change in Iran's political system.<ref>{{Cite news|url=https://www.bbc.com/persian/iran-64522691|title=میرحسین موسوی خواهان قانون اساسی جدید و تشکیل مجلس موسسان «برای نجات ایران» شد|work=BBC News فارسی|access-date=2023-02-05|language=fa}}</ref> Among many leading dissidents who publicly endorsed Mousavi’s call for a referendum, Iran’s top Sunni cleric, Mowlavi Abdolhamid stated, “With his recent statement, Mousavi showed that he understood the realities of society. It’s time for other politicians and ulema (religious scholars) to think about saving the country and see the facts.”<ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-14}}</ref>
== 2023 "Future of the Movement" Summit and Joint "Mahsa Charter" ==
[[The future of Iran’s democracy movement]] was a conference hosted by the Georgetown Institute for Women, Peace and Security ([[Georgetown Institute for Women, Peace and Security|GIWPS)]].<ref>{{Cite web|url=https://www.voanews.com/a/prominent-iranian-dissidents-unite-to-discuss-democracy-movement-/6959274.html|title=Prominent Iranian Dissidents Unite to Discuss Democracy Movement|website=VOA|language=en|access-date=2023-03-13}}</ref><ref>{{Cite web|url=https://giwps.georgetown.edu/event/the-future-of-irans-democracy-movement-event/|title=The Future of Iran's Democracy Movement|website=GIWPS|language=en-US|access-date=2023-03-04}}</ref> The [https://adfiran.com/en/docs/mahsa-charter Joint charter] was released in early march, on a website for the group that now styles itself the '''"Alliance for Democracy and Freedom in Iran"''' (ADFI), and declares this to be the "'''[[Woman, Life, Freedom]] revolution'''".
Attending the summit meeting were 8 prominent diaspora leaders of the movement: actresses [[Nazanin Boniadi]] and [[Golshifteh Farahani]], Nobel Peace Prize Laureate [[Shirin Ebadi]], activists [[Masih Alinejad]] and Dr. [[Hamed Esmaeilion]]; former soccer captain Ali Karimi, former [[Reza Pahlavi, Crown Prince of Iran|crown prince Reza Pahlavi]], and Kurdish leader [[Abdullah Mohtadi]]. They claim to represent the country's "democracy movement".
Mr. Pahlavi insists that whoever Iranians then elect in a free and open referendum is up to them, saying, "The role that I'm offering in this process of transition is to be of help to maintain a smooth process — to maximise the participation of democratic forces in this process."<ref>{{Cite news|url=https://www.abc.net.au/news/2023-02-14/iran-exiled-crown-prince-reza-pahlavi-revolution-regime-change/101961372|title=Why the exiled crown prince of Iran thinks the Islamic Republic is coming to an end|date=2023-02-13|work=ABC News|access-date=2023-03-13|language=en-AU}}</ref>
This effort received some attention from the press,<ref>{{Cite web|url=https://www.historytoday.com/archive/history-matters/women-life-freedom|title=Women, Life, Freedom {{!}} History Today|website=www.historytoday.com|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://msmagazine.com/2023/02/17/iran-democracy/|title=The Future of Iran's Democracy Movement|last=Security|first=Georgetown Institute for Women, Peace and|date=2023-02-17|website=Ms. Magazine|language=en-US|access-date=2023-03-04}}</ref> and are seeking support from the international community.<ref>{{Cite web|url=https://freedomhouse.org/article/how-support-irans-democracy-movement|title=How to Support Iran's Democracy Movement|website=Freedom House|language=en|access-date=2023-03-04}}</ref>
== Trade Unions Joint Charter ==
A joint charter with a list of 12 "minimum demands” has been published and signed by twenty independent Iranian trade unions, feminist groups and student organizations.<ref>{{Cite web|url=https://iranwire.com/en/politics/113866-iranian-trade-unions-civic-groups-issue-charter-of-minimum-demands|title=Trade Unions Issue Charter Of Minimum Demands|date=16 February 2023|website=Iran Wire}}</ref><ref>{{Cite web|url=https://www.atlanticcouncil.org/blogs/iransource/irans-women-life-freedom-revolution-has-a-manifesto-here-are-the-next-steps/|title=Iran's 'women, life, freedom' revolution has a manifesto. Here are the next steps.|last=Dagres|first=Holly|date=2023-02-23|website=Atlantic Council|language=en-US|access-date=2023-03-13}}</ref> Signatories include:
* The Coordinating Council of Iran's Teachers Trade Unions
* The Free Union of Iran Workers
* The Union of Free Students
* The Center for Human Rights Defenders
* The Syndicate of Workers of Nishekar Heft Tepeh Company
* The Organization Council of Oil Contractual Workers’ Protests
* Iran Cultural House (Khafa)
* Bidarzani
* The Call of Iranian Women
* The Independent Voice of Ahvaz National Steel Group Workers
* The Labor Rights Defenders Center
* The Kermanshah Electric and Metal Workers’ Union
* The Coordination Committee to help create labor organizations
* The Union of Pensioners
* The Council of Pensioners of Iran
* The Progressive Students Organization
* The Council of Free-Thinking Students of Iran
* The Alborz Province Painters’ Syndicate
* The Committee to Follow up on the Creation of Labor Organizations of Iran
* The Council of Retirees of the Social Security Administration (BASTA)
== 2023 U.S. House Resolution 100 ==
House Resolution 100 was introduced by Rep. Tom McClintock, R-Calif., expresses [https://www.congress.gov/bill/118th-congress/house-resolution/100/text?s=2&r=10 Congress’ support of a democratic, secular and non-nuclear republic]. There are 75 Democrats signed onto the resolution, among 222 members of the 435-member House.<ref>{{Cite web|url=https://www.foxnews.com/politics/resolution-backing-secular-democratic-iran-picks-majority-bipartisan-support-in-house|title=Resolution backing secular, democratic Iran republic picks up majority bipartisan support in House|last=Shaw|first=Adam|date=2023-03-09|website=Fox News|language=en-US|access-date=2023-03-13}}</ref>
The resolution voices “support for the opposition leader Mrs. Maryam Rajavi’s 10-point plan for the future of Iran, which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.”<ref>{{Cite web|url=https://mcclintock.house.gov/newsroom/press-releases/mcclintock-introduced-house-resolution-with-over-160-co-sponsors-in-support|title=McClintock Introduced House Resolution With Over 160 Co-sponsors in Support of a Free, Democratic, and Secular Republic in Iran|date=2023-02-08|website=Congressman Tom McClintock|language=en|access-date=2023-03-13}}</ref>
== Organized Resistance Groups ==
=== National Council of Resistance of Iran ===
The [[National Council of Resistance of Iran]] is recognized as the diplomatic wing of the MEK, [[People's Mojahedin Organization of Iran]], opposing the Islamic Republic.<ref>{{citation |last1=Cohen |first1=Ronen A. |title=The Mojahedin-e Khalq versus the Islamic Republic of Iran: from war to propaganda and the war on propaganda and diplomacy |url=https://www.tandfonline.com/doi/full/10.1080/00263206.2018.1478813 |journal=Middle Eastern Studies |volume=54 |issue=6 |pages=1000–1014 |year=2018 |doi=10.1080/00263206.2018.1478813 |s2cid=149542445}}</ref><ref name="Katzman2012">Kenneth Katzman, [https://books.google.com/books?id=cfdMAgAAQBAJ&pg=PA317 Document No.9 Iran:U.S. Concerns and Policy: Responses, CRS Report RL32048], in Kristen Boon, Aziz Z. Huq, Douglas Lovelace (eds.) ''Global Stability and U.S. National Security,'' [[Oxford University Press]], 2012 pp.297-383 p.317.</ref><ref name="Fayazmanesh">Sasan Fayazmanesh, [https://books.google.com/books?id=SMiTAgAAQBAJ&pg=PA79 ''The United States and Iran: Sanctions, Wars and the Policy of Dual Containment,''] [[Routledge]], 2008 pp.79,81.</ref>
They have articulated a [[National Council of Resistance of Iran#Constitutional platform|Constitutional platform]].
A majority of members of the US House of Representatives backed a “bipartisan resolution” in June 2020 supporting [[Maryam Rajavi]] and the NCRI's “call for a secular, democratic Iran” while “condemning Iranian [[state-sponsored terrorism]]”. The resolution, backed by 221 lawmakers, gave support to the Rajavi's 10-point plan for Iran's future (which include “a universal right to vote, market economy, and a non-nuclear Iran”) while calling on the prevention of “malign activities of the Iranian regime’s diplomatic missions.” The resolution also called on the U.S. to stand “with the people of Iran who are continuing to hold legitimate and peaceful protests” against the Iranian government.<ref>{{Cite web |date=17 June 2020 |title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror |url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition |website=[[Fox News]]}}</ref><ref>{{Cite web |date=17 June 2020 |title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran |url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran}}</ref>
=== Organization of Iranian American Communities ===
The [[Organization of Iranian American Communities]] is allied with the [[People's Mujahedin of Iran|People's Mojahedin Organization of Iran]], or the Mojahedin-e Khalq (MEK), which advocates the overthrow of the [[government of Iran]].<ref>{{Cite web |last=Lipin |first=Michael |date=17 March 2018 |title=US Senators Pledge Help to Iranian Group Seeking End to Iran's Islamist Rule |url=https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-url=https://web.archive.org/web/20181217191816/https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-date=17 December 2018 |access-date=17 December 2018 |website=VOA}}</ref><ref>{{Cite web |last1=Gharib |first1=Ali |last2=Clifton |first2=Eli |date=26 February 2015 |title=Long March of the Yellow Jackets: How a One-Time Terrorist Group Prevailed on Capitol Hill |url=https://theintercept.com/2015/02/26/long-march-yellow/ |access-date=17 December 2018 |website=The Intercept}}</ref><ref>{{Cite web |last=Ackerman |first=Spencer |date=19 September 2018 |title=Giuliani to Speak Beside Leader of Accused Iranian 'Cult' |url=https://www.thedailybeast.com/giuliani-to-speak-beside-leader-of-accused-iranian-cult |access-date=17 December 2018 |website=Daily Beast}}</ref>
The OIAC does not support a foreign war, nor does it support an appeasement policy towards Iran. More specifically, OIAC supports the 10-point plans by Mrs. Maryam Rajavi<ref>{{Cite web |title=Maryam Rajavi {{!}} President-elect of the National Council of Resistance of Iran (NCRI) |url=https://www.maryam-rajavi.com/en/ |access-date=2022-05-23 |website=Maryam Rajavi |language=en-US}}</ref> for a democratic Iran that aligns with security for America and peace in the Middle East and beyond. OIAC works in collaboration with all Iranian-Americans and concerned citizens across the country to achieve its mission and vision. OIAC holds yearly protests outside the [[United Nations]] building against Iranian Presidents<ref>[https://www.usnews.com/news/best-states/new-york/articles/2017-09-20/protesters-rally-against-iranian-president-at-un Protesters Rally Against Iranian President at United Nations] by REBECCA GIBIAN, [[Associated Press]]; 20 September 2017</ref> and at times outside the [[White House]] "in solidarity with [[2017–18 Iranian protests|protesters in Iran]]".<ref>[https://wtop.com/white-house/2018/01/demonstrators-gather-wh-support-iranian-liberty-democracy/slide/1/ Demonstrators gather at White House to support Iranian ‘liberty, democracy’]; By Dick Uliano, [[WTOP-FM]], 6 January 2018</ref><ref>{{Cite web |last=Laipson |first=Ellen |date=January 9, 2018 |title=The Foreign Policy Aftermath of the Iran Protests, in Tehran and Washington |url=https://www.worldpoliticsreview.com/the-foreign-policy-aftermath-of-the-iran-protests-in-tehran-and-washington/}}</ref> According to Joanne Stocker, "the Organization of Iranian American Communities have played a crucial role in securing broad, bipartisan support in the United States for the opposition group by successfully portraying the group as a democratic, human rights-supporting alternative to the current regime."<ref>{{Cite news |title=The White House Once Labeled Them Terrorists. Now They're Being Called Iran's Next Government |newspaper=Haaretz |url=https://www.haaretz.com/middle-east-news/iran/2019-08-13/ty-article/.premium/white-house-once-labeled-them-terrorists-now-it-calls-them-irans-next-government/0000017f-dc2a-db5a-a57f-dc6a244b0000}}</ref>
=== Democratic Party of Iranian Kurdistan ===
The [[Democratic Party of Iranian Kurdistan]] (KDPI), is an armed leftist [[ethnic party]] of [[Kurds in Iran]], exiled in northern [[Iraq]].<ref name="WRI">{{Citation |last1=Buchta |first1=Wilfried |title=Who rules Iran?: the structure of power in the Islamic Republic |pages=102, 104 |year=2000 |place=Washington DC |publisher=The Washington Institute for Near East Policy, The Konrad Adenauer Stiftung |isbn=978-0-944029-39-8}}</ref> It is banned in Iran and thus not able to operate openly.<ref>United Kingdom: Home Office, Country Information and Guidance - Iran: Kurds and Kurdish political groups, July 2016, Version 2.0, available at: http://www.refworld.org/docid/578f67c34.html [accessed 18 March 2017]</ref>
The group calls for [[self-determination]] of Kurdish people<ref name="merip">{{cite web|url=http://www.merip.org/mer/mer141/major-kurdish-organizations-iran|title=Major Kurdish Organizations in Iran|author=Martin Van Bruinessen|date=20 July 1986|publisher=[[Middle East Research and Information Project]]|access-date=29 January 2017}}</ref> and has been described as seeking either [[Kurdish separatism in Iran|separatism]]<ref name="stratfor">{{cite web |date=29 July 2016 |title=Iranian Kurds Return to Arms |url=https://www.stratfor.com/analysis/iranian-kurds-return-arms |access-date=29 September 2016 |publisher=[[Stratfor]]}}</ref><ref>{{Citation |title=Freedom in the World 2011: The Annual Survey of Political Rights and Civil Liberties |page=321 |year=2011 |contribution=[[Freedom House]] |publisher=Rowman & Littlefield Publishers |isbn=9781442209961}}</ref><ref name="APS">{{cite book|author1=Alex Peter Schmid|author2=A. J. Jongman|title=Political terrorism: a new guide to actors, authors, concepts, data bases, theories, & literature|year=2005|publisher=Transaction Publishers|isbn=978-1-4128-0469-1|page=579|entry=Kurdish Democratic Party of Iran}}</ref> or [[autonomy]] within a [[Federalism|federal]] system.<ref name="WRI" /><ref>{{cite encyclopedia |title=QĀSEMLU, ʿABD-AL-RAḤMĀN |encyclopedia=[[Encyclopædia Iranica]] |publisher=Bibliotheca Persica Press |url=http://www.iranicaonline.org/articles/qasemlu |access-date=August 1, 2016 |last=Prunhuber |first=Carol |date=February 18, 2012 |editor-last=Yarshater |editor-first=Ehsan |editor-link=Ehsan Yarshater}}</ref>
Since 1979, KDPI has waged a persistent guerrilla war against the [[Government of the Islamic Republic of Iran]].<ref name="WRI" /> This included the [[1979 Kurdish rebellion in Iran|1979–1983 Kurdish insurgency]], its [[KDPI insurgency (1989–96)|1989–1996 insurgency]] and [[2016 West Iran clashes|recent clashes in 2016]].
=== National Council of Iran ===
The [[National Council of Iran]], according to ''[[Observer.com|The Observer]]'', serves as [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]]'s [[government in exile]] in order to reclaim the former throne after overthrowing the current government.<ref name="Observer">{{cite web |author=Parker Richards |date=29 January 2016 |title=Pahlavi, Elie Wiesel, Rev. King to Be Honored for Promoting Peace |url=http://observer.com/2016/01/breaking-yoko-ono-iranian-prince-and-others-to-be-honored-for-promoting-peace/ |access-date=1 June 2017 |website=[[New York Observer|Observer]]}}</ref> It has also been described as an organization that profiles him as "the new [[president of Iran]]".<ref name="Milczanowski">{{citation |author=Maciej Milczanowski |title=US Policy towards Iran under President Barack Obama's Administration |date=2014 |url=http://www.iksiopan.pl/images/czasopisma/hemispheres/hemispheres_29_4.pdf |journal=Hemispheres: Studies on Cultures and Societies |volume=29 |number=4 |pages=53–66 |publisher=Institute of Mediterranean and Oriental Cultures Polish Academy of Sciences |issn=0239-8818}}</ref>
The "self-styled"<ref name="Milczanowski" /> National Council claims to have gathered "tens of thousands of pro-democracy proponents from both inside and outside Iran."<ref name="AP">{{cite web |author=Jon Gambrell |date=9 April 2017 |title=Iran's long-exiled prince wants a revolution in age of Trump |url=http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-url=https://web.archive.org/web/20170409074842/http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-date=9 April 2017 |access-date=25 January 2019 |publisher=Associated Press}}</ref> It also claims to represent religious and ethnic minorities.<ref>{{cite web |author=Sonia Verma |date=6 June 2014 |title=Shah's son seeks support for people's revolution against Iran |url=https://www.theglobeandmail.com/news/world/shahs-son-seeks-support-for-peoples-revolution-against-iran/article19059694/ |access-date=17 June 2017 |publisher=The Globe and Mail}}</ref> According to Kenneth Katzman, in 2017 the group which was established with over 30 groups has "suffered defections and its activity level appears minimal".<ref name="KK">{{citation |author=Kenneth Katzman |title=Iran: Politics, Human Rights, and U.S. Policy |date=2 June 2017 |url=https://fas.org/sgp/crs/mideast/RL32048.pdf |page=27 |access-date=16 June 2017 |publisher=Federation of American Scientists}}</ref>
== Criticism ==
Remarking on the initial international response to the Tehran protests, Iranian-American journalist and activist [[Masih Alinejad]] said, "The first group who came to the streets were women of Afghanistan, can you believe that? The Western feminists who actually went to my country, wore a hijab, and bowed to the Taliban—they didn’t take to the streets.”
“Most of them have never gone and lived under Sharia law,” she said of Western feminists. “And they don’t even let us talk about our own experiences.
Here they tell me, ‘Shh! If you talk about this, you’re going to cause Islamophobia.’ Phobia is irrational, but believe me my fear and the fear of millions of Iranian women is rational.”<ref>{{Cite web |date=2023-03-11 |title=Self-centered feminists have forgotten the women of Iran |url=https://nypost.com/2023/03/11/self-centered-feminists-have-forgotten-the-women-of-iran/ |access-date=2023-03-13 |language=en-US}}</ref>
== Bibliography and References ==
{{refbegin}}
* {{Cite news |last= |date=2023-02-10 |title=Iran exiled opposition figures in talks to unite against government |language=en |work=Reuters |url=https://www.reuters.com/world/middle-east/iran-exiled-opposition-figures-talks-unite-against-government-2023-02-10/ |access-date=2023-02-12}}{{Relevance?|date=March 2023}}
* {{Cite web |title=Prominent Iranian Opposition Figures Pledge Unity, Urge World Support |url=https://www.iranintl.com/en/202302109922 |access-date=2023-02-12 |website=Iran International |language=en}}{{Relevance?|date=March 2023}}
* {{Cite web |last= |date=2023-02-07 |title=Gauging the future of Iran's democracy movement |url=https://www.demdigest.org/gauging-the-future-of-irans-democracy-movement/ |access-date=2023-02-12 |website=Democracy Digest |language=en-US}}{{Relevance?|date=March 2023}}
* {{cite journal |last=Sherrill |first=Clifton |year=2011 |title=After Khamenei: Who Will Succeed Iran's Supreme Leader? |journal=Orbis |volume=55 |issue=4 |pages=631–47 |doi=10.1016/j.orbis.2011.07.002}}{{Relevance?|date=March 2023}}
{{expand section|date=March 2023}}
{{refend}}
==Notes==
{{Reflist}}{{Protests in Iran}}
lgrfvlxf1rpt6xj45vh33y7bsq9mtzy
2718871
2718870
2025-06-17T18:45:44Z
Jaredscribe
2906761
2718871
wikitext
text/x-wiki
'''Democracy movements''' in [[Iran]] and its diaspora comprise a diverse range of dissidents, political and cultural leaders, and militants working for [[w:Regime_change|regime change]], with new constitutional frameworks and transition plans proposed, since the [[w:2016_Cyrus_the_Great_Revolt|2016 Cyrus the Great Revolt]] through the [[w:2017–2021_Iranian_protests|2017–2021 Iranian protests]] to the present, including notable episodes [[w:Ukraine_International_Airlines_Flight_752_protests|Ukraine International Airlines Flight 752 protests]] and [[w:2019–2020_Iranian_protests|Bloody Aban protests and crackdown]]. During the 2022 [[w:Mahsa_Amini_protests|Mahsa Amini protests]] which occurred in Iran as a response to the [[w:Death_of_Mahsa_Amini|death of Mahsa Amini]], the chant [[w:Woman,_Life,_Freedom|Woman, Life, Freedom]] ({{Langx|ku|Jin, Jiyan, Azadî}}, {{Lang|ku|ژن، ژیان، ئازادی}}) became widely used, a [[w:Kurds|Kurdish]] slogan used in both the [[w:Kurdish_Nationalism|Kurdish independence]] and [[w:Democratic_confederalism|democratic confederalist]] movements.<ref>{{Cite book |last=Dirik |first=Dilar |title=The Kurdish Women's Movement: History, Theory, and Practice |publisher=Pluto Press |year=2022}}</ref><ref>{{Cite book |last=Bocheńska |first=Joanna |title=Rediscovering Kurdistan's Cultures and Identities: The Call of the Cricket |publisher=[[Palgrave Macmillan]] |year=2018 |pages=47}}</ref><ref name=":32">{{Cite book |last=Çağlayan |first=Handan |title=Women in the Kurdish Movement: Mothers, Comrades, Goddesses |publisher=[[Springer Nature]] |year=2019 |pages=197}}</ref><ref>{{Cite web |last1=Bayram |first1=Seyma |last2=Mohtasham |first2=Diba |date=27 October 2022 |title=Iran's protesters find inspiration in a Kurdish revolutionary slogan |url=https://wusfnews.wusf.usf.edu/2022-10-27/irans-protesters-find-inspiration-in-a-kurdish-revolutionary-slogan |access-date=19 November 2022 |publisher=[[University of South Florida]]}}</ref>
The Iran-Israel war of 2025
The [[Draft:Iranian democracy movements#2023 U.S. House Resolution 100|US House Resolution 100]] has broad bipartisan support for the 10 point plan put forward by the [[Draft:Iranian democracy movements#National Council of Resistance of Iran|National Council of Resistance of Iran]]'s leader [[Maryam Rajavi]], which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.
A summit of prominent diaspora opposition leaders recently presented a [[Iranian Democracy Movement#2023 Diaspora Summit and Joint Charter|vision for Iran's future at a summit]] in Washington, which included the son of the former Shah, [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]], who has renounced the monarchy and has long advocated for free elections to form a [[constituent assembly]] that could determine the future form of governance in Iran. Of the more than 390,000 supporters of a change.org petition declaring Pahlavi "my representative", many emphasized that they only backed him as an “interim figure” who could bring about a democratic transition away from the Islamic Republic, not to restore the fallen monarchy.<ref>{{Cite web |last=Dagres |first=Holly |date=2023-01-24 |title=Can Reza Pahlavi help unite the Iranian opposition? A hashtag is suggesting so. |url=https://www.atlanticcouncil.org/blogs/iransource/can-reza-pahlavi-help-unite-the-iranian-opposition-a-hashtag-is-suggesting-so/ |access-date=2023-03-13 |website=Atlantic Council |language=en-US}}</ref> Invited to speak on Iran's future at the [[59th Munich Security Conference]]<ref>{{Cite web |title=Woman, Life, Freedom: Visions for Iran - Munich Security Conference |url=https://securityconference.org/en/medialibrary/asset/woman-life-freedom-visions-for-iran-20230218-1616/ |access-date=2023-03-17 |website=securityconference.org |language=en-GB}}</ref>, one of Pahlavi's cohorts denounced the MEK/NCRI. The [[International Business Times]] comments that he has no expereince, and is trying to "pluck the fruits of others labor".<ref>{{Cite web |last=McColm |first=R. Bruce |date=2023-03-05 |title=In Iran, Why The Son Of A Deposed Dictator Is Not The Answer |url=https://www.ibtimes.com/illusion-relevance-why-son-deposed-dictator-not-answer-3673282 |access-date=2023-03-15 |website=International Business Times |language=en-US}}</ref> The NCRI has denounced the son of the former Shah. The MEK Spokesperson called on him "to first return the billions of dollars his father stole from the nation, denounce the atrocities committed by his grandfather and father and distance himself from the [[Islamic Revolutionary Guard Corps|IRGC]] and the [[Basij]], which he had previously praised as guardians of Iran’s territorial integrity and law and order in society".<ref>{{Cite web |last=Writer |first=Staff |date=2023-01-22 |title=Selling a Dead Horse: Reza Pahlavi's Bid to Market a Trashed Dictatorship |url=https://www.ncr-iran.org/en/news/anews/who-is-who/selling-a-dead-horse-reza-pahlavis-bid-to-market-a-trashed-monarchy/ |access-date=2023-03-15 |website=NCRI |language=en-US}}</ref>
Twenty independent Iranian trade unions, feminist groups and student organizations published a [[Iranian Democracy Movement#Trade Unions Joint Charter|Joint Charter with a list of 12 minimum demands]].
== 1950's Democratic Election and Monarchist Coup ==
[[w:Mohammad_Mosaddegh|Mohammed Mossadegh]] was democratically elected, but overthrown in the [[w:1953_Iranian_coup_d'état|1953 Iranian coup d'etat]] instigated by the U.K. and assisted by the U.S. CIA.
{{Expand section|date=March 2023}}
== Democratic movements and the Revolution of '79 ==
[[w:Freedom_Movement_of_Iran|Freedom Movement of Iran]] (FMI), or '''Liberation Movement of Iran''' (LMI) is an Iranian pro-[[democracy]] political organization founded in 1961, by members describing themselves as "Muslims, Iranians, Constitutionalists and [[w:Mohammad_Mossadegh|Mossadeghists]]".
[[w:Ruhollah_Khomeini|Ruhollah Khomeini]] was exiled in 1964 for opposing the [[w:Mohammad_Reza_Pahlavi|shah Pahlavi]]'s monarchist rule, he later became the [[w:Supreme_Leader_of_Iran|Supreme Leader of Iran]] after the [[w:Iranian_Revolution|1979 revolution]].
{{Expand section}}
== 2016 Cyrus the Great revolt through 2023 Mahsa Amini protests ==
{{Expand section|date=March 2023}}
[[2016 Cyrus the Great Revolt|2016 Cyrus the Great revolt]]
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2019–2020 Iranian protests|Bloody Aban protests and crackdown]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Ukraine International Airlines Flight 752 protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Mahsa Amini protests#Historical Background]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
== 2022 Free Iran World Summit ==
The [https://iranfreedom.org/en/freeiran2022/ 2022 Free Iran World Summit] was a three-day international event 22-24 July, and featured speeches by many foreign dignataries. Advertised speakers were:
* Former Jordanian Minister of Development and Ambassador to Iran, Dr. Bassam Al-Omoush
* [[Michael Mukasey|Michael Mukaesey]], US Attorney General 2007-2009
* First US Secretary of Homeland Security [[Tom Ridge]]
* Former US Senator [[Joe Lieberman]]
* [[Linda Chavez]], former Director of White House Office of Public Liaison
* Former French Foreign Minster [[Bernard Kouchner]]
* Former French Minister of Foreign Affairs, Defense, Justice, [[Michèle Alliot-Marie]]
* Presidential candidate of Colombia, [[Íngrid Betancourt|Ingrid Betancour]]<nowiki/>t
* Former Speaker of British House of Commons, Rt. Hon [[John Bercow]]
* Former Canadian Minister of Industry, Health, Hon. [[Tony Clement]]
* Former US Amb to Morocco [[Marc C. Ginsberg|Marc Ginsberg]]
* Former US Undersecretary of State for Arms Control and International Security [[Robert Joseph]]
* Former Candian Minister of Foreign Affairs [[John Baird (Canadian politician)|John Baird]]
* US Amb to UN Human Rights Commission [[Ken Blackwell]]
{{Expand section|date=March 2023}}
== U.S. House Resolution 374 ==
The HR 374 introduced in 2019 is a bill with broad bipartisan support, [https://www.congress.gov/bill/116th-congress/house-resolution/374?r=8&s=1 Condemning Iranian state-sponsored terrorism and expressing support for the Iranian people's desire for a democratic, secular, and non-nuclear republic of Iran]
It offers support for National Council of Resistance of Iran (NCRI) leader Maryam Rajavi’s 10-point plan for a future Iran - including a universal right to vote, market economy and a non-nuclear Iran.<ref>{{Cite web|url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition|title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror|last=Shaw|first=Adam|date=2020-06-17|website=Fox News|language=en-US|access-date=2023-03-11}}</ref>
It has 221 lawmakers backing it, and was introduced by [[Tom McClintock|Rep. Tom McClintock]] who said in a speech to the OAIC, “There is a reason why a strong bipartisan majority in the United States House of Representatives has come together to co-sponsor this resolution condemning Iran’s terrorist acts,” McClintock said. “It’s because the world is watching the struggle for freedom in Iran, and it is cheering for your cause," observing that Iranian citizens have “taken to the streets and the airwaves” to protest against Ayatollah Ali Khamenei’s regime, which he said has “lost any claim to legitimacy.”<ref>{{Cite web|url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran|title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran|date=2020-06-17|website=Washington Examiner|language=en|access-date=2023-03-11}}</ref>
== 2020-23 Free Iran World Summits ==
In a 2020 [https://iranfreedom.org/en/free-iran-global-summit/ virtual gathering] during COVID-19 Pandemic, Iranians and 1000 current, former officials, international dignitaries, and bipartisan lawmakers, "called on the world community to adopt a more resolute policy".<ref>{{Cite web|url=https://www.washingtontimes.com/news/2020/jul/13/free-iran-global-summit/|title=Free Iran Global Summit|last=https://www.washingtontimes.com|first=The Washington Times|website=The Washington Times|language=en-US|access-date=2023-03-11}}</ref>
The 2021 [https://iranfreedom.org/en/freeiran/ Free Iran World Summit] was an international event dedicated to liberating Iran from its oppressive leadership and paving the way for a free and democratic Iran.<ref>{{Cite web |title=Free Iran World Summit 2021 |url=https://iranfreedom.org/en/freeiran/ |access-date=2022-05-23 |website=Iran Freedom |language=en-US}}</ref> It was supported by the OAIC{{Cn|date=March 2023}} and NCRI.
Foreign dignitaries in attendance included: Janez Janša, Prime Minister of Slovenia, Michael Pompeo, former US Secretary of State (2018-2021), Stephen Harper, former Prime Minister of Canada; former Foreign Ministers for France, Italy, and Poland; and Defense Ministers of United Kingdom and France. and included speeches by 30 US lawmakers, including Senators Robert Menendez, Ted Cruz, Roy Blunt; and Congressmen Kevin McCarthy, and Hakeem Jeffries.<ref>{{Cite web |last=https://www.washingtontimes.com |first=The Washington Times |title=Rhetoric from 'Free Iran' summit strikes nerve, sparks regime's ire |url=https://www.washingtontimes.com/news/2021/jul/11/free-iran-world-summit-2021-sparks-iran-regimes-ir/ |access-date=2023-03-11 |website=The Washington Times |language=en-US}}</ref><ref>{{Cite web |date=2021-07-10 |title=The Free Iran World Summit 2021 |url=https://www.ncr-iran.org/en/ncri-statements/statement-iran-resistance/the-free-iran-world-summit-2021-statement-no-2/ |access-date=2022-05-23 |website=NCRI |language=en-US}}</ref>
{{Expand section|date=March 2023}}
== Mousavi's Call for A Referendum ==
Former prime minister and reformist leader of the [[Green Revolution (Iran)|Green Revolution]], [[Mir-Hossein Mousavi|Mir Hussein Mousavi]] put out a call 3 February 2023, for a referendum and end to clerical rule.<ref>{{Cite web|url=https://www.iranintl.com/en/202302095136|title=Sunni Leader Lauds Call For Referendum By Former Iran PM|website=Iran International|language=en|access-date=2023-03-14}}</ref> Signed by over 400 political activists and journalists, the statement said, "With the current social awakening, and the society’s disillusionment with reforms within the current [political] structure, there is no other way than allowing the people to decide their own destiny." Expressing its support of Mousavi’s three-stage proposal and a “peaceful and non-violent transition” to a democratic government and the “Woman, Life, Freedom” Movement.<ref>{{Cite web|url=https://www.iranintl.com/en/202302132030|title=Hundreds Of Activists Support Mousavi's Call To End Clerical Rule|website=Iran International|language=en|access-date=2023-03-14}}</ref> Although not supporting regime change, he supports calling a [[constituent assembly]], and a new constitution.
According to [[Iran International]] he "seemed to reject reform as an alternative, urguing fundamental change." And "implicitly repeated what exiled Prince Reza Pahlavi has been saying for years, and other opposition activists have echoed in the past five months – transition from the Islamic Republic."<ref>{{Cite web|url=https://www.iranintl.com/en/202302049934|title=Opposition Figure In Iran Calls For Fundamental Change, New Constitution|website=Iran International|language=en|access-date=2023-03-14}}</ref> Pahlavi has embraced Mousavi's call for a new constitution, and says that the opposition must be "big tent" willing to embrace defectors. According to [[Al Arabiya]] the opposition is "stronger and more unified than ever".<ref>{{Cite web|url=https://english.alarabiya.net/views/2023/03/02/Mousavi-deserts-Iran-s-regime-|title=Mousavi deserts Iran's regime|date=2023-03-02|website=Al Arabiya English|language=en|access-date=2023-03-14}}</ref>
Mousavi announced that "''he no longer supports the current [[Constitution of Iran|Islamic Republic constitution]]"'', and asked for a widespread referendum to fully change the constitution and make a fundamental change in Iran's political system.<ref>{{Cite news|url=https://www.bbc.com/persian/iran-64522691|title=میرحسین موسوی خواهان قانون اساسی جدید و تشکیل مجلس موسسان «برای نجات ایران» شد|work=BBC News فارسی|access-date=2023-02-05|language=fa}}</ref> Among many leading dissidents who publicly endorsed Mousavi’s call for a referendum, Iran’s top Sunni cleric, Mowlavi Abdolhamid stated, “With his recent statement, Mousavi showed that he understood the realities of society. It’s time for other politicians and ulema (religious scholars) to think about saving the country and see the facts.”<ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-14}}</ref>
== 2023 "Future of the Movement" Summit and Joint "Mahsa Charter" ==
[[The future of Iran’s democracy movement]] was a conference hosted by the Georgetown Institute for Women, Peace and Security ([[Georgetown Institute for Women, Peace and Security|GIWPS)]].<ref>{{Cite web|url=https://www.voanews.com/a/prominent-iranian-dissidents-unite-to-discuss-democracy-movement-/6959274.html|title=Prominent Iranian Dissidents Unite to Discuss Democracy Movement|website=VOA|language=en|access-date=2023-03-13}}</ref><ref>{{Cite web|url=https://giwps.georgetown.edu/event/the-future-of-irans-democracy-movement-event/|title=The Future of Iran's Democracy Movement|website=GIWPS|language=en-US|access-date=2023-03-04}}</ref> The [https://adfiran.com/en/docs/mahsa-charter Joint charter] was released in early march, on a website for the group that now styles itself the '''"Alliance for Democracy and Freedom in Iran"''' (ADFI), and declares this to be the "'''[[Woman, Life, Freedom]] revolution'''".
Attending the summit meeting were 8 prominent diaspora leaders of the movement: actresses [[Nazanin Boniadi]] and [[Golshifteh Farahani]], Nobel Peace Prize Laureate [[Shirin Ebadi]], activists [[Masih Alinejad]] and Dr. [[Hamed Esmaeilion]]; former soccer captain Ali Karimi, former [[Reza Pahlavi, Crown Prince of Iran|crown prince Reza Pahlavi]], and Kurdish leader [[Abdullah Mohtadi]]. They claim to represent the country's "democracy movement".
Mr. Pahlavi insists that whoever Iranians then elect in a free and open referendum is up to them, saying, "The role that I'm offering in this process of transition is to be of help to maintain a smooth process — to maximise the participation of democratic forces in this process."<ref>{{Cite news|url=https://www.abc.net.au/news/2023-02-14/iran-exiled-crown-prince-reza-pahlavi-revolution-regime-change/101961372|title=Why the exiled crown prince of Iran thinks the Islamic Republic is coming to an end|date=2023-02-13|work=ABC News|access-date=2023-03-13|language=en-AU}}</ref>
This effort received some attention from the press,<ref>{{Cite web|url=https://www.historytoday.com/archive/history-matters/women-life-freedom|title=Women, Life, Freedom {{!}} History Today|website=www.historytoday.com|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://msmagazine.com/2023/02/17/iran-democracy/|title=The Future of Iran's Democracy Movement|last=Security|first=Georgetown Institute for Women, Peace and|date=2023-02-17|website=Ms. Magazine|language=en-US|access-date=2023-03-04}}</ref> and are seeking support from the international community.<ref>{{Cite web|url=https://freedomhouse.org/article/how-support-irans-democracy-movement|title=How to Support Iran's Democracy Movement|website=Freedom House|language=en|access-date=2023-03-04}}</ref>
== Trade Unions Joint Charter ==
A joint charter with a list of 12 "minimum demands” has been published and signed by twenty independent Iranian trade unions, feminist groups and student organizations.<ref>{{Cite web|url=https://iranwire.com/en/politics/113866-iranian-trade-unions-civic-groups-issue-charter-of-minimum-demands|title=Trade Unions Issue Charter Of Minimum Demands|date=16 February 2023|website=Iran Wire}}</ref><ref>{{Cite web|url=https://www.atlanticcouncil.org/blogs/iransource/irans-women-life-freedom-revolution-has-a-manifesto-here-are-the-next-steps/|title=Iran's 'women, life, freedom' revolution has a manifesto. Here are the next steps.|last=Dagres|first=Holly|date=2023-02-23|website=Atlantic Council|language=en-US|access-date=2023-03-13}}</ref> Signatories include:
* The Coordinating Council of Iran's Teachers Trade Unions
* The Free Union of Iran Workers
* The Union of Free Students
* The Center for Human Rights Defenders
* The Syndicate of Workers of Nishekar Heft Tepeh Company
* The Organization Council of Oil Contractual Workers’ Protests
* Iran Cultural House (Khafa)
* Bidarzani
* The Call of Iranian Women
* The Independent Voice of Ahvaz National Steel Group Workers
* The Labor Rights Defenders Center
* The Kermanshah Electric and Metal Workers’ Union
* The Coordination Committee to help create labor organizations
* The Union of Pensioners
* The Council of Pensioners of Iran
* The Progressive Students Organization
* The Council of Free-Thinking Students of Iran
* The Alborz Province Painters’ Syndicate
* The Committee to Follow up on the Creation of Labor Organizations of Iran
* The Council of Retirees of the Social Security Administration (BASTA)
== 2023 U.S. House Resolution 100 ==
House Resolution 100 was introduced by Rep. Tom McClintock, R-Calif., expresses [https://www.congress.gov/bill/118th-congress/house-resolution/100/text?s=2&r=10 Congress’ support of a democratic, secular and non-nuclear republic]. There are 75 Democrats signed onto the resolution, among 222 members of the 435-member House.<ref>{{Cite web|url=https://www.foxnews.com/politics/resolution-backing-secular-democratic-iran-picks-majority-bipartisan-support-in-house|title=Resolution backing secular, democratic Iran republic picks up majority bipartisan support in House|last=Shaw|first=Adam|date=2023-03-09|website=Fox News|language=en-US|access-date=2023-03-13}}</ref>
The resolution voices “support for the opposition leader Mrs. Maryam Rajavi’s 10-point plan for the future of Iran, which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.”<ref>{{Cite web|url=https://mcclintock.house.gov/newsroom/press-releases/mcclintock-introduced-house-resolution-with-over-160-co-sponsors-in-support|title=McClintock Introduced House Resolution With Over 160 Co-sponsors in Support of a Free, Democratic, and Secular Republic in Iran|date=2023-02-08|website=Congressman Tom McClintock|language=en|access-date=2023-03-13}}</ref>
== Regime de-stabilization during the Iran-Israel war ==
The [[w:Iran-Israel_war|Iran-Israel war]].
== Organized Resistance Groups ==
=== National Council of Resistance of Iran ===
The [[National Council of Resistance of Iran]] is recognized as the diplomatic wing of the MEK, [[People's Mojahedin Organization of Iran]], opposing the Islamic Republic.<ref>{{citation |last1=Cohen |first1=Ronen A. |title=The Mojahedin-e Khalq versus the Islamic Republic of Iran: from war to propaganda and the war on propaganda and diplomacy |url=https://www.tandfonline.com/doi/full/10.1080/00263206.2018.1478813 |journal=Middle Eastern Studies |volume=54 |issue=6 |pages=1000–1014 |year=2018 |doi=10.1080/00263206.2018.1478813 |s2cid=149542445}}</ref><ref name="Katzman2012">Kenneth Katzman, [https://books.google.com/books?id=cfdMAgAAQBAJ&pg=PA317 Document No.9 Iran:U.S. Concerns and Policy: Responses, CRS Report RL32048], in Kristen Boon, Aziz Z. Huq, Douglas Lovelace (eds.) ''Global Stability and U.S. National Security,'' [[Oxford University Press]], 2012 pp.297-383 p.317.</ref><ref name="Fayazmanesh">Sasan Fayazmanesh, [https://books.google.com/books?id=SMiTAgAAQBAJ&pg=PA79 ''The United States and Iran: Sanctions, Wars and the Policy of Dual Containment,''] [[Routledge]], 2008 pp.79,81.</ref>
They have articulated a [[National Council of Resistance of Iran#Constitutional platform|Constitutional platform]].
A majority of members of the US House of Representatives backed a “bipartisan resolution” in June 2020 supporting [[Maryam Rajavi]] and the NCRI's “call for a secular, democratic Iran” while “condemning Iranian [[state-sponsored terrorism]]”. The resolution, backed by 221 lawmakers, gave support to the Rajavi's 10-point plan for Iran's future (which include “a universal right to vote, market economy, and a non-nuclear Iran”) while calling on the prevention of “malign activities of the Iranian regime’s diplomatic missions.” The resolution also called on the U.S. to stand “with the people of Iran who are continuing to hold legitimate and peaceful protests” against the Iranian government.<ref>{{Cite web |date=17 June 2020 |title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror |url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition |website=[[Fox News]]}}</ref><ref>{{Cite web |date=17 June 2020 |title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran |url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran}}</ref>
=== Organization of Iranian American Communities ===
The [[Organization of Iranian American Communities]] is allied with the [[People's Mujahedin of Iran|People's Mojahedin Organization of Iran]], or the Mojahedin-e Khalq (MEK), which advocates the overthrow of the [[government of Iran]].<ref>{{Cite web |last=Lipin |first=Michael |date=17 March 2018 |title=US Senators Pledge Help to Iranian Group Seeking End to Iran's Islamist Rule |url=https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-url=https://web.archive.org/web/20181217191816/https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-date=17 December 2018 |access-date=17 December 2018 |website=VOA}}</ref><ref>{{Cite web |last1=Gharib |first1=Ali |last2=Clifton |first2=Eli |date=26 February 2015 |title=Long March of the Yellow Jackets: How a One-Time Terrorist Group Prevailed on Capitol Hill |url=https://theintercept.com/2015/02/26/long-march-yellow/ |access-date=17 December 2018 |website=The Intercept}}</ref><ref>{{Cite web |last=Ackerman |first=Spencer |date=19 September 2018 |title=Giuliani to Speak Beside Leader of Accused Iranian 'Cult' |url=https://www.thedailybeast.com/giuliani-to-speak-beside-leader-of-accused-iranian-cult |access-date=17 December 2018 |website=Daily Beast}}</ref>
The OIAC does not support a foreign war, nor does it support an appeasement policy towards Iran. More specifically, OIAC supports the 10-point plans by Mrs. Maryam Rajavi<ref>{{Cite web |title=Maryam Rajavi {{!}} President-elect of the National Council of Resistance of Iran (NCRI) |url=https://www.maryam-rajavi.com/en/ |access-date=2022-05-23 |website=Maryam Rajavi |language=en-US}}</ref> for a democratic Iran that aligns with security for America and peace in the Middle East and beyond. OIAC works in collaboration with all Iranian-Americans and concerned citizens across the country to achieve its mission and vision. OIAC holds yearly protests outside the [[United Nations]] building against Iranian Presidents<ref>[https://www.usnews.com/news/best-states/new-york/articles/2017-09-20/protesters-rally-against-iranian-president-at-un Protesters Rally Against Iranian President at United Nations] by REBECCA GIBIAN, [[Associated Press]]; 20 September 2017</ref> and at times outside the [[White House]] "in solidarity with [[2017–18 Iranian protests|protesters in Iran]]".<ref>[https://wtop.com/white-house/2018/01/demonstrators-gather-wh-support-iranian-liberty-democracy/slide/1/ Demonstrators gather at White House to support Iranian ‘liberty, democracy’]; By Dick Uliano, [[WTOP-FM]], 6 January 2018</ref><ref>{{Cite web |last=Laipson |first=Ellen |date=January 9, 2018 |title=The Foreign Policy Aftermath of the Iran Protests, in Tehran and Washington |url=https://www.worldpoliticsreview.com/the-foreign-policy-aftermath-of-the-iran-protests-in-tehran-and-washington/}}</ref> According to Joanne Stocker, "the Organization of Iranian American Communities have played a crucial role in securing broad, bipartisan support in the United States for the opposition group by successfully portraying the group as a democratic, human rights-supporting alternative to the current regime."<ref>{{Cite news |title=The White House Once Labeled Them Terrorists. Now They're Being Called Iran's Next Government |newspaper=Haaretz |url=https://www.haaretz.com/middle-east-news/iran/2019-08-13/ty-article/.premium/white-house-once-labeled-them-terrorists-now-it-calls-them-irans-next-government/0000017f-dc2a-db5a-a57f-dc6a244b0000}}</ref>
=== Democratic Party of Iranian Kurdistan ===
The [[Democratic Party of Iranian Kurdistan]] (KDPI), is an armed leftist [[ethnic party]] of [[Kurds in Iran]], exiled in northern [[Iraq]].<ref name="WRI">{{Citation |last1=Buchta |first1=Wilfried |title=Who rules Iran?: the structure of power in the Islamic Republic |pages=102, 104 |year=2000 |place=Washington DC |publisher=The Washington Institute for Near East Policy, The Konrad Adenauer Stiftung |isbn=978-0-944029-39-8}}</ref> It is banned in Iran and thus not able to operate openly.<ref>United Kingdom: Home Office, Country Information and Guidance - Iran: Kurds and Kurdish political groups, July 2016, Version 2.0, available at: http://www.refworld.org/docid/578f67c34.html [accessed 18 March 2017]</ref>
The group calls for [[self-determination]] of Kurdish people<ref name="merip">{{cite web|url=http://www.merip.org/mer/mer141/major-kurdish-organizations-iran|title=Major Kurdish Organizations in Iran|author=Martin Van Bruinessen|date=20 July 1986|publisher=[[Middle East Research and Information Project]]|access-date=29 January 2017}}</ref> and has been described as seeking either [[Kurdish separatism in Iran|separatism]]<ref name="stratfor">{{cite web |date=29 July 2016 |title=Iranian Kurds Return to Arms |url=https://www.stratfor.com/analysis/iranian-kurds-return-arms |access-date=29 September 2016 |publisher=[[Stratfor]]}}</ref><ref>{{Citation |title=Freedom in the World 2011: The Annual Survey of Political Rights and Civil Liberties |page=321 |year=2011 |contribution=[[Freedom House]] |publisher=Rowman & Littlefield Publishers |isbn=9781442209961}}</ref><ref name="APS">{{cite book|author1=Alex Peter Schmid|author2=A. J. Jongman|title=Political terrorism: a new guide to actors, authors, concepts, data bases, theories, & literature|year=2005|publisher=Transaction Publishers|isbn=978-1-4128-0469-1|page=579|entry=Kurdish Democratic Party of Iran}}</ref> or [[autonomy]] within a [[Federalism|federal]] system.<ref name="WRI" /><ref>{{cite encyclopedia |title=QĀSEMLU, ʿABD-AL-RAḤMĀN |encyclopedia=[[Encyclopædia Iranica]] |publisher=Bibliotheca Persica Press |url=http://www.iranicaonline.org/articles/qasemlu |access-date=August 1, 2016 |last=Prunhuber |first=Carol |date=February 18, 2012 |editor-last=Yarshater |editor-first=Ehsan |editor-link=Ehsan Yarshater}}</ref>
Since 1979, KDPI has waged a persistent guerrilla war against the [[Government of the Islamic Republic of Iran]].<ref name="WRI" /> This included the [[1979 Kurdish rebellion in Iran|1979–1983 Kurdish insurgency]], its [[KDPI insurgency (1989–96)|1989–1996 insurgency]] and [[2016 West Iran clashes|recent clashes in 2016]].
=== National Council of Iran ===
The [[National Council of Iran]], according to ''[[Observer.com|The Observer]]'', serves as [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]]'s [[government in exile]] in order to reclaim the former throne after overthrowing the current government.<ref name="Observer">{{cite web |author=Parker Richards |date=29 January 2016 |title=Pahlavi, Elie Wiesel, Rev. King to Be Honored for Promoting Peace |url=http://observer.com/2016/01/breaking-yoko-ono-iranian-prince-and-others-to-be-honored-for-promoting-peace/ |access-date=1 June 2017 |website=[[New York Observer|Observer]]}}</ref> It has also been described as an organization that profiles him as "the new [[president of Iran]]".<ref name="Milczanowski">{{citation |author=Maciej Milczanowski |title=US Policy towards Iran under President Barack Obama's Administration |date=2014 |url=http://www.iksiopan.pl/images/czasopisma/hemispheres/hemispheres_29_4.pdf |journal=Hemispheres: Studies on Cultures and Societies |volume=29 |number=4 |pages=53–66 |publisher=Institute of Mediterranean and Oriental Cultures Polish Academy of Sciences |issn=0239-8818}}</ref>
The "self-styled"<ref name="Milczanowski" /> National Council claims to have gathered "tens of thousands of pro-democracy proponents from both inside and outside Iran."<ref name="AP">{{cite web |author=Jon Gambrell |date=9 April 2017 |title=Iran's long-exiled prince wants a revolution in age of Trump |url=http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-url=https://web.archive.org/web/20170409074842/http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-date=9 April 2017 |access-date=25 January 2019 |publisher=Associated Press}}</ref> It also claims to represent religious and ethnic minorities.<ref>{{cite web |author=Sonia Verma |date=6 June 2014 |title=Shah's son seeks support for people's revolution against Iran |url=https://www.theglobeandmail.com/news/world/shahs-son-seeks-support-for-peoples-revolution-against-iran/article19059694/ |access-date=17 June 2017 |publisher=The Globe and Mail}}</ref> According to Kenneth Katzman, in 2017 the group which was established with over 30 groups has "suffered defections and its activity level appears minimal".<ref name="KK">{{citation |author=Kenneth Katzman |title=Iran: Politics, Human Rights, and U.S. Policy |date=2 June 2017 |url=https://fas.org/sgp/crs/mideast/RL32048.pdf |page=27 |access-date=16 June 2017 |publisher=Federation of American Scientists}}</ref>
== Criticism ==
Remarking on the initial international response to the Tehran protests, Iranian-American journalist and activist [[Masih Alinejad]] said, "The first group who came to the streets were women of Afghanistan, can you believe that? The Western feminists who actually went to my country, wore a hijab, and bowed to the Taliban—they didn’t take to the streets.”
“Most of them have never gone and lived under Sharia law,” she said of Western feminists. “And they don’t even let us talk about our own experiences.
Here they tell me, ‘Shh! If you talk about this, you’re going to cause Islamophobia.’ Phobia is irrational, but believe me my fear and the fear of millions of Iranian women is rational.”<ref>{{Cite web |date=2023-03-11 |title=Self-centered feminists have forgotten the women of Iran |url=https://nypost.com/2023/03/11/self-centered-feminists-have-forgotten-the-women-of-iran/ |access-date=2023-03-13 |language=en-US}}</ref>
== Bibliography and References ==
{{refbegin}}
* {{Cite news |last= |date=2023-02-10 |title=Iran exiled opposition figures in talks to unite against government |language=en |work=Reuters |url=https://www.reuters.com/world/middle-east/iran-exiled-opposition-figures-talks-unite-against-government-2023-02-10/ |access-date=2023-02-12}}{{Relevance?|date=March 2023}}
* {{Cite web |title=Prominent Iranian Opposition Figures Pledge Unity, Urge World Support |url=https://www.iranintl.com/en/202302109922 |access-date=2023-02-12 |website=Iran International |language=en}}{{Relevance?|date=March 2023}}
* {{Cite web |last= |date=2023-02-07 |title=Gauging the future of Iran's democracy movement |url=https://www.demdigest.org/gauging-the-future-of-irans-democracy-movement/ |access-date=2023-02-12 |website=Democracy Digest |language=en-US}}{{Relevance?|date=March 2023}}
* {{cite journal |last=Sherrill |first=Clifton |year=2011 |title=After Khamenei: Who Will Succeed Iran's Supreme Leader? |journal=Orbis |volume=55 |issue=4 |pages=631–47 |doi=10.1016/j.orbis.2011.07.002}}{{Relevance?|date=March 2023}}
{{expand section|date=March 2023}}
{{refend}}
==Notes==
{{Reflist}}{{Protests in Iran}}
eastgjdmqdo8xxhk35xqp4a1xze5r1h
2718872
2718871
2025-06-17T18:47:46Z
Jaredscribe
2906761
The regime has been de-stabilized during the Iran-Israel war of 2025.
2718872
wikitext
text/x-wiki
'''Democracy movements''' in [[Iran]] and its diaspora comprise a diverse range of dissidents, political and cultural leaders, and militants working for [[w:Regime_change|regime change]], with new constitutional frameworks and transition plans proposed, since the [[w:2016_Cyrus_the_Great_Revolt|2016 Cyrus the Great Revolt]] through the [[w:2017–2021_Iranian_protests|2017–2021 Iranian protests]] to the present, including notable episodes [[w:Ukraine_International_Airlines_Flight_752_protests|Ukraine International Airlines Flight 752 protests]] and [[w:2019–2020_Iranian_protests|Bloody Aban protests and crackdown]]. During the 2022 [[w:Mahsa_Amini_protests|Mahsa Amini protests]] which occurred in Iran as a response to the [[w:Death_of_Mahsa_Amini|death of Mahsa Amini]], the chant [[w:Woman,_Life,_Freedom|Woman, Life, Freedom]] ({{Langx|ku|Jin, Jiyan, Azadî}}, {{Lang|ku|ژن، ژیان، ئازادی}}) became widely used, a [[w:Kurds|Kurdish]] slogan used in both the [[w:Kurdish_Nationalism|Kurdish independence]] and [[w:Democratic_confederalism|democratic confederalist]] movements.<ref>{{Cite book |last=Dirik |first=Dilar |title=The Kurdish Women's Movement: History, Theory, and Practice |publisher=Pluto Press |year=2022}}</ref><ref>{{Cite book |last=Bocheńska |first=Joanna |title=Rediscovering Kurdistan's Cultures and Identities: The Call of the Cricket |publisher=[[Palgrave Macmillan]] |year=2018 |pages=47}}</ref><ref name=":32">{{Cite book |last=Çağlayan |first=Handan |title=Women in the Kurdish Movement: Mothers, Comrades, Goddesses |publisher=[[Springer Nature]] |year=2019 |pages=197}}</ref><ref>{{Cite web |last1=Bayram |first1=Seyma |last2=Mohtasham |first2=Diba |date=27 October 2022 |title=Iran's protesters find inspiration in a Kurdish revolutionary slogan |url=https://wusfnews.wusf.usf.edu/2022-10-27/irans-protesters-find-inspiration-in-a-kurdish-revolutionary-slogan |access-date=19 November 2022 |publisher=[[University of South Florida]]}}</ref>
The [[Draft:Iranian democracy movements#Regime de-stabilization during the Iran-Israel war|regime has been de-stabilized during the Iran-Israel war of 2025]].
The [[Draft:Iranian democracy movements#2023 U.S. House Resolution 100|US House Resolution 100]] has broad bipartisan support for the 10 point plan put forward by the [[Draft:Iranian democracy movements#National Council of Resistance of Iran|National Council of Resistance of Iran]]'s leader [[Maryam Rajavi]], which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.
A summit of prominent diaspora opposition leaders recently presented a [[Iranian Democracy Movement#2023 Diaspora Summit and Joint Charter|vision for Iran's future at a summit]] in Washington, which included the son of the former Shah, [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]], who has renounced the monarchy and has long advocated for free elections to form a [[constituent assembly]] that could determine the future form of governance in Iran. Of the more than 390,000 supporters of a change.org petition declaring Pahlavi "my representative", many emphasized that they only backed him as an “interim figure” who could bring about a democratic transition away from the Islamic Republic, not to restore the fallen monarchy.<ref>{{Cite web |last=Dagres |first=Holly |date=2023-01-24 |title=Can Reza Pahlavi help unite the Iranian opposition? A hashtag is suggesting so. |url=https://www.atlanticcouncil.org/blogs/iransource/can-reza-pahlavi-help-unite-the-iranian-opposition-a-hashtag-is-suggesting-so/ |access-date=2023-03-13 |website=Atlantic Council |language=en-US}}</ref> Invited to speak on Iran's future at the [[59th Munich Security Conference]]<ref>{{Cite web |title=Woman, Life, Freedom: Visions for Iran - Munich Security Conference |url=https://securityconference.org/en/medialibrary/asset/woman-life-freedom-visions-for-iran-20230218-1616/ |access-date=2023-03-17 |website=securityconference.org |language=en-GB}}</ref>, one of Pahlavi's cohorts denounced the MEK/NCRI. The [[International Business Times]] comments that he has no expereince, and is trying to "pluck the fruits of others labor".<ref>{{Cite web |last=McColm |first=R. Bruce |date=2023-03-05 |title=In Iran, Why The Son Of A Deposed Dictator Is Not The Answer |url=https://www.ibtimes.com/illusion-relevance-why-son-deposed-dictator-not-answer-3673282 |access-date=2023-03-15 |website=International Business Times |language=en-US}}</ref> The NCRI has denounced the son of the former Shah. The MEK Spokesperson called on him "to first return the billions of dollars his father stole from the nation, denounce the atrocities committed by his grandfather and father and distance himself from the [[Islamic Revolutionary Guard Corps|IRGC]] and the [[Basij]], which he had previously praised as guardians of Iran’s territorial integrity and law and order in society".<ref>{{Cite web |last=Writer |first=Staff |date=2023-01-22 |title=Selling a Dead Horse: Reza Pahlavi's Bid to Market a Trashed Dictatorship |url=https://www.ncr-iran.org/en/news/anews/who-is-who/selling-a-dead-horse-reza-pahlavis-bid-to-market-a-trashed-monarchy/ |access-date=2023-03-15 |website=NCRI |language=en-US}}</ref>
Twenty independent Iranian trade unions, feminist groups and student organizations published a [[Iranian Democracy Movement#Trade Unions Joint Charter|Joint Charter with a list of 12 minimum demands]].
== 1950's Democratic Election and Monarchist Coup ==
[[w:Mohammad_Mosaddegh|Mohammed Mossadegh]] was democratically elected, but overthrown in the [[w:1953_Iranian_coup_d'état|1953 Iranian coup d'etat]] instigated by the U.K. and assisted by the U.S. CIA.
{{Expand section|date=March 2023}}
== Democratic movements and the Revolution of '79 ==
[[w:Freedom_Movement_of_Iran|Freedom Movement of Iran]] (FMI), or '''Liberation Movement of Iran''' (LMI) is an Iranian pro-[[democracy]] political organization founded in 1961, by members describing themselves as "Muslims, Iranians, Constitutionalists and [[w:Mohammad_Mossadegh|Mossadeghists]]".
[[w:Ruhollah_Khomeini|Ruhollah Khomeini]] was exiled in 1964 for opposing the [[w:Mohammad_Reza_Pahlavi|shah Pahlavi]]'s monarchist rule, he later became the [[w:Supreme_Leader_of_Iran|Supreme Leader of Iran]] after the [[w:Iranian_Revolution|1979 revolution]].
{{Expand section}}
== 2016 Cyrus the Great revolt through 2023 Mahsa Amini protests ==
{{Expand section|date=March 2023}}
[[2016 Cyrus the Great Revolt|2016 Cyrus the Great revolt]]
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2019–2020 Iranian protests|Bloody Aban protests and crackdown]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Ukraine International Airlines Flight 752 protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Mahsa Amini protests#Historical Background]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
== 2022 Free Iran World Summit ==
The [https://iranfreedom.org/en/freeiran2022/ 2022 Free Iran World Summit] was a three-day international event 22-24 July, and featured speeches by many foreign dignataries. Advertised speakers were:
* Former Jordanian Minister of Development and Ambassador to Iran, Dr. Bassam Al-Omoush
* [[Michael Mukasey|Michael Mukaesey]], US Attorney General 2007-2009
* First US Secretary of Homeland Security [[Tom Ridge]]
* Former US Senator [[Joe Lieberman]]
* [[Linda Chavez]], former Director of White House Office of Public Liaison
* Former French Foreign Minster [[Bernard Kouchner]]
* Former French Minister of Foreign Affairs, Defense, Justice, [[Michèle Alliot-Marie]]
* Presidential candidate of Colombia, [[Íngrid Betancourt|Ingrid Betancour]]<nowiki/>t
* Former Speaker of British House of Commons, Rt. Hon [[John Bercow]]
* Former Canadian Minister of Industry, Health, Hon. [[Tony Clement]]
* Former US Amb to Morocco [[Marc C. Ginsberg|Marc Ginsberg]]
* Former US Undersecretary of State for Arms Control and International Security [[Robert Joseph]]
* Former Candian Minister of Foreign Affairs [[John Baird (Canadian politician)|John Baird]]
* US Amb to UN Human Rights Commission [[Ken Blackwell]]
{{Expand section|date=March 2023}}
== U.S. House Resolution 374 ==
The HR 374 introduced in 2019 is a bill with broad bipartisan support, [https://www.congress.gov/bill/116th-congress/house-resolution/374?r=8&s=1 Condemning Iranian state-sponsored terrorism and expressing support for the Iranian people's desire for a democratic, secular, and non-nuclear republic of Iran]
It offers support for National Council of Resistance of Iran (NCRI) leader Maryam Rajavi’s 10-point plan for a future Iran - including a universal right to vote, market economy and a non-nuclear Iran.<ref>{{Cite web|url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition|title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror|last=Shaw|first=Adam|date=2020-06-17|website=Fox News|language=en-US|access-date=2023-03-11}}</ref>
It has 221 lawmakers backing it, and was introduced by [[Tom McClintock|Rep. Tom McClintock]] who said in a speech to the OAIC, “There is a reason why a strong bipartisan majority in the United States House of Representatives has come together to co-sponsor this resolution condemning Iran’s terrorist acts,” McClintock said. “It’s because the world is watching the struggle for freedom in Iran, and it is cheering for your cause," observing that Iranian citizens have “taken to the streets and the airwaves” to protest against Ayatollah Ali Khamenei’s regime, which he said has “lost any claim to legitimacy.”<ref>{{Cite web|url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran|title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran|date=2020-06-17|website=Washington Examiner|language=en|access-date=2023-03-11}}</ref>
== 2020-23 Free Iran World Summits ==
In a 2020 [https://iranfreedom.org/en/free-iran-global-summit/ virtual gathering] during COVID-19 Pandemic, Iranians and 1000 current, former officials, international dignitaries, and bipartisan lawmakers, "called on the world community to adopt a more resolute policy".<ref>{{Cite web|url=https://www.washingtontimes.com/news/2020/jul/13/free-iran-global-summit/|title=Free Iran Global Summit|last=https://www.washingtontimes.com|first=The Washington Times|website=The Washington Times|language=en-US|access-date=2023-03-11}}</ref>
The 2021 [https://iranfreedom.org/en/freeiran/ Free Iran World Summit] was an international event dedicated to liberating Iran from its oppressive leadership and paving the way for a free and democratic Iran.<ref>{{Cite web |title=Free Iran World Summit 2021 |url=https://iranfreedom.org/en/freeiran/ |access-date=2022-05-23 |website=Iran Freedom |language=en-US}}</ref> It was supported by the OAIC{{Cn|date=March 2023}} and NCRI.
Foreign dignitaries in attendance included: Janez Janša, Prime Minister of Slovenia, Michael Pompeo, former US Secretary of State (2018-2021), Stephen Harper, former Prime Minister of Canada; former Foreign Ministers for France, Italy, and Poland; and Defense Ministers of United Kingdom and France. and included speeches by 30 US lawmakers, including Senators Robert Menendez, Ted Cruz, Roy Blunt; and Congressmen Kevin McCarthy, and Hakeem Jeffries.<ref>{{Cite web |last=https://www.washingtontimes.com |first=The Washington Times |title=Rhetoric from 'Free Iran' summit strikes nerve, sparks regime's ire |url=https://www.washingtontimes.com/news/2021/jul/11/free-iran-world-summit-2021-sparks-iran-regimes-ir/ |access-date=2023-03-11 |website=The Washington Times |language=en-US}}</ref><ref>{{Cite web |date=2021-07-10 |title=The Free Iran World Summit 2021 |url=https://www.ncr-iran.org/en/ncri-statements/statement-iran-resistance/the-free-iran-world-summit-2021-statement-no-2/ |access-date=2022-05-23 |website=NCRI |language=en-US}}</ref>
{{Expand section|date=March 2023}}
== Mousavi's Call for A Referendum ==
Former prime minister and reformist leader of the [[Green Revolution (Iran)|Green Revolution]], [[Mir-Hossein Mousavi|Mir Hussein Mousavi]] put out a call 3 February 2023, for a referendum and end to clerical rule.<ref>{{Cite web|url=https://www.iranintl.com/en/202302095136|title=Sunni Leader Lauds Call For Referendum By Former Iran PM|website=Iran International|language=en|access-date=2023-03-14}}</ref> Signed by over 400 political activists and journalists, the statement said, "With the current social awakening, and the society’s disillusionment with reforms within the current [political] structure, there is no other way than allowing the people to decide their own destiny." Expressing its support of Mousavi’s three-stage proposal and a “peaceful and non-violent transition” to a democratic government and the “Woman, Life, Freedom” Movement.<ref>{{Cite web|url=https://www.iranintl.com/en/202302132030|title=Hundreds Of Activists Support Mousavi's Call To End Clerical Rule|website=Iran International|language=en|access-date=2023-03-14}}</ref> Although not supporting regime change, he supports calling a [[constituent assembly]], and a new constitution.
According to [[Iran International]] he "seemed to reject reform as an alternative, urguing fundamental change." And "implicitly repeated what exiled Prince Reza Pahlavi has been saying for years, and other opposition activists have echoed in the past five months – transition from the Islamic Republic."<ref>{{Cite web|url=https://www.iranintl.com/en/202302049934|title=Opposition Figure In Iran Calls For Fundamental Change, New Constitution|website=Iran International|language=en|access-date=2023-03-14}}</ref> Pahlavi has embraced Mousavi's call for a new constitution, and says that the opposition must be "big tent" willing to embrace defectors. According to [[Al Arabiya]] the opposition is "stronger and more unified than ever".<ref>{{Cite web|url=https://english.alarabiya.net/views/2023/03/02/Mousavi-deserts-Iran-s-regime-|title=Mousavi deserts Iran's regime|date=2023-03-02|website=Al Arabiya English|language=en|access-date=2023-03-14}}</ref>
Mousavi announced that "''he no longer supports the current [[Constitution of Iran|Islamic Republic constitution]]"'', and asked for a widespread referendum to fully change the constitution and make a fundamental change in Iran's political system.<ref>{{Cite news|url=https://www.bbc.com/persian/iran-64522691|title=میرحسین موسوی خواهان قانون اساسی جدید و تشکیل مجلس موسسان «برای نجات ایران» شد|work=BBC News فارسی|access-date=2023-02-05|language=fa}}</ref> Among many leading dissidents who publicly endorsed Mousavi’s call for a referendum, Iran’s top Sunni cleric, Mowlavi Abdolhamid stated, “With his recent statement, Mousavi showed that he understood the realities of society. It’s time for other politicians and ulema (religious scholars) to think about saving the country and see the facts.”<ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-14}}</ref>
== 2023 "Future of the Movement" Summit and Joint "Mahsa Charter" ==
[[The future of Iran’s democracy movement]] was a conference hosted by the Georgetown Institute for Women, Peace and Security ([[Georgetown Institute for Women, Peace and Security|GIWPS)]].<ref>{{Cite web|url=https://www.voanews.com/a/prominent-iranian-dissidents-unite-to-discuss-democracy-movement-/6959274.html|title=Prominent Iranian Dissidents Unite to Discuss Democracy Movement|website=VOA|language=en|access-date=2023-03-13}}</ref><ref>{{Cite web|url=https://giwps.georgetown.edu/event/the-future-of-irans-democracy-movement-event/|title=The Future of Iran's Democracy Movement|website=GIWPS|language=en-US|access-date=2023-03-04}}</ref> The [https://adfiran.com/en/docs/mahsa-charter Joint charter] was released in early march, on a website for the group that now styles itself the '''"Alliance for Democracy and Freedom in Iran"''' (ADFI), and declares this to be the "'''[[Woman, Life, Freedom]] revolution'''".
Attending the summit meeting were 8 prominent diaspora leaders of the movement: actresses [[Nazanin Boniadi]] and [[Golshifteh Farahani]], Nobel Peace Prize Laureate [[Shirin Ebadi]], activists [[Masih Alinejad]] and Dr. [[Hamed Esmaeilion]]; former soccer captain Ali Karimi, former [[Reza Pahlavi, Crown Prince of Iran|crown prince Reza Pahlavi]], and Kurdish leader [[Abdullah Mohtadi]]. They claim to represent the country's "democracy movement".
Mr. Pahlavi insists that whoever Iranians then elect in a free and open referendum is up to them, saying, "The role that I'm offering in this process of transition is to be of help to maintain a smooth process — to maximise the participation of democratic forces in this process."<ref>{{Cite news|url=https://www.abc.net.au/news/2023-02-14/iran-exiled-crown-prince-reza-pahlavi-revolution-regime-change/101961372|title=Why the exiled crown prince of Iran thinks the Islamic Republic is coming to an end|date=2023-02-13|work=ABC News|access-date=2023-03-13|language=en-AU}}</ref>
This effort received some attention from the press,<ref>{{Cite web|url=https://www.historytoday.com/archive/history-matters/women-life-freedom|title=Women, Life, Freedom {{!}} History Today|website=www.historytoday.com|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://msmagazine.com/2023/02/17/iran-democracy/|title=The Future of Iran's Democracy Movement|last=Security|first=Georgetown Institute for Women, Peace and|date=2023-02-17|website=Ms. Magazine|language=en-US|access-date=2023-03-04}}</ref> and are seeking support from the international community.<ref>{{Cite web|url=https://freedomhouse.org/article/how-support-irans-democracy-movement|title=How to Support Iran's Democracy Movement|website=Freedom House|language=en|access-date=2023-03-04}}</ref>
== Trade Unions Joint Charter ==
A joint charter with a list of 12 "minimum demands” has been published and signed by twenty independent Iranian trade unions, feminist groups and student organizations.<ref>{{Cite web|url=https://iranwire.com/en/politics/113866-iranian-trade-unions-civic-groups-issue-charter-of-minimum-demands|title=Trade Unions Issue Charter Of Minimum Demands|date=16 February 2023|website=Iran Wire}}</ref><ref>{{Cite web|url=https://www.atlanticcouncil.org/blogs/iransource/irans-women-life-freedom-revolution-has-a-manifesto-here-are-the-next-steps/|title=Iran's 'women, life, freedom' revolution has a manifesto. Here are the next steps.|last=Dagres|first=Holly|date=2023-02-23|website=Atlantic Council|language=en-US|access-date=2023-03-13}}</ref> Signatories include:
* The Coordinating Council of Iran's Teachers Trade Unions
* The Free Union of Iran Workers
* The Union of Free Students
* The Center for Human Rights Defenders
* The Syndicate of Workers of Nishekar Heft Tepeh Company
* The Organization Council of Oil Contractual Workers’ Protests
* Iran Cultural House (Khafa)
* Bidarzani
* The Call of Iranian Women
* The Independent Voice of Ahvaz National Steel Group Workers
* The Labor Rights Defenders Center
* The Kermanshah Electric and Metal Workers’ Union
* The Coordination Committee to help create labor organizations
* The Union of Pensioners
* The Council of Pensioners of Iran
* The Progressive Students Organization
* The Council of Free-Thinking Students of Iran
* The Alborz Province Painters’ Syndicate
* The Committee to Follow up on the Creation of Labor Organizations of Iran
* The Council of Retirees of the Social Security Administration (BASTA)
== 2023 U.S. House Resolution 100 ==
House Resolution 100 was introduced by Rep. Tom McClintock, R-Calif., expresses [https://www.congress.gov/bill/118th-congress/house-resolution/100/text?s=2&r=10 Congress’ support of a democratic, secular and non-nuclear republic]. There are 75 Democrats signed onto the resolution, among 222 members of the 435-member House.<ref>{{Cite web|url=https://www.foxnews.com/politics/resolution-backing-secular-democratic-iran-picks-majority-bipartisan-support-in-house|title=Resolution backing secular, democratic Iran republic picks up majority bipartisan support in House|last=Shaw|first=Adam|date=2023-03-09|website=Fox News|language=en-US|access-date=2023-03-13}}</ref>
The resolution voices “support for the opposition leader Mrs. Maryam Rajavi’s 10-point plan for the future of Iran, which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.”<ref>{{Cite web|url=https://mcclintock.house.gov/newsroom/press-releases/mcclintock-introduced-house-resolution-with-over-160-co-sponsors-in-support|title=McClintock Introduced House Resolution With Over 160 Co-sponsors in Support of a Free, Democratic, and Secular Republic in Iran|date=2023-02-08|website=Congressman Tom McClintock|language=en|access-date=2023-03-13}}</ref>
== Regime de-stabilization during the Iran-Israel war ==
The [[w:Iran-Israel_war|Iran-Israel war]].
== Organized Resistance Groups ==
=== National Council of Resistance of Iran ===
The [[National Council of Resistance of Iran]] is recognized as the diplomatic wing of the MEK, [[People's Mojahedin Organization of Iran]], opposing the Islamic Republic.<ref>{{citation |last1=Cohen |first1=Ronen A. |title=The Mojahedin-e Khalq versus the Islamic Republic of Iran: from war to propaganda and the war on propaganda and diplomacy |url=https://www.tandfonline.com/doi/full/10.1080/00263206.2018.1478813 |journal=Middle Eastern Studies |volume=54 |issue=6 |pages=1000–1014 |year=2018 |doi=10.1080/00263206.2018.1478813 |s2cid=149542445}}</ref><ref name="Katzman2012">Kenneth Katzman, [https://books.google.com/books?id=cfdMAgAAQBAJ&pg=PA317 Document No.9 Iran:U.S. Concerns and Policy: Responses, CRS Report RL32048], in Kristen Boon, Aziz Z. Huq, Douglas Lovelace (eds.) ''Global Stability and U.S. National Security,'' [[Oxford University Press]], 2012 pp.297-383 p.317.</ref><ref name="Fayazmanesh">Sasan Fayazmanesh, [https://books.google.com/books?id=SMiTAgAAQBAJ&pg=PA79 ''The United States and Iran: Sanctions, Wars and the Policy of Dual Containment,''] [[Routledge]], 2008 pp.79,81.</ref>
They have articulated a [[National Council of Resistance of Iran#Constitutional platform|Constitutional platform]].
A majority of members of the US House of Representatives backed a “bipartisan resolution” in June 2020 supporting [[Maryam Rajavi]] and the NCRI's “call for a secular, democratic Iran” while “condemning Iranian [[state-sponsored terrorism]]”. The resolution, backed by 221 lawmakers, gave support to the Rajavi's 10-point plan for Iran's future (which include “a universal right to vote, market economy, and a non-nuclear Iran”) while calling on the prevention of “malign activities of the Iranian regime’s diplomatic missions.” The resolution also called on the U.S. to stand “with the people of Iran who are continuing to hold legitimate and peaceful protests” against the Iranian government.<ref>{{Cite web |date=17 June 2020 |title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror |url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition |website=[[Fox News]]}}</ref><ref>{{Cite web |date=17 June 2020 |title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran |url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran}}</ref>
=== Organization of Iranian American Communities ===
The [[Organization of Iranian American Communities]] is allied with the [[People's Mujahedin of Iran|People's Mojahedin Organization of Iran]], or the Mojahedin-e Khalq (MEK), which advocates the overthrow of the [[government of Iran]].<ref>{{Cite web |last=Lipin |first=Michael |date=17 March 2018 |title=US Senators Pledge Help to Iranian Group Seeking End to Iran's Islamist Rule |url=https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-url=https://web.archive.org/web/20181217191816/https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-date=17 December 2018 |access-date=17 December 2018 |website=VOA}}</ref><ref>{{Cite web |last1=Gharib |first1=Ali |last2=Clifton |first2=Eli |date=26 February 2015 |title=Long March of the Yellow Jackets: How a One-Time Terrorist Group Prevailed on Capitol Hill |url=https://theintercept.com/2015/02/26/long-march-yellow/ |access-date=17 December 2018 |website=The Intercept}}</ref><ref>{{Cite web |last=Ackerman |first=Spencer |date=19 September 2018 |title=Giuliani to Speak Beside Leader of Accused Iranian 'Cult' |url=https://www.thedailybeast.com/giuliani-to-speak-beside-leader-of-accused-iranian-cult |access-date=17 December 2018 |website=Daily Beast}}</ref>
The OIAC does not support a foreign war, nor does it support an appeasement policy towards Iran. More specifically, OIAC supports the 10-point plans by Mrs. Maryam Rajavi<ref>{{Cite web |title=Maryam Rajavi {{!}} President-elect of the National Council of Resistance of Iran (NCRI) |url=https://www.maryam-rajavi.com/en/ |access-date=2022-05-23 |website=Maryam Rajavi |language=en-US}}</ref> for a democratic Iran that aligns with security for America and peace in the Middle East and beyond. OIAC works in collaboration with all Iranian-Americans and concerned citizens across the country to achieve its mission and vision. OIAC holds yearly protests outside the [[United Nations]] building against Iranian Presidents<ref>[https://www.usnews.com/news/best-states/new-york/articles/2017-09-20/protesters-rally-against-iranian-president-at-un Protesters Rally Against Iranian President at United Nations] by REBECCA GIBIAN, [[Associated Press]]; 20 September 2017</ref> and at times outside the [[White House]] "in solidarity with [[2017–18 Iranian protests|protesters in Iran]]".<ref>[https://wtop.com/white-house/2018/01/demonstrators-gather-wh-support-iranian-liberty-democracy/slide/1/ Demonstrators gather at White House to support Iranian ‘liberty, democracy’]; By Dick Uliano, [[WTOP-FM]], 6 January 2018</ref><ref>{{Cite web |last=Laipson |first=Ellen |date=January 9, 2018 |title=The Foreign Policy Aftermath of the Iran Protests, in Tehran and Washington |url=https://www.worldpoliticsreview.com/the-foreign-policy-aftermath-of-the-iran-protests-in-tehran-and-washington/}}</ref> According to Joanne Stocker, "the Organization of Iranian American Communities have played a crucial role in securing broad, bipartisan support in the United States for the opposition group by successfully portraying the group as a democratic, human rights-supporting alternative to the current regime."<ref>{{Cite news |title=The White House Once Labeled Them Terrorists. Now They're Being Called Iran's Next Government |newspaper=Haaretz |url=https://www.haaretz.com/middle-east-news/iran/2019-08-13/ty-article/.premium/white-house-once-labeled-them-terrorists-now-it-calls-them-irans-next-government/0000017f-dc2a-db5a-a57f-dc6a244b0000}}</ref>
=== Democratic Party of Iranian Kurdistan ===
The [[Democratic Party of Iranian Kurdistan]] (KDPI), is an armed leftist [[ethnic party]] of [[Kurds in Iran]], exiled in northern [[Iraq]].<ref name="WRI">{{Citation |last1=Buchta |first1=Wilfried |title=Who rules Iran?: the structure of power in the Islamic Republic |pages=102, 104 |year=2000 |place=Washington DC |publisher=The Washington Institute for Near East Policy, The Konrad Adenauer Stiftung |isbn=978-0-944029-39-8}}</ref> It is banned in Iran and thus not able to operate openly.<ref>United Kingdom: Home Office, Country Information and Guidance - Iran: Kurds and Kurdish political groups, July 2016, Version 2.0, available at: http://www.refworld.org/docid/578f67c34.html [accessed 18 March 2017]</ref>
The group calls for [[self-determination]] of Kurdish people<ref name="merip">{{cite web|url=http://www.merip.org/mer/mer141/major-kurdish-organizations-iran|title=Major Kurdish Organizations in Iran|author=Martin Van Bruinessen|date=20 July 1986|publisher=[[Middle East Research and Information Project]]|access-date=29 January 2017}}</ref> and has been described as seeking either [[Kurdish separatism in Iran|separatism]]<ref name="stratfor">{{cite web |date=29 July 2016 |title=Iranian Kurds Return to Arms |url=https://www.stratfor.com/analysis/iranian-kurds-return-arms |access-date=29 September 2016 |publisher=[[Stratfor]]}}</ref><ref>{{Citation |title=Freedom in the World 2011: The Annual Survey of Political Rights and Civil Liberties |page=321 |year=2011 |contribution=[[Freedom House]] |publisher=Rowman & Littlefield Publishers |isbn=9781442209961}}</ref><ref name="APS">{{cite book|author1=Alex Peter Schmid|author2=A. J. Jongman|title=Political terrorism: a new guide to actors, authors, concepts, data bases, theories, & literature|year=2005|publisher=Transaction Publishers|isbn=978-1-4128-0469-1|page=579|entry=Kurdish Democratic Party of Iran}}</ref> or [[autonomy]] within a [[Federalism|federal]] system.<ref name="WRI" /><ref>{{cite encyclopedia |title=QĀSEMLU, ʿABD-AL-RAḤMĀN |encyclopedia=[[Encyclopædia Iranica]] |publisher=Bibliotheca Persica Press |url=http://www.iranicaonline.org/articles/qasemlu |access-date=August 1, 2016 |last=Prunhuber |first=Carol |date=February 18, 2012 |editor-last=Yarshater |editor-first=Ehsan |editor-link=Ehsan Yarshater}}</ref>
Since 1979, KDPI has waged a persistent guerrilla war against the [[Government of the Islamic Republic of Iran]].<ref name="WRI" /> This included the [[1979 Kurdish rebellion in Iran|1979–1983 Kurdish insurgency]], its [[KDPI insurgency (1989–96)|1989–1996 insurgency]] and [[2016 West Iran clashes|recent clashes in 2016]].
=== National Council of Iran ===
The [[National Council of Iran]], according to ''[[Observer.com|The Observer]]'', serves as [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]]'s [[government in exile]] in order to reclaim the former throne after overthrowing the current government.<ref name="Observer">{{cite web |author=Parker Richards |date=29 January 2016 |title=Pahlavi, Elie Wiesel, Rev. King to Be Honored for Promoting Peace |url=http://observer.com/2016/01/breaking-yoko-ono-iranian-prince-and-others-to-be-honored-for-promoting-peace/ |access-date=1 June 2017 |website=[[New York Observer|Observer]]}}</ref> It has also been described as an organization that profiles him as "the new [[president of Iran]]".<ref name="Milczanowski">{{citation |author=Maciej Milczanowski |title=US Policy towards Iran under President Barack Obama's Administration |date=2014 |url=http://www.iksiopan.pl/images/czasopisma/hemispheres/hemispheres_29_4.pdf |journal=Hemispheres: Studies on Cultures and Societies |volume=29 |number=4 |pages=53–66 |publisher=Institute of Mediterranean and Oriental Cultures Polish Academy of Sciences |issn=0239-8818}}</ref>
The "self-styled"<ref name="Milczanowski" /> National Council claims to have gathered "tens of thousands of pro-democracy proponents from both inside and outside Iran."<ref name="AP">{{cite web |author=Jon Gambrell |date=9 April 2017 |title=Iran's long-exiled prince wants a revolution in age of Trump |url=http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-url=https://web.archive.org/web/20170409074842/http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-date=9 April 2017 |access-date=25 January 2019 |publisher=Associated Press}}</ref> It also claims to represent religious and ethnic minorities.<ref>{{cite web |author=Sonia Verma |date=6 June 2014 |title=Shah's son seeks support for people's revolution against Iran |url=https://www.theglobeandmail.com/news/world/shahs-son-seeks-support-for-peoples-revolution-against-iran/article19059694/ |access-date=17 June 2017 |publisher=The Globe and Mail}}</ref> According to Kenneth Katzman, in 2017 the group which was established with over 30 groups has "suffered defections and its activity level appears minimal".<ref name="KK">{{citation |author=Kenneth Katzman |title=Iran: Politics, Human Rights, and U.S. Policy |date=2 June 2017 |url=https://fas.org/sgp/crs/mideast/RL32048.pdf |page=27 |access-date=16 June 2017 |publisher=Federation of American Scientists}}</ref>
== Criticism ==
Remarking on the initial international response to the Tehran protests, Iranian-American journalist and activist [[Masih Alinejad]] said, "The first group who came to the streets were women of Afghanistan, can you believe that? The Western feminists who actually went to my country, wore a hijab, and bowed to the Taliban—they didn’t take to the streets.”
“Most of them have never gone and lived under Sharia law,” she said of Western feminists. “And they don’t even let us talk about our own experiences.
Here they tell me, ‘Shh! If you talk about this, you’re going to cause Islamophobia.’ Phobia is irrational, but believe me my fear and the fear of millions of Iranian women is rational.”<ref>{{Cite web |date=2023-03-11 |title=Self-centered feminists have forgotten the women of Iran |url=https://nypost.com/2023/03/11/self-centered-feminists-have-forgotten-the-women-of-iran/ |access-date=2023-03-13 |language=en-US}}</ref>
== Bibliography and References ==
{{refbegin}}
* {{Cite news |last= |date=2023-02-10 |title=Iran exiled opposition figures in talks to unite against government |language=en |work=Reuters |url=https://www.reuters.com/world/middle-east/iran-exiled-opposition-figures-talks-unite-against-government-2023-02-10/ |access-date=2023-02-12}}{{Relevance?|date=March 2023}}
* {{Cite web |title=Prominent Iranian Opposition Figures Pledge Unity, Urge World Support |url=https://www.iranintl.com/en/202302109922 |access-date=2023-02-12 |website=Iran International |language=en}}{{Relevance?|date=March 2023}}
* {{Cite web |last= |date=2023-02-07 |title=Gauging the future of Iran's democracy movement |url=https://www.demdigest.org/gauging-the-future-of-irans-democracy-movement/ |access-date=2023-02-12 |website=Democracy Digest |language=en-US}}{{Relevance?|date=March 2023}}
* {{cite journal |last=Sherrill |first=Clifton |year=2011 |title=After Khamenei: Who Will Succeed Iran's Supreme Leader? |journal=Orbis |volume=55 |issue=4 |pages=631–47 |doi=10.1016/j.orbis.2011.07.002}}{{Relevance?|date=March 2023}}
{{expand section|date=March 2023}}
{{refend}}
==Notes==
{{Reflist}}{{Protests in Iran}}
2birwuzx7c03ilw1lig519rwaahfqwz
2718879
2718872
2025-06-17T19:25:33Z
Jaredscribe
2906761
/* Regime de-stabilization during the Iran-Israel war */ interview with Iran International's anchor Pouria Zeraati, Israeli president Netanyahu said
2718879
wikitext
text/x-wiki
'''Democracy movements''' in [[Iran]] and its diaspora comprise a diverse range of dissidents, political and cultural leaders, and militants working for [[w:Regime_change|regime change]], with new constitutional frameworks and transition plans proposed, since the [[w:2016_Cyrus_the_Great_Revolt|2016 Cyrus the Great Revolt]] through the [[w:2017–2021_Iranian_protests|2017–2021 Iranian protests]] to the present, including notable episodes [[w:Ukraine_International_Airlines_Flight_752_protests|Ukraine International Airlines Flight 752 protests]] and [[w:2019–2020_Iranian_protests|Bloody Aban protests and crackdown]]. During the 2022 [[w:Mahsa_Amini_protests|Mahsa Amini protests]] which occurred in Iran as a response to the [[w:Death_of_Mahsa_Amini|death of Mahsa Amini]], the chant [[w:Woman,_Life,_Freedom|Woman, Life, Freedom]] ({{Langx|ku|Jin, Jiyan, Azadî}}, {{Lang|ku|ژن، ژیان، ئازادی}}) became widely used, a [[w:Kurds|Kurdish]] slogan used in both the [[w:Kurdish_Nationalism|Kurdish independence]] and [[w:Democratic_confederalism|democratic confederalist]] movements.<ref>{{Cite book |last=Dirik |first=Dilar |title=The Kurdish Women's Movement: History, Theory, and Practice |publisher=Pluto Press |year=2022}}</ref><ref>{{Cite book |last=Bocheńska |first=Joanna |title=Rediscovering Kurdistan's Cultures and Identities: The Call of the Cricket |publisher=[[Palgrave Macmillan]] |year=2018 |pages=47}}</ref><ref name=":32">{{Cite book |last=Çağlayan |first=Handan |title=Women in the Kurdish Movement: Mothers, Comrades, Goddesses |publisher=[[Springer Nature]] |year=2019 |pages=197}}</ref><ref>{{Cite web |last1=Bayram |first1=Seyma |last2=Mohtasham |first2=Diba |date=27 October 2022 |title=Iran's protesters find inspiration in a Kurdish revolutionary slogan |url=https://wusfnews.wusf.usf.edu/2022-10-27/irans-protesters-find-inspiration-in-a-kurdish-revolutionary-slogan |access-date=19 November 2022 |publisher=[[University of South Florida]]}}</ref>
The [[Draft:Iranian democracy movements#Regime de-stabilization during the Iran-Israel war|regime has been de-stabilized during the Iran-Israel war of 2025]].
The [[Draft:Iranian democracy movements#2023 U.S. House Resolution 100|US House Resolution 100]] has broad bipartisan support for the 10 point plan put forward by the [[Draft:Iranian democracy movements#National Council of Resistance of Iran|National Council of Resistance of Iran]]'s leader [[Maryam Rajavi]], which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.
A summit of prominent diaspora opposition leaders recently presented a [[Iranian Democracy Movement#2023 Diaspora Summit and Joint Charter|vision for Iran's future at a summit]] in Washington, which included the son of the former Shah, [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]], who has renounced the monarchy and has long advocated for free elections to form a [[constituent assembly]] that could determine the future form of governance in Iran. Of the more than 390,000 supporters of a change.org petition declaring Pahlavi "my representative", many emphasized that they only backed him as an “interim figure” who could bring about a democratic transition away from the Islamic Republic, not to restore the fallen monarchy.<ref>{{Cite web |last=Dagres |first=Holly |date=2023-01-24 |title=Can Reza Pahlavi help unite the Iranian opposition? A hashtag is suggesting so. |url=https://www.atlanticcouncil.org/blogs/iransource/can-reza-pahlavi-help-unite-the-iranian-opposition-a-hashtag-is-suggesting-so/ |access-date=2023-03-13 |website=Atlantic Council |language=en-US}}</ref> Invited to speak on Iran's future at the [[59th Munich Security Conference]]<ref>{{Cite web |title=Woman, Life, Freedom: Visions for Iran - Munich Security Conference |url=https://securityconference.org/en/medialibrary/asset/woman-life-freedom-visions-for-iran-20230218-1616/ |access-date=2023-03-17 |website=securityconference.org |language=en-GB}}</ref>, one of Pahlavi's cohorts denounced the MEK/NCRI. The [[International Business Times]] comments that he has no expereince, and is trying to "pluck the fruits of others labor".<ref>{{Cite web |last=McColm |first=R. Bruce |date=2023-03-05 |title=In Iran, Why The Son Of A Deposed Dictator Is Not The Answer |url=https://www.ibtimes.com/illusion-relevance-why-son-deposed-dictator-not-answer-3673282 |access-date=2023-03-15 |website=International Business Times |language=en-US}}</ref> The NCRI has denounced the son of the former Shah. The MEK Spokesperson called on him "to first return the billions of dollars his father stole from the nation, denounce the atrocities committed by his grandfather and father and distance himself from the [[Islamic Revolutionary Guard Corps|IRGC]] and the [[Basij]], which he had previously praised as guardians of Iran’s territorial integrity and law and order in society".<ref>{{Cite web |last=Writer |first=Staff |date=2023-01-22 |title=Selling a Dead Horse: Reza Pahlavi's Bid to Market a Trashed Dictatorship |url=https://www.ncr-iran.org/en/news/anews/who-is-who/selling-a-dead-horse-reza-pahlavis-bid-to-market-a-trashed-monarchy/ |access-date=2023-03-15 |website=NCRI |language=en-US}}</ref>
Twenty independent Iranian trade unions, feminist groups and student organizations published a [[Iranian Democracy Movement#Trade Unions Joint Charter|Joint Charter with a list of 12 minimum demands]].
== 1950's Democratic Election and Monarchist Coup ==
[[w:Mohammad_Mosaddegh|Mohammed Mossadegh]] was democratically elected, but overthrown in the [[w:1953_Iranian_coup_d'état|1953 Iranian coup d'etat]] instigated by the U.K. and assisted by the U.S. CIA.
{{Expand section|date=March 2023}}
== Democratic movements and the Revolution of '79 ==
[[w:Freedom_Movement_of_Iran|Freedom Movement of Iran]] (FMI), or '''Liberation Movement of Iran''' (LMI) is an Iranian pro-[[democracy]] political organization founded in 1961, by members describing themselves as "Muslims, Iranians, Constitutionalists and [[w:Mohammad_Mossadegh|Mossadeghists]]".
[[w:Ruhollah_Khomeini|Ruhollah Khomeini]] was exiled in 1964 for opposing the [[w:Mohammad_Reza_Pahlavi|shah Pahlavi]]'s monarchist rule, he later became the [[w:Supreme_Leader_of_Iran|Supreme Leader of Iran]] after the [[w:Iranian_Revolution|1979 revolution]].
{{Expand section}}
== 2016 Cyrus the Great revolt through 2023 Mahsa Amini protests ==
{{Expand section|date=March 2023}}
[[2016 Cyrus the Great Revolt|2016 Cyrus the Great revolt]]
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2019–2020 Iranian protests|Bloody Aban protests and crackdown]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Ukraine International Airlines Flight 752 protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[2017–2021 Iranian protests]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
[[Mahsa Amini protests#Historical Background]]{{Relevance|date=March 2023}}
{{Expand section|date=March 2023}}
== 2022 Free Iran World Summit ==
The [https://iranfreedom.org/en/freeiran2022/ 2022 Free Iran World Summit] was a three-day international event 22-24 July, and featured speeches by many foreign dignataries. Advertised speakers were:
* Former Jordanian Minister of Development and Ambassador to Iran, Dr. Bassam Al-Omoush
* [[Michael Mukasey|Michael Mukaesey]], US Attorney General 2007-2009
* First US Secretary of Homeland Security [[Tom Ridge]]
* Former US Senator [[Joe Lieberman]]
* [[Linda Chavez]], former Director of White House Office of Public Liaison
* Former French Foreign Minster [[Bernard Kouchner]]
* Former French Minister of Foreign Affairs, Defense, Justice, [[Michèle Alliot-Marie]]
* Presidential candidate of Colombia, [[Íngrid Betancourt|Ingrid Betancour]]<nowiki/>t
* Former Speaker of British House of Commons, Rt. Hon [[John Bercow]]
* Former Canadian Minister of Industry, Health, Hon. [[Tony Clement]]
* Former US Amb to Morocco [[Marc C. Ginsberg|Marc Ginsberg]]
* Former US Undersecretary of State for Arms Control and International Security [[Robert Joseph]]
* Former Candian Minister of Foreign Affairs [[John Baird (Canadian politician)|John Baird]]
* US Amb to UN Human Rights Commission [[Ken Blackwell]]
{{Expand section|date=March 2023}}
== U.S. House Resolution 374 ==
The HR 374 introduced in 2019 is a bill with broad bipartisan support, [https://www.congress.gov/bill/116th-congress/house-resolution/374?r=8&s=1 Condemning Iranian state-sponsored terrorism and expressing support for the Iranian people's desire for a democratic, secular, and non-nuclear republic of Iran]
It offers support for National Council of Resistance of Iran (NCRI) leader Maryam Rajavi’s 10-point plan for a future Iran - including a universal right to vote, market economy and a non-nuclear Iran.<ref>{{Cite web|url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition|title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror|last=Shaw|first=Adam|date=2020-06-17|website=Fox News|language=en-US|access-date=2023-03-11}}</ref>
It has 221 lawmakers backing it, and was introduced by [[Tom McClintock|Rep. Tom McClintock]] who said in a speech to the OAIC, “There is a reason why a strong bipartisan majority in the United States House of Representatives has come together to co-sponsor this resolution condemning Iran’s terrorist acts,” McClintock said. “It’s because the world is watching the struggle for freedom in Iran, and it is cheering for your cause," observing that Iranian citizens have “taken to the streets and the airwaves” to protest against Ayatollah Ali Khamenei’s regime, which he said has “lost any claim to legitimacy.”<ref>{{Cite web|url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran|title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran|date=2020-06-17|website=Washington Examiner|language=en|access-date=2023-03-11}}</ref>
== 2020-23 Free Iran World Summits ==
In a 2020 [https://iranfreedom.org/en/free-iran-global-summit/ virtual gathering] during COVID-19 Pandemic, Iranians and 1000 current, former officials, international dignitaries, and bipartisan lawmakers, "called on the world community to adopt a more resolute policy".<ref>{{Cite web|url=https://www.washingtontimes.com/news/2020/jul/13/free-iran-global-summit/|title=Free Iran Global Summit|last=https://www.washingtontimes.com|first=The Washington Times|website=The Washington Times|language=en-US|access-date=2023-03-11}}</ref>
The 2021 [https://iranfreedom.org/en/freeiran/ Free Iran World Summit] was an international event dedicated to liberating Iran from its oppressive leadership and paving the way for a free and democratic Iran.<ref>{{Cite web |title=Free Iran World Summit 2021 |url=https://iranfreedom.org/en/freeiran/ |access-date=2022-05-23 |website=Iran Freedom |language=en-US}}</ref> It was supported by the OAIC{{Cn|date=March 2023}} and NCRI.
Foreign dignitaries in attendance included: Janez Janša, Prime Minister of Slovenia, Michael Pompeo, former US Secretary of State (2018-2021), Stephen Harper, former Prime Minister of Canada; former Foreign Ministers for France, Italy, and Poland; and Defense Ministers of United Kingdom and France. and included speeches by 30 US lawmakers, including Senators Robert Menendez, Ted Cruz, Roy Blunt; and Congressmen Kevin McCarthy, and Hakeem Jeffries.<ref>{{Cite web |last=https://www.washingtontimes.com |first=The Washington Times |title=Rhetoric from 'Free Iran' summit strikes nerve, sparks regime's ire |url=https://www.washingtontimes.com/news/2021/jul/11/free-iran-world-summit-2021-sparks-iran-regimes-ir/ |access-date=2023-03-11 |website=The Washington Times |language=en-US}}</ref><ref>{{Cite web |date=2021-07-10 |title=The Free Iran World Summit 2021 |url=https://www.ncr-iran.org/en/ncri-statements/statement-iran-resistance/the-free-iran-world-summit-2021-statement-no-2/ |access-date=2022-05-23 |website=NCRI |language=en-US}}</ref>
{{Expand section|date=March 2023}}
== Mousavi's Call for A Referendum ==
Former prime minister and reformist leader of the [[Green Revolution (Iran)|Green Revolution]], [[Mir-Hossein Mousavi|Mir Hussein Mousavi]] put out a call 3 February 2023, for a referendum and end to clerical rule.<ref>{{Cite web|url=https://www.iranintl.com/en/202302095136|title=Sunni Leader Lauds Call For Referendum By Former Iran PM|website=Iran International|language=en|access-date=2023-03-14}}</ref> Signed by over 400 political activists and journalists, the statement said, "With the current social awakening, and the society’s disillusionment with reforms within the current [political] structure, there is no other way than allowing the people to decide their own destiny." Expressing its support of Mousavi’s three-stage proposal and a “peaceful and non-violent transition” to a democratic government and the “Woman, Life, Freedom” Movement.<ref>{{Cite web|url=https://www.iranintl.com/en/202302132030|title=Hundreds Of Activists Support Mousavi's Call To End Clerical Rule|website=Iran International|language=en|access-date=2023-03-14}}</ref> Although not supporting regime change, he supports calling a [[constituent assembly]], and a new constitution.
According to [[Iran International]] he "seemed to reject reform as an alternative, urguing fundamental change." And "implicitly repeated what exiled Prince Reza Pahlavi has been saying for years, and other opposition activists have echoed in the past five months – transition from the Islamic Republic."<ref>{{Cite web|url=https://www.iranintl.com/en/202302049934|title=Opposition Figure In Iran Calls For Fundamental Change, New Constitution|website=Iran International|language=en|access-date=2023-03-14}}</ref> Pahlavi has embraced Mousavi's call for a new constitution, and says that the opposition must be "big tent" willing to embrace defectors. According to [[Al Arabiya]] the opposition is "stronger and more unified than ever".<ref>{{Cite web|url=https://english.alarabiya.net/views/2023/03/02/Mousavi-deserts-Iran-s-regime-|title=Mousavi deserts Iran's regime|date=2023-03-02|website=Al Arabiya English|language=en|access-date=2023-03-14}}</ref>
Mousavi announced that "''he no longer supports the current [[Constitution of Iran|Islamic Republic constitution]]"'', and asked for a widespread referendum to fully change the constitution and make a fundamental change in Iran's political system.<ref>{{Cite news|url=https://www.bbc.com/persian/iran-64522691|title=میرحسین موسوی خواهان قانون اساسی جدید و تشکیل مجلس موسسان «برای نجات ایران» شد|work=BBC News فارسی|access-date=2023-02-05|language=fa}}</ref> Among many leading dissidents who publicly endorsed Mousavi’s call for a referendum, Iran’s top Sunni cleric, Mowlavi Abdolhamid stated, “With his recent statement, Mousavi showed that he understood the realities of society. It’s time for other politicians and ulema (religious scholars) to think about saving the country and see the facts.”<ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-14}}</ref>
== 2023 "Future of the Movement" Summit and Joint "Mahsa Charter" ==
[[The future of Iran’s democracy movement]] was a conference hosted by the Georgetown Institute for Women, Peace and Security ([[Georgetown Institute for Women, Peace and Security|GIWPS)]].<ref>{{Cite web|url=https://www.voanews.com/a/prominent-iranian-dissidents-unite-to-discuss-democracy-movement-/6959274.html|title=Prominent Iranian Dissidents Unite to Discuss Democracy Movement|website=VOA|language=en|access-date=2023-03-13}}</ref><ref>{{Cite web|url=https://giwps.georgetown.edu/event/the-future-of-irans-democracy-movement-event/|title=The Future of Iran's Democracy Movement|website=GIWPS|language=en-US|access-date=2023-03-04}}</ref> The [https://adfiran.com/en/docs/mahsa-charter Joint charter] was released in early march, on a website for the group that now styles itself the '''"Alliance for Democracy and Freedom in Iran"''' (ADFI), and declares this to be the "'''[[Woman, Life, Freedom]] revolution'''".
Attending the summit meeting were 8 prominent diaspora leaders of the movement: actresses [[Nazanin Boniadi]] and [[Golshifteh Farahani]], Nobel Peace Prize Laureate [[Shirin Ebadi]], activists [[Masih Alinejad]] and Dr. [[Hamed Esmaeilion]]; former soccer captain Ali Karimi, former [[Reza Pahlavi, Crown Prince of Iran|crown prince Reza Pahlavi]], and Kurdish leader [[Abdullah Mohtadi]]. They claim to represent the country's "democracy movement".
Mr. Pahlavi insists that whoever Iranians then elect in a free and open referendum is up to them, saying, "The role that I'm offering in this process of transition is to be of help to maintain a smooth process — to maximise the participation of democratic forces in this process."<ref>{{Cite news|url=https://www.abc.net.au/news/2023-02-14/iran-exiled-crown-prince-reza-pahlavi-revolution-regime-change/101961372|title=Why the exiled crown prince of Iran thinks the Islamic Republic is coming to an end|date=2023-02-13|work=ABC News|access-date=2023-03-13|language=en-AU}}</ref>
This effort received some attention from the press,<ref>{{Cite web|url=https://www.historytoday.com/archive/history-matters/women-life-freedom|title=Women, Life, Freedom {{!}} History Today|website=www.historytoday.com|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://thehill.com/opinion/international/3862909-from-reform-to-revolution-what-is-the-future-of-irans-democracy-movement/|title=From reform to revolution: What is the future of Iran's democracy movement?|last=Bijan Ahmadi|first=Opinion Contributor|date=2023-02-17|website=The Hill|language=en-US|access-date=2023-03-04}}</ref><ref>{{Cite web|url=https://msmagazine.com/2023/02/17/iran-democracy/|title=The Future of Iran's Democracy Movement|last=Security|first=Georgetown Institute for Women, Peace and|date=2023-02-17|website=Ms. Magazine|language=en-US|access-date=2023-03-04}}</ref> and are seeking support from the international community.<ref>{{Cite web|url=https://freedomhouse.org/article/how-support-irans-democracy-movement|title=How to Support Iran's Democracy Movement|website=Freedom House|language=en|access-date=2023-03-04}}</ref>
== Trade Unions Joint Charter ==
A joint charter with a list of 12 "minimum demands” has been published and signed by twenty independent Iranian trade unions, feminist groups and student organizations.<ref>{{Cite web|url=https://iranwire.com/en/politics/113866-iranian-trade-unions-civic-groups-issue-charter-of-minimum-demands|title=Trade Unions Issue Charter Of Minimum Demands|date=16 February 2023|website=Iran Wire}}</ref><ref>{{Cite web|url=https://www.atlanticcouncil.org/blogs/iransource/irans-women-life-freedom-revolution-has-a-manifesto-here-are-the-next-steps/|title=Iran's 'women, life, freedom' revolution has a manifesto. Here are the next steps.|last=Dagres|first=Holly|date=2023-02-23|website=Atlantic Council|language=en-US|access-date=2023-03-13}}</ref> Signatories include:
* The Coordinating Council of Iran's Teachers Trade Unions
* The Free Union of Iran Workers
* The Union of Free Students
* The Center for Human Rights Defenders
* The Syndicate of Workers of Nishekar Heft Tepeh Company
* The Organization Council of Oil Contractual Workers’ Protests
* Iran Cultural House (Khafa)
* Bidarzani
* The Call of Iranian Women
* The Independent Voice of Ahvaz National Steel Group Workers
* The Labor Rights Defenders Center
* The Kermanshah Electric and Metal Workers’ Union
* The Coordination Committee to help create labor organizations
* The Union of Pensioners
* The Council of Pensioners of Iran
* The Progressive Students Organization
* The Council of Free-Thinking Students of Iran
* The Alborz Province Painters’ Syndicate
* The Committee to Follow up on the Creation of Labor Organizations of Iran
* The Council of Retirees of the Social Security Administration (BASTA)
== 2023 U.S. House Resolution 100 ==
House Resolution 100 was introduced by Rep. Tom McClintock, R-Calif., expresses [https://www.congress.gov/bill/118th-congress/house-resolution/100/text?s=2&r=10 Congress’ support of a democratic, secular and non-nuclear republic]. There are 75 Democrats signed onto the resolution, among 222 members of the 435-member House.<ref>{{Cite web|url=https://www.foxnews.com/politics/resolution-backing-secular-democratic-iran-picks-majority-bipartisan-support-in-house|title=Resolution backing secular, democratic Iran republic picks up majority bipartisan support in House|last=Shaw|first=Adam|date=2023-03-09|website=Fox News|language=en-US|access-date=2023-03-13}}</ref>
The resolution voices “support for the opposition leader Mrs. Maryam Rajavi’s 10-point plan for the future of Iran, which calls for the universal right to vote, free elections, and a market economy, and advocates gender, religious, and ethnic equality, a foreign policy based on peaceful coexistence, and a nonnuclear Iran.”<ref>{{Cite web|url=https://mcclintock.house.gov/newsroom/press-releases/mcclintock-introduced-house-resolution-with-over-160-co-sponsors-in-support|title=McClintock Introduced House Resolution With Over 160 Co-sponsors in Support of a Free, Democratic, and Secular Republic in Iran|date=2023-02-08|website=Congressman Tom McClintock|language=en|access-date=2023-03-13}}</ref>
== Regime de-stabilization during the Iran-Israel war ==
The [[w:Iran-Israel_war|Iran-Israel war]]. In an interview with Iran International's anchor Pouria Zeraati, Israeli president Netanyahu said "A light has been lit—carry it to freedom,” “This is the time,” he said. “Your hour of freedom is near—it’s happening now.”<ref>{{Cite web|url=https://www.iranintl.com/en/202506167015|title=Israel strikes Iran, Day 4: what we know so far|date=2025-06-17|website=www.iranintl.com|language=en|access-date=2025-06-17}}</ref>
== Organized Resistance Groups ==
=== National Council of Resistance of Iran ===
The [[National Council of Resistance of Iran]] is recognized as the diplomatic wing of the MEK, [[People's Mojahedin Organization of Iran]], opposing the Islamic Republic.<ref>{{citation |last1=Cohen |first1=Ronen A. |title=The Mojahedin-e Khalq versus the Islamic Republic of Iran: from war to propaganda and the war on propaganda and diplomacy |url=https://www.tandfonline.com/doi/full/10.1080/00263206.2018.1478813 |journal=Middle Eastern Studies |volume=54 |issue=6 |pages=1000–1014 |year=2018 |doi=10.1080/00263206.2018.1478813 |s2cid=149542445}}</ref><ref name="Katzman2012">Kenneth Katzman, [https://books.google.com/books?id=cfdMAgAAQBAJ&pg=PA317 Document No.9 Iran:U.S. Concerns and Policy: Responses, CRS Report RL32048], in Kristen Boon, Aziz Z. Huq, Douglas Lovelace (eds.) ''Global Stability and U.S. National Security,'' [[Oxford University Press]], 2012 pp.297-383 p.317.</ref><ref name="Fayazmanesh">Sasan Fayazmanesh, [https://books.google.com/books?id=SMiTAgAAQBAJ&pg=PA79 ''The United States and Iran: Sanctions, Wars and the Policy of Dual Containment,''] [[Routledge]], 2008 pp.79,81.</ref>
They have articulated a [[National Council of Resistance of Iran#Constitutional platform|Constitutional platform]].
A majority of members of the US House of Representatives backed a “bipartisan resolution” in June 2020 supporting [[Maryam Rajavi]] and the NCRI's “call for a secular, democratic Iran” while “condemning Iranian [[state-sponsored terrorism]]”. The resolution, backed by 221 lawmakers, gave support to the Rajavi's 10-point plan for Iran's future (which include “a universal right to vote, market economy, and a non-nuclear Iran”) while calling on the prevention of “malign activities of the Iranian regime’s diplomatic missions.” The resolution also called on the U.S. to stand “with the people of Iran who are continuing to hold legitimate and peaceful protests” against the Iranian government.<ref>{{Cite web |date=17 June 2020 |title=Majority of House members back resolution supporting Iranian opposition, condemning regime's terror |url=https://www.foxnews.com/politics/majority-house-members-back-resolution-supporting-iranian-opposition |website=[[Fox News]]}}</ref><ref>{{Cite web |date=17 June 2020 |title='The world is watching': Lawmakers tout bipartisan resolution condemning Iran |url=https://www.washingtonexaminer.com/news/the-world-is-watching-lawmakers-tout-bipartisan-resolution-condemning-iran}}</ref>
=== Organization of Iranian American Communities ===
The [[Organization of Iranian American Communities]] is allied with the [[People's Mujahedin of Iran|People's Mojahedin Organization of Iran]], or the Mojahedin-e Khalq (MEK), which advocates the overthrow of the [[government of Iran]].<ref>{{Cite web |last=Lipin |first=Michael |date=17 March 2018 |title=US Senators Pledge Help to Iranian Group Seeking End to Iran's Islamist Rule |url=https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-url=https://web.archive.org/web/20181217191816/https://www.voanews.com/a/us-iran-opposition/4303135.html |archive-date=17 December 2018 |access-date=17 December 2018 |website=VOA}}</ref><ref>{{Cite web |last1=Gharib |first1=Ali |last2=Clifton |first2=Eli |date=26 February 2015 |title=Long March of the Yellow Jackets: How a One-Time Terrorist Group Prevailed on Capitol Hill |url=https://theintercept.com/2015/02/26/long-march-yellow/ |access-date=17 December 2018 |website=The Intercept}}</ref><ref>{{Cite web |last=Ackerman |first=Spencer |date=19 September 2018 |title=Giuliani to Speak Beside Leader of Accused Iranian 'Cult' |url=https://www.thedailybeast.com/giuliani-to-speak-beside-leader-of-accused-iranian-cult |access-date=17 December 2018 |website=Daily Beast}}</ref>
The OIAC does not support a foreign war, nor does it support an appeasement policy towards Iran. More specifically, OIAC supports the 10-point plans by Mrs. Maryam Rajavi<ref>{{Cite web |title=Maryam Rajavi {{!}} President-elect of the National Council of Resistance of Iran (NCRI) |url=https://www.maryam-rajavi.com/en/ |access-date=2022-05-23 |website=Maryam Rajavi |language=en-US}}</ref> for a democratic Iran that aligns with security for America and peace in the Middle East and beyond. OIAC works in collaboration with all Iranian-Americans and concerned citizens across the country to achieve its mission and vision. OIAC holds yearly protests outside the [[United Nations]] building against Iranian Presidents<ref>[https://www.usnews.com/news/best-states/new-york/articles/2017-09-20/protesters-rally-against-iranian-president-at-un Protesters Rally Against Iranian President at United Nations] by REBECCA GIBIAN, [[Associated Press]]; 20 September 2017</ref> and at times outside the [[White House]] "in solidarity with [[2017–18 Iranian protests|protesters in Iran]]".<ref>[https://wtop.com/white-house/2018/01/demonstrators-gather-wh-support-iranian-liberty-democracy/slide/1/ Demonstrators gather at White House to support Iranian ‘liberty, democracy’]; By Dick Uliano, [[WTOP-FM]], 6 January 2018</ref><ref>{{Cite web |last=Laipson |first=Ellen |date=January 9, 2018 |title=The Foreign Policy Aftermath of the Iran Protests, in Tehran and Washington |url=https://www.worldpoliticsreview.com/the-foreign-policy-aftermath-of-the-iran-protests-in-tehran-and-washington/}}</ref> According to Joanne Stocker, "the Organization of Iranian American Communities have played a crucial role in securing broad, bipartisan support in the United States for the opposition group by successfully portraying the group as a democratic, human rights-supporting alternative to the current regime."<ref>{{Cite news |title=The White House Once Labeled Them Terrorists. Now They're Being Called Iran's Next Government |newspaper=Haaretz |url=https://www.haaretz.com/middle-east-news/iran/2019-08-13/ty-article/.premium/white-house-once-labeled-them-terrorists-now-it-calls-them-irans-next-government/0000017f-dc2a-db5a-a57f-dc6a244b0000}}</ref>
=== Democratic Party of Iranian Kurdistan ===
The [[Democratic Party of Iranian Kurdistan]] (KDPI), is an armed leftist [[ethnic party]] of [[Kurds in Iran]], exiled in northern [[Iraq]].<ref name="WRI">{{Citation |last1=Buchta |first1=Wilfried |title=Who rules Iran?: the structure of power in the Islamic Republic |pages=102, 104 |year=2000 |place=Washington DC |publisher=The Washington Institute for Near East Policy, The Konrad Adenauer Stiftung |isbn=978-0-944029-39-8}}</ref> It is banned in Iran and thus not able to operate openly.<ref>United Kingdom: Home Office, Country Information and Guidance - Iran: Kurds and Kurdish political groups, July 2016, Version 2.0, available at: http://www.refworld.org/docid/578f67c34.html [accessed 18 March 2017]</ref>
The group calls for [[self-determination]] of Kurdish people<ref name="merip">{{cite web|url=http://www.merip.org/mer/mer141/major-kurdish-organizations-iran|title=Major Kurdish Organizations in Iran|author=Martin Van Bruinessen|date=20 July 1986|publisher=[[Middle East Research and Information Project]]|access-date=29 January 2017}}</ref> and has been described as seeking either [[Kurdish separatism in Iran|separatism]]<ref name="stratfor">{{cite web |date=29 July 2016 |title=Iranian Kurds Return to Arms |url=https://www.stratfor.com/analysis/iranian-kurds-return-arms |access-date=29 September 2016 |publisher=[[Stratfor]]}}</ref><ref>{{Citation |title=Freedom in the World 2011: The Annual Survey of Political Rights and Civil Liberties |page=321 |year=2011 |contribution=[[Freedom House]] |publisher=Rowman & Littlefield Publishers |isbn=9781442209961}}</ref><ref name="APS">{{cite book|author1=Alex Peter Schmid|author2=A. J. Jongman|title=Political terrorism: a new guide to actors, authors, concepts, data bases, theories, & literature|year=2005|publisher=Transaction Publishers|isbn=978-1-4128-0469-1|page=579|entry=Kurdish Democratic Party of Iran}}</ref> or [[autonomy]] within a [[Federalism|federal]] system.<ref name="WRI" /><ref>{{cite encyclopedia |title=QĀSEMLU, ʿABD-AL-RAḤMĀN |encyclopedia=[[Encyclopædia Iranica]] |publisher=Bibliotheca Persica Press |url=http://www.iranicaonline.org/articles/qasemlu |access-date=August 1, 2016 |last=Prunhuber |first=Carol |date=February 18, 2012 |editor-last=Yarshater |editor-first=Ehsan |editor-link=Ehsan Yarshater}}</ref>
Since 1979, KDPI has waged a persistent guerrilla war against the [[Government of the Islamic Republic of Iran]].<ref name="WRI" /> This included the [[1979 Kurdish rebellion in Iran|1979–1983 Kurdish insurgency]], its [[KDPI insurgency (1989–96)|1989–1996 insurgency]] and [[2016 West Iran clashes|recent clashes in 2016]].
=== National Council of Iran ===
The [[National Council of Iran]], according to ''[[Observer.com|The Observer]]'', serves as [[Reza Pahlavi, Crown Prince of Iran|Reza Pahlavi]]'s [[government in exile]] in order to reclaim the former throne after overthrowing the current government.<ref name="Observer">{{cite web |author=Parker Richards |date=29 January 2016 |title=Pahlavi, Elie Wiesel, Rev. King to Be Honored for Promoting Peace |url=http://observer.com/2016/01/breaking-yoko-ono-iranian-prince-and-others-to-be-honored-for-promoting-peace/ |access-date=1 June 2017 |website=[[New York Observer|Observer]]}}</ref> It has also been described as an organization that profiles him as "the new [[president of Iran]]".<ref name="Milczanowski">{{citation |author=Maciej Milczanowski |title=US Policy towards Iran under President Barack Obama's Administration |date=2014 |url=http://www.iksiopan.pl/images/czasopisma/hemispheres/hemispheres_29_4.pdf |journal=Hemispheres: Studies on Cultures and Societies |volume=29 |number=4 |pages=53–66 |publisher=Institute of Mediterranean and Oriental Cultures Polish Academy of Sciences |issn=0239-8818}}</ref>
The "self-styled"<ref name="Milczanowski" /> National Council claims to have gathered "tens of thousands of pro-democracy proponents from both inside and outside Iran."<ref name="AP">{{cite web |author=Jon Gambrell |date=9 April 2017 |title=Iran's long-exiled prince wants a revolution in age of Trump |url=http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-url=https://web.archive.org/web/20170409074842/http://bigstory.ap.org/article/aabda1d7582d49b784c7ec7ee2e96e6e/irans-long-exiled-prince-wants-revolution-age-trump |archive-date=9 April 2017 |access-date=25 January 2019 |publisher=Associated Press}}</ref> It also claims to represent religious and ethnic minorities.<ref>{{cite web |author=Sonia Verma |date=6 June 2014 |title=Shah's son seeks support for people's revolution against Iran |url=https://www.theglobeandmail.com/news/world/shahs-son-seeks-support-for-peoples-revolution-against-iran/article19059694/ |access-date=17 June 2017 |publisher=The Globe and Mail}}</ref> According to Kenneth Katzman, in 2017 the group which was established with over 30 groups has "suffered defections and its activity level appears minimal".<ref name="KK">{{citation |author=Kenneth Katzman |title=Iran: Politics, Human Rights, and U.S. Policy |date=2 June 2017 |url=https://fas.org/sgp/crs/mideast/RL32048.pdf |page=27 |access-date=16 June 2017 |publisher=Federation of American Scientists}}</ref>
== Criticism ==
Remarking on the initial international response to the Tehran protests, Iranian-American journalist and activist [[Masih Alinejad]] said, "The first group who came to the streets were women of Afghanistan, can you believe that? The Western feminists who actually went to my country, wore a hijab, and bowed to the Taliban—they didn’t take to the streets.”
“Most of them have never gone and lived under Sharia law,” she said of Western feminists. “And they don’t even let us talk about our own experiences.
Here they tell me, ‘Shh! If you talk about this, you’re going to cause Islamophobia.’ Phobia is irrational, but believe me my fear and the fear of millions of Iranian women is rational.”<ref>{{Cite web |date=2023-03-11 |title=Self-centered feminists have forgotten the women of Iran |url=https://nypost.com/2023/03/11/self-centered-feminists-have-forgotten-the-women-of-iran/ |access-date=2023-03-13 |language=en-US}}</ref>
== Bibliography and References ==
{{refbegin}}
* {{Cite news |last= |date=2023-02-10 |title=Iran exiled opposition figures in talks to unite against government |language=en |work=Reuters |url=https://www.reuters.com/world/middle-east/iran-exiled-opposition-figures-talks-unite-against-government-2023-02-10/ |access-date=2023-02-12}}{{Relevance?|date=March 2023}}
* {{Cite web |title=Prominent Iranian Opposition Figures Pledge Unity, Urge World Support |url=https://www.iranintl.com/en/202302109922 |access-date=2023-02-12 |website=Iran International |language=en}}{{Relevance?|date=March 2023}}
* {{Cite web |last= |date=2023-02-07 |title=Gauging the future of Iran's democracy movement |url=https://www.demdigest.org/gauging-the-future-of-irans-democracy-movement/ |access-date=2023-02-12 |website=Democracy Digest |language=en-US}}{{Relevance?|date=March 2023}}
* {{cite journal |last=Sherrill |first=Clifton |year=2011 |title=After Khamenei: Who Will Succeed Iran's Supreme Leader? |journal=Orbis |volume=55 |issue=4 |pages=631–47 |doi=10.1016/j.orbis.2011.07.002}}{{Relevance?|date=March 2023}}
{{expand section|date=March 2023}}
{{refend}}
==Notes==
{{Reflist}}{{Protests in Iran}}
qtx1x3y3ve25pivdutf8awrxgb3qvpd
Reformation Workshop
0
320155
2718818
2718557
2025-06-17T12:42:44Z
Lbeaumont
278565
Reverted edits by [[Special:Contributions/27.33.135.215|27.33.135.215]] ([[User_talk:27.33.135.215|talk]]) to last version by [[User:Lbeaumont|Lbeaumont]] using [[Wikiversity:Rollback|rollback]]
2718215
wikitext
text/x-wiki
—Building our future
[[File:Reformation_Workshop.png|thumb|We can [[Clear Thinking/Curriculum|think critically]], and act [[Finding Courage|courageously]] to create a [[Envisioning Our Future|better future]].]]
== Welcome! ==
In a world facing profound challenges and rapid change, the need for thoughtful, purposeful reform has never been greater. This workshop is an invitation—to prepare yourself, to [[Clear Thinking/Curriculum|think critically]], and to act [[Finding Courage|courageously]] in pursuit of a better future.<ref>[[w:ChatGPT|ChatGPT]] generated this introductory text after being prompted with the recommendations that follow. </ref>
[[Improving Social Systems#What do you want?|Reformation is difficult]]. It requires reflection, resilience, and responsibility. But it is also essential. Whether we are improving our personal habits or transforming entire systems, meaningful change begins with awareness and is sustained by intentional effort.
The following recommendations are organized around key areas where reform is both urgently needed and deeply possible—from the ways we care for ourselves and others, to how we engage with information, belief, governance, money, and global challenges.
This is not just about fixing what’s broken. It’s about envisioning and building something better. A future that works—for more people, with more [[wisdom]], and with greater integrity.
We can progress from good intentions to effective action. Let’s begin.
== Prepare Yourself for Reformation ==
[[Improving Social Systems#What do you want?|Reformation is difficult]]. Take the following steps to prepare yourself for the journey.
* [[Living Wisely/Take Care|Take care]] of yourself and others. [[Living Wisely|Live wisely]]. Begin by adopting these [[Wise Living Toolkit#Wise Practices|wise practices]].
* [[Envisioning Our Future|Envision a brighter future]].
** Progress [[Envisioning Our Future/Toward Compassion|toward compassion]].
* Carefully consider the question "[[Exploring Existential Concerns/What Ought We Do?|What we ought do]]?"
* [[A Journey to GameB#Pre GameB (PreB)|Get yourself ready]].
* Recognize that [[Improving Social Systems|improving social systems]] is difficult and essential.
** This requires engaging others and [[Improving Social Systems#Building Support|building support]] for carrying out the improvement, among other essential work.
** Prepare to [[Improving Social Systems|improve social systems]].
** [[Sustaining Agency|Sustain your agency]] throughout the transformations.
== Reform Information Systems ==
We form our beliefs based on what we think we know. It is essential that we align our knowledge base with reality.
* [[Intellectual honesty|Expect intellectual honesty]].
* [[Navigating Information Landscapes|Navigate the information landscape]] skillfully.
* [[Evaluating Information|Evaluate information wisely]].
** [[Seeking True Beliefs|Seek true beliefs]]
** [[Evaluating Journalism Standards|Evaluate journalism standards]].
** [[Navigating Social Proof|Navigate social proof skillfully]].
** Use your [[Influence and Persuasion|influence and persuasion]] wisely and skillfully.
* [[Understanding Misbelief|Avoid misbeliefs]].
* Recognize that the future of education is learning.<ref>{{Cite web|url=https://lelandbeaumont.substack.com/p/the-future-of-education-is-learning|title=The future of education is learning|last=Beaumont|first=Leland|date=2022-10-19|website=Seeking Real Good|access-date=2025-03-29}}</ref>
* [[The Idea Incubator/Reforming Social Media Platforms|Reform social media platforms]].
* [[Finding Common Ground|Find common ground]].
== Reform Belief Systems ==
Because our [[Forming beliefs|beliefs]] shape our actions, and our actions are [[Global Perspective#Interdependence|interdependent]], he have an obligation—to ourselves and others—to [[Seeking True Beliefs|seek true beliefs]].
* Align your [[Exploring Worldviews/Aligning worldviews|worldview with reality]].
* Adopt well chosen [[Moral Reasoning|moral reasoning]].
* Practice a [[Real Good Religion]].
== Reform Governance Systems ==
Because [[Global Perspective#Interdependence|we live together]], we must govern together.
* [[Coming Together|Come together]].
* Recognize [[Evolving Governments/Good Government|good government]].
** Advocate for good government.
** [[Assessing Human Rights/Beyond Olympic Gold|Advance human rights worldwide]].
* [[Evolving Governments|Evolve Governments]].
== Reform Monetary Systems ==
Because money is the [[Wisdom Research/Pinnacles|lynchpin]] of many of our institutions and actions, we must [[Evolving Money|reform our financial systems]] to serve human flourishing—not the other way around.
* Learn to [[Limits To Growth/Coping with Abundance|cope with abundance]] and share the productivity dividend.<ref>{{Cite web|url=https://lelandbeaumont.substack.com/p/who-owns-the-productivity-dividend|title=Who owns the Productivity dividend?|last=Beaumont|first=Leland|date=2023-05-02|website=Seeking Real Good|access-date=2025-03-29}}</ref>
* Respect [[Limits To Growth|limits to growth]].
* Eliminate [[Living Wisely/Economic Faults|economic faults]].
* Ensure sufficiency<ref>{{cite book|title=On Inequality|last=Frankfurt |first=Harry G.|date=September 29, 2015|publisher=Princeton University Press|isbn=978-0691167145|pages=120|authorlink=w:Harry_Frankfurt}}</ref> for the most vulnerable.<ref>{{Cite web|url=https://lelandbeaumont.substack.com/p/find-work-or-starve-8fa99a4551be|title=Find Work or Starve|last=Beaumont|first=Leland|date=2021-01-13|website=Seeking Real Good|access-date=2025-04-10}}</ref>
* Fulfill our [[w:What_We_Owe_the_Future|obligations to future generations]].
* Understand [[Macroeconomics/Quick Reference|macroeconomics]].
* [[Evolving Money|Evolve money]].
== Address Grand Challenges ==
The world faces many [[grand challenges]].
Improvements are required locally in the short term and [[Global Perspective|globally]] in the long term.
* [[Doing Good|Do good]] in the short term while [[Improving Social Systems|undertaking structural reformations]] for long term systemic impact.
* Work locally while continuing to [[Global Perspective|think globally]].
** Value [[Global Perspective#Interdependence|interdependence]].
* [[Assessing Human Rights/Beyond Olympic Gold|Advance human rights worldwide]].
* Address the [[grand challenges]].
== Practice Intentional Evolution ==
Help us [[Intentional Evolution|evolve toward the next big thing]]. [[Living Wisely/Seeking Real Good|Seek real good]]!
== We can do this ==
Although this is likely to be a difficult very long-term project, it is definitely achievable because it requires improving only our [[Exploring Social Constructs|social constructs]]. Let’s keep going.
== References ==
[[Category:Living Wisely]]
[[Category:Futurology]]
[[Category:Peace studies]]
oa37lpw94osgsv5aj38f3k79l2q99zv
2718819
2718818
2025-06-17T12:43:43Z
Lbeaumont
278565
Protected "[[Reformation Workshop]]": Excessive vandalism ([Edit=Allow only autoconfirmed users] (expires 12:43, 17 June 2026 (UTC)) [Move=Allow only autoconfirmed users] (expires 12:43, 17 June 2026 (UTC)))
2718215
wikitext
text/x-wiki
—Building our future
[[File:Reformation_Workshop.png|thumb|We can [[Clear Thinking/Curriculum|think critically]], and act [[Finding Courage|courageously]] to create a [[Envisioning Our Future|better future]].]]
== Welcome! ==
In a world facing profound challenges and rapid change, the need for thoughtful, purposeful reform has never been greater. This workshop is an invitation—to prepare yourself, to [[Clear Thinking/Curriculum|think critically]], and to act [[Finding Courage|courageously]] in pursuit of a better future.<ref>[[w:ChatGPT|ChatGPT]] generated this introductory text after being prompted with the recommendations that follow. </ref>
[[Improving Social Systems#What do you want?|Reformation is difficult]]. It requires reflection, resilience, and responsibility. But it is also essential. Whether we are improving our personal habits or transforming entire systems, meaningful change begins with awareness and is sustained by intentional effort.
The following recommendations are organized around key areas where reform is both urgently needed and deeply possible—from the ways we care for ourselves and others, to how we engage with information, belief, governance, money, and global challenges.
This is not just about fixing what’s broken. It’s about envisioning and building something better. A future that works—for more people, with more [[wisdom]], and with greater integrity.
We can progress from good intentions to effective action. Let’s begin.
== Prepare Yourself for Reformation ==
[[Improving Social Systems#What do you want?|Reformation is difficult]]. Take the following steps to prepare yourself for the journey.
* [[Living Wisely/Take Care|Take care]] of yourself and others. [[Living Wisely|Live wisely]]. Begin by adopting these [[Wise Living Toolkit#Wise Practices|wise practices]].
* [[Envisioning Our Future|Envision a brighter future]].
** Progress [[Envisioning Our Future/Toward Compassion|toward compassion]].
* Carefully consider the question "[[Exploring Existential Concerns/What Ought We Do?|What we ought do]]?"
* [[A Journey to GameB#Pre GameB (PreB)|Get yourself ready]].
* Recognize that [[Improving Social Systems|improving social systems]] is difficult and essential.
** This requires engaging others and [[Improving Social Systems#Building Support|building support]] for carrying out the improvement, among other essential work.
** Prepare to [[Improving Social Systems|improve social systems]].
** [[Sustaining Agency|Sustain your agency]] throughout the transformations.
== Reform Information Systems ==
We form our beliefs based on what we think we know. It is essential that we align our knowledge base with reality.
* [[Intellectual honesty|Expect intellectual honesty]].
* [[Navigating Information Landscapes|Navigate the information landscape]] skillfully.
* [[Evaluating Information|Evaluate information wisely]].
** [[Seeking True Beliefs|Seek true beliefs]]
** [[Evaluating Journalism Standards|Evaluate journalism standards]].
** [[Navigating Social Proof|Navigate social proof skillfully]].
** Use your [[Influence and Persuasion|influence and persuasion]] wisely and skillfully.
* [[Understanding Misbelief|Avoid misbeliefs]].
* Recognize that the future of education is learning.<ref>{{Cite web|url=https://lelandbeaumont.substack.com/p/the-future-of-education-is-learning|title=The future of education is learning|last=Beaumont|first=Leland|date=2022-10-19|website=Seeking Real Good|access-date=2025-03-29}}</ref>
* [[The Idea Incubator/Reforming Social Media Platforms|Reform social media platforms]].
* [[Finding Common Ground|Find common ground]].
== Reform Belief Systems ==
Because our [[Forming beliefs|beliefs]] shape our actions, and our actions are [[Global Perspective#Interdependence|interdependent]], he have an obligation—to ourselves and others—to [[Seeking True Beliefs|seek true beliefs]].
* Align your [[Exploring Worldviews/Aligning worldviews|worldview with reality]].
* Adopt well chosen [[Moral Reasoning|moral reasoning]].
* Practice a [[Real Good Religion]].
== Reform Governance Systems ==
Because [[Global Perspective#Interdependence|we live together]], we must govern together.
* [[Coming Together|Come together]].
* Recognize [[Evolving Governments/Good Government|good government]].
** Advocate for good government.
** [[Assessing Human Rights/Beyond Olympic Gold|Advance human rights worldwide]].
* [[Evolving Governments|Evolve Governments]].
== Reform Monetary Systems ==
Because money is the [[Wisdom Research/Pinnacles|lynchpin]] of many of our institutions and actions, we must [[Evolving Money|reform our financial systems]] to serve human flourishing—not the other way around.
* Learn to [[Limits To Growth/Coping with Abundance|cope with abundance]] and share the productivity dividend.<ref>{{Cite web|url=https://lelandbeaumont.substack.com/p/who-owns-the-productivity-dividend|title=Who owns the Productivity dividend?|last=Beaumont|first=Leland|date=2023-05-02|website=Seeking Real Good|access-date=2025-03-29}}</ref>
* Respect [[Limits To Growth|limits to growth]].
* Eliminate [[Living Wisely/Economic Faults|economic faults]].
* Ensure sufficiency<ref>{{cite book|title=On Inequality|last=Frankfurt |first=Harry G.|date=September 29, 2015|publisher=Princeton University Press|isbn=978-0691167145|pages=120|authorlink=w:Harry_Frankfurt}}</ref> for the most vulnerable.<ref>{{Cite web|url=https://lelandbeaumont.substack.com/p/find-work-or-starve-8fa99a4551be|title=Find Work or Starve|last=Beaumont|first=Leland|date=2021-01-13|website=Seeking Real Good|access-date=2025-04-10}}</ref>
* Fulfill our [[w:What_We_Owe_the_Future|obligations to future generations]].
* Understand [[Macroeconomics/Quick Reference|macroeconomics]].
* [[Evolving Money|Evolve money]].
== Address Grand Challenges ==
The world faces many [[grand challenges]].
Improvements are required locally in the short term and [[Global Perspective|globally]] in the long term.
* [[Doing Good|Do good]] in the short term while [[Improving Social Systems|undertaking structural reformations]] for long term systemic impact.
* Work locally while continuing to [[Global Perspective|think globally]].
** Value [[Global Perspective#Interdependence|interdependence]].
* [[Assessing Human Rights/Beyond Olympic Gold|Advance human rights worldwide]].
* Address the [[grand challenges]].
== Practice Intentional Evolution ==
Help us [[Intentional Evolution|evolve toward the next big thing]]. [[Living Wisely/Seeking Real Good|Seek real good]]!
== We can do this ==
Although this is likely to be a difficult very long-term project, it is definitely achievable because it requires improving only our [[Exploring Social Constructs|social constructs]]. Let’s keep going.
== References ==
[[Category:Living Wisely]]
[[Category:Futurology]]
[[Category:Peace studies]]
oa37lpw94osgsv5aj38f3k79l2q99zv
Cross-domain AI topics
0
321564
2718828
2718091
2025-06-17T13:33:26Z
Conan
183430
/* Cross-domain AI topics */
2718828
wikitext
text/x-wiki
<includeonly>
<includeonly>
<includeonly>
<includeonly>
====Cross-domain AI topics====
</includeonly>
: {{w|Fine-tuning (deep learning)}}
: {{w|Attention (machine learning)}}
: {{w|Backpropagation}}
: {{w|Embedding (machine learning)}}
: {{w|Fairness (machine learning)}}
: {{w|Fine-tuning (deep learning)}}, SFT – supervised fine-tuning
: {{w|Loss function}}
: {{w|Overfitting|Overfitting and Underfitting}}
: {{w|Reinforcement learning}}
: {{w|Reinforcement learning from human feedback}}
: {{w|Supervised learning}} / {{w|Unsupervised learning}}
: {{w|Training, validation, and test data sets}}
: {{w|Transfer learning}}
Categories and lists:
: {{wc|Artificial intelligence laboratories}}
: {{wc|Artificial intelligence companies}}
: {{w|Glossary of artificial intelligence}}
[[Category:Artificial intelligence]]
nfwo87iug9j3m5m29iff914x7tciu5n
Social Victorians/Stewart-Stavordale Wedding 1902-01-25
0
321931
2718845
2718751
2025-06-17T15:14:25Z
Scogdill
1331941
2718845
wikitext
text/x-wiki
=Event=
Wedding of Lady Helen Stewart and Lord Stavordale, son of the Earl and Countess of Ilchester
==Overview==
==Logistics==
* Saturday, 25 January 1902, 2:00 p.m., St. Peter’s Church, Eaton-square, London
* Bride's bouquet, made by
* Bride's dress, made by
* Embroidery
* Bride's traveling dress, made by
* Bridesmaids' dresses
* Bridesmaids' hats
* Bridesmaids' bouquets
==Related Events==
* Reception
* Honeymoon
==Who Was Present==
===Bride and Bridesmaids===
====Bride====
====Bridesmaids====
====Pages====
===Groom and Best Man===
===People Who Attended===
#
==What People Wore==
#
==Gifts==
Lady Helen Stewart received a lot of very valuable jewelry, including a diamond and turquoise brooch from King Edward VII and Queen Alexandra and a pearl and diamond bracelet from the tenantry on the family county Down estate and the inhahitants of Newtownards, Ireland.
===Books===
*
===Unusual or Interesting Gifts===
*
==Anthology==
From the ''Londonderry Standard'':<blockquote>Marriage of Lady Helen Stewart. A Brilliant Gathering.
The marriage of Lady Helen Stewart, only daughter of the Marquis and Marchioness of Londonderry, Londonderry House, Park-lane, London, with Lord Stavordale, son of the Earl and Countess of Ilchester, Holland House, Kensington, London, took place in St. Peter’s Church, Eaton-square, London, on Saturday at two o’clock. The bride, who was given away by her father, wore a dress made of a lovely shade of rich ivory duchesse satin. The skirt was embroidered with graduated true lover's knots on the same satin, veined with a silver thread. The train was an original one, as it formed, and was part of, the skirt, and . [sic] was made with an exquisite flounce of Limerick lace, caught up with bows of the same embroidery. The bodice was very prettily arranged with old lace, forming a fichu at the back, with insertions of the same lace in front. The sleeves were of transparent chiffon and lace. The bride wore a wreath of orange blossorns and myrtle grown from that used in her mother's wedding bouquet, and also a veil of Brussels lace, which was worn by Lady Londonderry and her sisters, and by the Hon. Mrs. Beckett at their weddings, and by the Dowager Lady Shrewsbury. The bride’s ornaments were a pearl and diamond collar, a gift from the county of Durham, and a diamond riviere, the gift of her father. She was attended by ten bridesmaids, viz., Miss Marion Beckett, Miss Gladys Beckett, Miss Margaret Beaumont, Miss Aline Beaumont, Lady Muriel Fox-Strangways, Lady Edith Dawson, Lady Viola Talbot, Miss Muriel Chaplin, Miss Madeleine Stanley, and Miss Eleanor Hicks-Beach. The four first-named were little girls, and they wore Empire frocks, to the ground, of old lace, over ‘‘quicksilver” silk, with high sashes of cloth of gold. Gold shoes and stockings and white mittens completed this quaint costume. The remaining and elder bridesmaids wore gowns of white ‘‘quicksilver” silk, draped with old lace over chiffon, the deep flounce headed by crescents of Russian sable. The bodices had deep lace collars bordered with the sable, and were fastened at the waist with sashes of cloth of gold tied at the side and falling in long ends. They wore long biscuit coloured suede gloves and white felt hats, trimmed with bouquets of white and yellow jonquils and green and brown leaves. The bridesmaids carried baskets of jonkils [sic] and lilies of the valley, and wore diamond birds, the gifts of the bridegroom. The officiating clergy were the Primate of Ireland, the Rev. Canon Body (Durham), the Rev. H. A. V. Boddy (vicar of Grindon, county Durham, and chaplain to Lord Londonderry at Wynyard Park), and the Rev. J. Storrs (vicar of St. Peter’s, Eaton-square). The bridegroom was attended by Lord Hyde as best man. The ceremony over, a reception was held at Londonderry House, and later the bride and bridegroom left for Ingestre, Stafford, the residence of the Earl of Shrewsbury, uncle of the bride, where they will spend the honeymoon. The bride's travelling dress was of creamy white cloth, the skirt being made with a garniture of deep ecru embroidered lace, opening in front over an underdress of creamy white panne velvet, a border of which was shown all round the bottom of the skirt, and edged with sable. The corsage, with a vest of lace to match the skirt, the cloth slashed down each side, with little straps of panne velvet fastened with tiny gold studs, showing the lace underneath, a double collar round the shoulder, the under one in panne velvet, the outer one in cloth, with lace applique and slashed similar to bodice in order to show the panne collar underneath. A shaped belt of gold fabric, made high back and front, and slashed into little bands, showing the white dress underneath, the sleeves finished with transparent full undersleeves of lace and wristbands embroidered gold, neckband to match. Large cream beaun picture hat, with two large ostrich feathers round the mount, '''a whole sable arranged on the crown''', the sable’s head just showing to the face; on one side a cluster of creamy roses nestling on the hair under the brim. She wore a black sable muff and boa, given her by the Marchioness of Londonderry, and a cape to match, the gift of Mr. and Mrs. Dunville, of Redburn, county Down.
The bride’s bouquet was made at Wynyard by '''Mr. H. E. Gribble''', head gardener, and was composed of gardineres, lilies of the valley, with orange blossom and myrtle. The Marchioness of Londonderry wore a silver grey crepe de chine dress, with valenciennes lace, toque, ruffle, and muff to match.
The bride’s dress was made by '''Madame Kate Reily''', No. 10, Dover-street, Piccadilly. The whole of the embroidery, &c., was made and arranged in England by Madame Reily’s own workers. Bride's travelling dress — '''Madame E. Durrant''', 116, New Bond-street, W. Bridesmaids’ dresses — '''Madame Oliver Holmes''', 61, New Bond-street, W. Bridesmaids’ hats — '''Madame Cecil''', 43, South Molton-street, W. Bridesmaids’ bouquets — '''Madame Escourt''', Wigmorestreet, London.
Presents to the Bride.
* Marquis of Londonderry — Diamond tiara, diamond earrings, diamond riviere, three diamond brooches, pearl and diamond ring, '''pony phaton and harness'''.
* Marchioness of Londonderry — Diamond arrow, sable muff and boa, set of Cambrai point lace, set of Irish rose point, two flounces of Irish lace.
* Earl of Ilchester — Pearl necklace, with diamond clasp.
* Countess of Ilchester — Emerald and diamond necklace, with large emerald and diamond pendant, emerald and diamond comb, two emerald and diamond brooches.
* Lord Stevordale — Diamond brooch, ruby and diamond bracelet, turquoise and diamond earrings, emerald and diamond ring.
* Their Majesties the King and Queen — Diamond and turquoise brooch.
* H.R.H. Princess Victoria — Turquoise and diamond pendant.
* Prince and Princess of Wales — Diamond and sapphire crescent.
* T.H.R. The Duke and Duchess of Connaught — Mirror.
* The Duke and Duchess of Fife — Travelling bag.
* Prince Christian — Crystal and emerald umbrella handle.
* Prince and Princess Edward of Saxe-Weimar — Silver mirror.
* Belfast Conservative Association — Emerald and diamond bracelet.
* Officers of Second Durham Artillery Volunteers — Silver salver.
* '''Tenantry on county Down estate and inhahitants of Newtownards, Ireland''' — Pearl and diamond bracelet.
* Friends in the county of Durham — Pearl and diamond dog collar.
* The ladies of Belfast — Carrickmacross lace robe.
* County Down Staghounds’ Hunt Club — Silver tea and coffee set.
* North-Eastern Agricultural Society (county Down) — Silver candlebra.
* Officials General Post Office — Silver inkstand.
* Mr. George Hardy and workmen of Londonderry Engine Works — [sic.]
* Servants at Londonderry House — Gold and velvet pincushion.
* Employees at Wynyard — Gold mirror.
* Seaham Harbour Primrose League — Three silver rose bowls.
* Tenants on Wynyard Park and Longnewtown estate — Silver salver.
* Employees on Mount Stewart estate — Gold necklace, with pearl ornament.
* North Durham tenants — Silver bowl.
* Tradespeople of Stockton-on-Tees — '''Writing cabinet'''.
* Mothers’ Union at New Seaham — Writing-case.
* G.F.S. at Wynward — Silver and leather blotter.
* Wynyard school children — Silver and leather paper case.
* Wynyard choir — Visitors’ book.
* Mountstewart school children — Two satin covers.
* Downger Marchioness of Londonderry — Gold tea service. [Col. 1c–2a]
* Dowager Countess of Shrewsbury — Pearl and diamond cluster ring.
* Earl of Shrewsbury — Gold-mounted and tortoiseshell dressing-case.
* Mr. and Lady Aline Beaumont — Pearl and diamond comb and sapphire ring.
* Lord Henry Vane-Tempest — Turquoise and diamond bracelet.
* Lord Herbert Vane-Tempest — Enamel pearl muff chain.
* Viscount and Viscountess Helmsley — Emerald and pearl necklet and ornament and enamel comb.
* Viscount and Viscountess Castlereagh — '''Dinner service'''.
* Mr. and the Hon. Mrs. G. Beckett — Pearl and diamond earrings.
* Marquis of Salisbury — Jewelled and emerald necklace.
* Baroness Burdett-Coutts — Emerald and pearl necklace and emerald and diamond buckle.
* Lord and Lady Rothschild — Sapphire and diamond star brooch.
* Lord and Lady Lurgan — Sapphire and diamond bracelet and emerald and diamond ditto.
* Marquis and Marchioness of Zetland — Muff chain.
* Mr. and Lady Isabel Larnach — Sapphire and diamond horseshoe bracelet.
* General the Hon. R. Talbot and Mrs. Talbot — Holbein pendant and gold and pearl chain.
* Earl and Countess Brownlow — Sapphire and diamond buckle.
* The Russian Ambassador and Madame de Staal — Blue enamel buckle.
* Lord and Lady Tweedmouth — Ruby and emerald pendant.
* Duke and Duchess of Marlborough — Ruby and diamond locket and chain.
* Mr. and Mrs. Arthur Sassoon — Diamond bow brooch.
* Lady Margaret Orr-Ewing — Turquoise and gold muff chain.
* Sir William and Lady Eden — Emerald and pearl bracelet.
* Duke and Duchess of Portland — Diamond and pearl brooch.
* Mr. C. D. Rose — Amethyst and gold chain.
* Count Koziebrodzki — Gold chain bracelet.
* Lord Willoughby de Eresby — Ruby and diamond bangle.
* Lady Maria Hood — Paste buttons.
* Sir Samuel and Lady Sophie Scott — Turquoise and diamond ring.
* Mr. and Hon. Mrs. Maguire — Hat pin.
* Earl and Countess of Scarborough — Brooch.
* Lady Brabourne—Brooch.
* Mr. and Mrs. Beaumont — Enamel brooch.
* Sir Ernest Cassel — Brooch.
* Mr. and Mrs. Wilfrid Ashley — Brooch.
* Countess Camilla Hoyos — Antique Viennese watch.
* Right Hon. George Wyndham — Emerald and diamond shamrock brooch.
* Lord and Lady Iveagh — Diamond and sapphire pendant.
* Sir Thomas and Lady Wrightson — Antique gold chatelaine.
* Earl Cadogan — Antique French box.
* Earl and Countess Cadogan — '''Antique table'''.
* Right Hon. St. John Brodrick — '''Bureau'''.
* Right Hon. Walter Long and Lady Doreen Long — Silver inkstand.
* Earl Mansfield — Silver bowl.
* Earl and Countess of Crewe — Emerald and diamond ornament.
* Sir Henry and Lady Drummond Wolff — Pair of antique silver vases.
* Lord and Lady Burton — Ormulu inkstand.
* Lord and Lady Annesley—Empire gold tea service.
* Duke and Duchess of Abercorn — Jade ornament.
* Marquis and Marchioness of Waterford — Silver coffee pot.
* Lady Savile and Miss Helyar — Pair silver sconces.
* Marquis and Marchioness of Lansdowne — Four silver candlesticks.
* Right Hon. James Lowther — Four silver candlesticks.
* Dr. Mahaffy — Silver gipsy kettle.
* Earl and Countess of Erne — Silver vase.
* Lord Rowton — Silver bowl.
* Marchioness of Headfort — Silver box.
* Lord George Scott — Six silver menu holders.
* Mr. and the Misses Parkin and Miss Bowser — Silver dish and spoon.
* The Lord Mayor of Belfast and Lady Dixon — Silver bread basket.
* Lord and Lady O’Neill — Silver fruit basket.
* Right Hon. Henry and Mrs. Asquith — Four silver salt cellars.
* Lady Susan Beresford — Silver tea strainer.
* Earl and Countess of Coventry — Pair of silver candlesticks.
* Duchess of Montrose — Silver mirror.
* Countess of Suffolk — Silver box.
* Sir Francis Mowatt — Four silver dishes.
* Mr. and Mrs. John Mulhall — Silver inkstand and pair of silver candlesticks.
* Miss Montgomerie — Two silver menu holders.
* Mr. and Mrs. John Hopper — Silver rose bowl.
* Mr. and Mrs. Hamerton — Silver mirror.
* Count Albert Mensdorff — Silver bonbonniere.
* Mrs. Boddy — Carved silver waistband.
* Mr. Robert Yeoman — Antique Venetian buttons.
* Prince and Princess Alexis Dolgorouki — Silver bowl.
* Earl and Countess of Carnarvon — Gilt inkstand.
* Miss Madeline Stanley — Silver bowl.
* Duke and Duchess of Sutherland — Two silver sauce boats.
* Mr. and Mrs. Eminson — Silver bridge box.
* Earl of Durham — '''Writing table'''.
* The Chancellor of the Exchequer — '''Fur rug'''.
* Lady Lucy Hicks-Beach — Green leather despatch box.
* Mr. Bathurst — '''Book''' on gardening.
* Lord and Lady Grey — Set of '''books''' — George III.
* Lord Errington — Silver box.
* Miss Chandos-Pole — Gold sugar castor.
* Lady Cynthia Graham — Old basket brooch.
* Mr. and Mrs. D. Cooper — Fan, with mother of pearl stick.
* General Stracey — Silver shoe.
* Miss Farquharson — Gold heart-shaped brooch.
* Captain Ponsonby — Riding whip (hippo).
* Lord and Lady Ribblesdale — Paste buckle.
* Mr. and Mrs. R. Houston — Two fire screens.
* Captain snd Mrs. Behrens — Mother of pearl and feather fan.
* Lord and Lady Burton — lnkstand, &c.
* Lord and Lady Londesborough — '''Rosewood table''' and box.
* Mr. and Mrs. Dunville — '''Brown fur rug'''.
* Lady Selkirk — Tortoiseshell fan.
* Dowager Lady Scarborough — Two silver candlesticks.
* Lady Hindlip — Twelve silver knives.
* Mr. J. L. Wharton — Two silver vases.
* Mr. J. B. Houston — Mezzotint of Lord Castlereagh.
* Lord and Lady Annaly — Silver gilt tea service.
* Lord Kerry — Silver '''aneroid'''.
* Sir Redvers and Lady Audrey Buller — Two antique fans.
* Mr. Watson — Two silver frames.
* Mr. and Mrs. Oppenheim — Two gold boxes.
* Lady Mabel Crichton — Green leather blotter (Dreyfous).
* Mr. and Lady Sophia Montgomerie — Enamel plaques in frame.
* Mr. H. Fetherstonhaugh — Trivet and toasting fork.
* Mr. Spender Clay — White enamel buckle.
* The Moss Family — Two painted panels.
* Canon Tristram — '''Book''' on Japan.
* Mr. Smalley — '''Jane Austen’s novels'''.
* Mr. and Mrs. Lecky — Silver clothes brush.
* Sir Berkeley and Miss Sheffield — Blue cloth and white fur rug.
* Mr. Francis Jeune — '''Volumes of poetry'''.
* Mr. Brinsly Marley — Gilt handglass.
* Lord and Lady William Cecil — '''Boswell’s Life of Johnson''' — 5 volumes.
* Mrs. Boreham — Lace collar and cuffs.
* The Ladies Northcote — Prayer '''Book'''.
* Mr. Coventry — Driving whip.
* Lord Cole — Cushion.
* Miss B. Houston — Gold penknife.
* Lady Garvagh — Seal.
* Colonel F. Rhodes — '''Electric clock'''.
* Lady Leila Egerton — Crystal umbrella handle.
* Mr. V. Hussey-Walsh — Silver shoe.
* Miss Gooday — Painted China umbrella handle. [Col. 2c–3a]
* Lieutenant-Colonel O'Shaughnessy — Trefoil silver pincushion.
* Lady Antrim — Two "Punch'’ '''books'''.
* Lord and Lady Farquhar — Two stands and lamps.
* Major Wynne Finch — En tout case.
* Lord and Lady Cowper — China box.
* Mrs. Arthur James — '''Screen'''.
* Captain and Lady Sarah Wilson — Two turquoise pins.
* Lady Fort — Silver and velvet pincushion.
* Lord and Lady Wenlock — '''Bellows'''.
* Bishop of Rochester — '''Book'''.
* Mr. and Mrs. Allhusen — '''Merriman's Novels'''.
* Sir H. and Lady Meysey-Thompson — Dreyfous tray.
* The Misses Meysey-Thompson — Penholder.
* Duchess of Manchester — Seal.
* Mr. and Mrs. Ernest Villiers — Dresden China inkstand.
* Princess Henry of Pless — Cameo ornament.
* Lord and Lady Elcho — lnlaid wooden tray.
* Mr. and Mrs. M‘Neile — Blotter and paper case.
* Mr. and Mrs. Apperley — '''Card table'''.
* Miss Dorothy Hood — Amethyst seal.
* Captain Hicks-Beach — Two silver frames.
* Lady Edith Ashley — Silver corkscrew and seal.
* Lady Mildred Allsopp — '''Screen'''.
* Dr. M‘Kendrick — '''Twenty-five volumes poetry'''.
* Dowager Lady Tweedmouth — Silver muffineers.
* Captain Brinton — '''Six volumes Rudyard Kipling'''.
* Sir Francis and Lady Jeune — '''Screen'''.
* Sir W. and Lady Harcourt — Enamel jar.
* Lady De Ramsey — Red leather blotter.
* Rev. Edgar Shepperd — Shooting stick.
* Mrs. M'Donald — '''Screen'''.
* Mrs. A. Meysey-Thompson — Gold box.
* Lady Hamilton — '''lndian embroidery'''.
* Miss Brassey — Gold frame.
* Lord and Lady Halsbury — '''Two books'''.
* Mrs. and Miss Vernon — Fan.
* Sir Hedworth Williamson — Four scent bottles in gilt stand.
* Mr. and Miss Parkin — Silver dish and spoon.
* Lady Constance Butler — Enamel box.
* Mr. and Mrs. Meiklejohn — Tortoiseshell and gold card case.
* Mrs. Watkins — Sketch.
* Mrs. G. Fowler — Paste buckle.
* Mrs. Farquharson — Purse.
* Sir Daniel and Lady Dixon — Silver bread basket.
* Duchess of Devonshire — White sunshade.
* Mrs. Charrington — Gold chain purse.
* Masters Stirling — Silver box.
* Miss Winsonme Wharton — '''Book''' (Mme. Ricomier).
* Lady Helen Vincent — '''Book''' (Bacon’s Essays).
* Duchess of Roxburghe — Fire '''screen'''.
* Mr. R. Lucas — '''Book'''.
* Lord and Lady Bathurst — Enamelled box.
* Mrs. Maurice Glyn — '''Book tray and stand'''.
* Lord and Lady Knutsford — '''Book'''.
* Mrs. Battey — Frame.
* Lord Cairns — Gold and china box.
* Captain and Lady V. Villiers — Two crystal jugs.
* Lady Beatrice Meade — Four cups and saucers.
* Prince and Princess Bismarck — Three scent bottles.
* Lady Kilmorey — Lamp.
* Mr. Frank Chaplin — Sunshade.
* Mr. and Mrs. Graham Menzies — Silver box.
* Lady Mary Willoughby — '''Shelley's Poems'''.
* Mr. and Lady Clodagh Anson — Silver box.
* Countess Isabelle Deym — Tortoiseshell and crystal umbrella top.
* Miss Sturmfels — '''Russian leather hymn-book'''.
* The Duchess of Westminster — Tortoiseshell and lace fan.
* Miss Dorothy Wilson — Twelve shamrock buttons.
* Lord and Lady Minto — Lamp and shade.
* Mrs. G. Cornwallis West — Gold inkstand.
* Major and Mrs. M‘Kenzie — Twelve amethyst buttons.
* Lord and Lady Annesley — '''Bookslide and stand'''.
* Lord and Lady Ancaster — '''Embroidered firescreen'''.
* Lady Huntingdon — '''Book stand'''.
* Lady Katherine Somerset — Work basket.
* Mr. De Pledge — Print of Lord Castlereagh.
* Major Arthur Doyle — Two carved pictures.
* Lady Parker and Captain Matthews — '''Book case'''.
* Lord and Lady Barnard — '''Screen'''.
* Sir Charles Cust — Enamel frame.
* Mr. James Mackenzie — Silver ornament.
* Miss Wrightson — Picture in frame.
* Mr. Ottley — '''Book (Browning)'''.
* Mr. and Mrs. W. James — '''Table'''.
* Mr. Charles Pollen — Walking-stick.
* Miss Knatchbull Hugessen — '''Matthew Arnold’s Poems'''.
* Miss B. and Miss W. Paget — Smelling salts bottle.
* Lord and Lady Duncannon — Frame.
* Mr. and Mrs. John Delacour — Gold trinket tray.
* Viscount Ridley — '''Enamel letter rack'''.
* Miss Ridgeway — '''Carved wood table'''.
* Mr. and Mrs. George Gregson — Lace fan.
* Lady Inchiquin — Silver frame.
* The Bishop of Durham — '''Book'''.
* General Albert Williams — '''Silver telegraph case'''.
* Mr. Ward Cook — Silver inkstand.
* Rev. H. Boddy — '''Bible and Prayer Book'''.
* Lady Helen Graham — '''Book, Tennyson'''.
* Lady Charlotte Montgomery — Blotter.
* '''Mr. Edmund Gosse''' — '''Book'''.
* The Hon. E. and the Hon. A. Cadogan — Silver bottle.
* Lady Rossmore and Miss Naylor — '''Vitrine table'''.
* Colonel Swaine — Gilt box.
* Mr. and Mrs. Hall-Walker — Two silver sugar casters.
* Captain and Mrs. Colin Keppell — '''Book'''.
* Mrs. C. Vane-Tempest — White feather fan.
* Lady Sybil Gray — Enamel hatpin.
* Mr. Algernon Peel — lnlaid gold box.
* General and Miss Thesiger — Six tea knives.
* Lord and Lady Falmouth — Enamel box.
* Mr. Ruggles-Brise — '''Thirty-one volumes Carlyle’s works'''.
* Lord and Lady Henry Nevill — '''Two safety pins'''.
* Lady Muril Parsons — Silver box.
* The Misses Daisy and Aline and Master Wentworth Beaumont — '''Prayer Book'''.
* Dr. and Mrs. Dillon — Beer glass.
* Mr. and Mrs. Pirrie — '''Writing cabinet'''.
* Sir John Willoughby — Mirror.
* Sir F. and Lady Milner — Leather box.
* Lady Milton — Umbrella.
* Major Stracey Clitheroe — Driving whip.
* Mr. and Mrs. Webster — Silver mirror.
* Lord Hugh Cecil — Clock.
* Lord and Lady Enniskillen — Tortoiseshell umbrella handle.
* Rev. H. Martin and Mrs. Martin — Bible.
* Mrs. Seton—Six d’oyleys [sic].
* Dr. and Mrs. Blandford — Brown feather fan.
* Lord Crofton — '''MS. music book'''.
* Mr. and Mrs. Jameson — Emerald hatpin.
* Misses Trefusis — Pair of vases.
* Mr. and Lady Evelyn Eyre — Pair of links.
* Mrs. Strong — Cushion.
* Duke and Duchess of Teck — Silver salver.
* Lord Crichton — Tortoiseshell box.
* Captain and Mrs. Greville — Sunshade.
* Mrs. Huhn — '''German album'''.
* Mrs. and Miss Falconer — '''Tennyson (six volumes)'''.
* Lady Wilton and Mr. Prior — Gold and turquoise pen, pencil, &c.
* Miss Meerworth — '''German book'''.
* Miss Curzon — '''Birthday book'''.
* Messrs. Rothschild — Tortoiseshell paper knife.
* Mr. Herbert Praed — Four gold ornaments.
* Lady Beatrix Taylour — '''Two volumes poetry'''.
* Mr. and Mrs. Brown — '''Book, Keble's poems'''.
* Mr. Robert Vyner — Topaz hatpins.
* Archdeacon and Mrs. Long — Painting.
* Mr. Wright — Silver and glass bowl.
* Mr. and Mrs. Corbett — Silver mirror.
* Duke of Roxburghe — '''Fur rug'''.
* Mrs. Sowler — Satin satchet.
* Colonel and Mrs. Ropner — Two scent bottles in silver case.
* Dr. and Mrs. Jackson — Picture.
* The Misses Warham — Table cover.
* Mrs. Van Raalte — Ornament.
* Lady Magheramorne — Crystal bowl.
* Lord and Lady Chesham — '''Bookstand'''.
* Mr. and Mrs. Fitzgerald — China punchbowl.
* Mrs. Meiklejohn — Gold penholder.
* Miss Gibson — Green and silver blotter.
* Lord and Lady O'Brien—Lace fan. [Col. 3c–4a]
* The Misses O'Brien — Lace handkerchief.
* Baron Heyking — Hatpin.
* Mrs. Bone — Silver ornament.
* Miss Dale-Copeland — '''Book'''.
* Mr. C. P. Little — '''Screen'''.
* Mr. Thomas Egerton — Two silver ornaments.
* Miss Gully — '''Book'''.
* Mr. and Mrs. Sim — '''Gong'''.
* Sir G. and Lady Murray — Brown Ieather bag.
* Lord Rosebery — Shagreen and silver box.
* Mr. and Miss Brownlow — Round silver mirror.
* Duke and Duchess of Somerset — Embroidered box.
* Mr. and Mrs. Brydon — Gilt candlesticks.
* Sir E. and Lady Carson — Silver mirror.
* Miss Carson — Silver manicure set.
* Mr. Barry — Silver calendar.
* Lady Limerick — Silver and glass box.
* Lady Marjorie Wilson — Grey bag.
* Miss Buddy — Silver thermometer.
* Captain Fortescue — Fan.
* Miss Cockerell — Antique box.
* Sir Andrew and Lady Reid — Silver box.
* Mr. Arthur Portman — Oxidised inkstand.
* Lady Mar and Kellie — Gold box.
* Lord Hyde and Lady E. Villiers — '''Three turquoise safety pins'''.
* Miss Freda Villiers — Enamel box.
* Lady Galway and Miss Monckton — Round tortoiseshell box.
* Mr. Reade — '''Book'''.
* Mr. and Mrs. Sinclair — Fan.
* Lord and Lady Hopetoun — Diamond kangaroo.
* Captain and Mrs. Greer — Seal.
* Sir John and Lady Milbanke — Photo frame.
* Mrs. Claud Lambton — Tortoiseshell and silver box.
* Mr. and Lady Getrude Langford — Photo frame.
* Sir William and Lady Carrington — Crystal and gold box.
* Mr. Guy Rennie — Gold Penholder (with stones).
* Sir Howard and Lady Vincent — '''Silver Prayer Book'''.
* Lady Constance Hatch — Crystal and turquoise penholder.
* Dowager Lady Howe — Silver basket.
* Colonel and Mrs. Crawford — Box.
* Lord Dufferin — '''Book (18th Century)'''.
* Mr. Olphert — Two silver mice.
* Mr. Stone and Miss Stone — Silver rose bowl.
* Mrs. Dudley Field — Gold scent bottle.
* Lady Naylor-Leyland — Purse.
* Sir James Montgomery — Silver and tortoiseshell mirror.
* Mr. Sampson Walters — Silver frame.
* Lord and Lady Clonbrock — China box.
* Mrs. Arthur Pakenham — '''Electric lamp'''.
* Duke and Duchess of Newcastle — '''Work table'''.
* Dowager Lady Esher — Fan.
* Lord and Lady Arthur Hill — Case and four scent bottles.
* Major Edward Beaumont — Umbrella.
* Misses Vivian — Enamelled box.
* Hon. Mrs. Oliphant — '''Paper case and book'''.
* Mr. Ivor Guest — Seal.
* The Countess of Ravensworth — Diamond hairpin.
* The Hon. T. and Mrs. Dundas — Ornament.
* Mr. and Mrs. John Dunville — Driving whip.
* [[Social Victorians/People/Bourke|Mrs. Algernon Bourke]] — Box.
* Mr. and Mrs. Harris — '''Four volumes of Shakespeare'''.
* Mr. Harold Brassey — Old silver box.
* Mr. and Mrs. Hohler — '''Screen'''.
* Mr. and Mrs. Ord — Silver teapot, cream and sugar basin.
* Lord and Lady Pirbright — Silver cup and saucer.
* Lady Arran and Miss Stopford — Seal.
* Sir R. and Lady B. Pole-Carew — Paper case and blotter.
* Mr. and Mrs. Young — Silver blotter.
* Mrs. Percy Mitford — Silver photo frame.
* Colonel and Mrs. M'Calmont — Lace scarf.
* Mr. and Mrs. T. J. Andrews — Silver paper knife.
* Mr. and Mrs. Goldsmith — Two lace handkerchiefs.
* Sir Henry Ewart — Driving whip.
* Mr. and Mrs. T. Brough — Mirror.
* Mr. James Knowles — '''Jane Austen’s works — 6 volumes'''.
* Mr. and Mrs. Robinson — '''Book'''.
* Sir F. Dixon-Hartland — Silver waist belt.
* Mr. Leonard — '''Brassey table'''.
* Mr. and Mrs. F. Wrench — Silver jug.
* Major Little — Green leather bag.
* '''Mr. Thomas Hardy''' — '''Book'''.
* Sir Edward Hamilton — Silver basket.
* Lady Anne Lambton — '''Fire screen'''.
* Lord and Lady de Ros — '''d'Oyleys''' [sic].
* Lady Lilian Wemyss — Box.
* Miss Cadogan — Silver stamp case.
* Dowager Lady Rosslyn — '''Shagreen''' box.
* Lady Annable Milnes — Paper box.
* Sir Donald Wallace — Writing case.
* Mr. and Mrs. C. Chaplin — '''Two books'''.
* Lady Aberdeen — Tray.
* Lord and Lady Downshire — lnkstand.
* Lord and Lady Boyne — Fan.
* '''H. E. The Portuguese Minister''' — lnkstand.
* Mrs. Laverton — Two silver photo frames.
* Mr. and Mrs. William West — Gold ring box.
* Mr. Hope Hawkins — '''Books'''.
* Hon. and Mrs. Eric North — Box.
* Mr. and Mrs. J. B. Leigh — '''Screen'''.
* Sir James and Lady Miller — Silver urn.
* Lord and Lady Ashbourne — Three silver sugar casters.
* Mr. Hugh Owen — Parasol top.
* Colonel and Mrs. Fludyer — Scent bottle.
* Lady Doxford — Two China vases.
* Lady Emma Talbot — Seal.
* Lady Florence Astley — '''Book'''.
* Mrs. Charlton Lane — Copper jug.
* Lord and Lad Yarborough — Clock.
* Miss Gurwood —Two China vases.
* Miss Murray — '''Book'''.
* Mr. and Mrs. Bampfylde — Gold scent bottles.
* Mr. and Mrs. Jarvis — Mother of pearl box.
* Lord and Lady Alice Stanley — '''Writing table'''.
* Lord and Lady Templetown — Two silver candlesticks.
* Lord and Lady Westmoreland — Six tea knives.
* Lord and Lady Robert Cecil — Butter knife.
* Dowager Lady Airlie — Gold tray.
* Dowager Lady Annaly — Address book.
* Mr. and Mrs. F. Lambton — Green bag.
* M. and Male. Dominguez — '''Fur rug'''.
* Mr. and Mrs. Bourchier —Silver box.
* Mr. and Mrs. Warham — Lace and mother of pearl fan.
* Lord and Lady Penrhyn — Enamel bracelet.
* Captain H. Lambton — Enamel brooch.
* Lady De L'lsle — Card case.
* Mr. and Mrs. Dance — Silver calendar.
* Lady B. Herbert — Silver box.
* Lord and Lady Henry Fitzgerald — Silver buttons, [sic]
* Lord and Lady Selborne and Lord and Lady Cranborne — '''Corner cupboard'''.
* Lord Ingestre — Green jewel case.
* Mr. Vere Chaplin — Blue blotter.
* Captain Markham — Leather bridge box.
* Mr. and Mrs. W. Ridley — Jay feather fan.
* Mr. and Mrs. C. Hunter — Links.
* Mr. and Mrs. Atkinson Clarke — China box.
* Captain and Mrs. Fowler — Antique fan.
* Dowager Lady Ampthill — Clock.
* Mr. and Mrs. Hopkins ——
* Sir R. and Lady Graham — '''Silver shoe'''.
* Major Mackenzie — Whist markers.
* Mr. Mclntyre — Two silver and glass bonbonnieres.
* Miss Russell — White satin cushion.
* Miss Green — White scarf.
* Mr. and Mrs. Vane-Tempest — Bangle.
* Mr. and Lady Isobel Hardy, and Mr. Stanley — '''Karosse''' [sic].
* Mr. and Mrs. R. Gerard —Twelve spoons.
* Mr. Clarence Wilson — Embroidered silk cloth.
* Dr. Maclagan — Silver box.
* Lady Bradford — Four glass vases.
* Mr. Rupert Guinness — '''Table'''.
* Lady Ashburton — '''Book'''.
* Duchess of Bedford — Frame in case.
* Lord and Lady Edmund Talbot — Two scent bottles.
* Mr. H. Milner — '''Book'''.
* Mr. James Gray — Clock.
* Lord Herbert — Tortoiseshell inkstand.
* Mr. Rabone — '''Table'''.
* Mrs. Alston — Walking stick.
* Lord and Lady Howe — Silver bowl. [Col. 4c–5a]
* Lady Norreys—'''Table'''.
* Lord and Lady Hamilton — Gilt mirror.
* Miss Ord — Two sketches.
* Lord and Lady Gerard — '''Diamond sword'''.
* Lady G. Little—Gilt letter-case.
* General and Mrs. Godfrey Clark — Spray with gilt top.
* Mrs. Blizzard — White embroidered cloth.
* Mrs. Craigie — '''Book'''.
* Mr. and Lady Victoria Grenfell — Glass and silver tray.
* Mr. and Lady F. Sturt — '''Two tables'''.
* Mr. Hope — Tea basket.
* Lady Emma Crichton —Silver pepper pot.
* Major Murrough O'Brien — Silver pen tray.
* General and Mrs. Montgomery — Green blotter and paper case.
* Mr. W. H. Grenfell — Green letter case.
* Mr. F. Curzon — Large green blotter.
* Mr. Venning——
* Mr. and Mrs. Richardson — Coffee cups and saucers and spoons.
* Misses Griffiths — Carved oak tray.
* Lord and ladg North——
* Miss Smith — Silver shoehorn and buttonhook.
* Lord and Lady Derby — Necklace and pearl drop.
* Right Hon. C. J. Rhodes — Turquoise and diamond necklace.
* Lady Isabella Wilson — Silver box.
* Mrs. Corry — Frame.
* Lord and Lady St. Oswald — '''Two tables'''.
* Mr. R. Gillart — Mirror.
* Rev. J. G. Nash — Gold pen.
* Mr. A. Strong — '''Book'''.
* Lord and Lady Shaftesbury — Enamel card case.
* Colonel Duncombe — Paperknife and bookmarker.
* Lady Sherborne — China box.
* Lord and Lady Wolverton — Ruby and diamond ring.
* Mrs. Hartmann — Tortoiseshell paperknife.
* Viscount and Viscountess Wolseley — Two china elephants.
* Lord and Lady Essex — Fan.
* Mr. McDonnell — Cigarette case.
* Mr. and Mrs. Clinton Dawkins — Buttons.
* Miss Reynardson — Writing block.
* Colonel Forster — Umbrella.
* Lord and Lady Dudley — Dessert service.
* Mrs. Cockerell — Fan.
* Mrs. Gramshaw — Cushion.
* Miss Muriel White — Grey bag.
* Mrs. Parker — Carved ivory box.
* Admiral and Mrs. Carpenter — Old silver box.
* Miss Alexander — Silver box.
* Sir Bache and Lady Cunard — Silver vase.
* Lord and Lady Binning — '''Vitrine'''.
* Sir M. Fitzgerald — Whip.
* Sir Edgar Vincent — Diamond necklet.
* Colonel Chaudos Pole — Silver sugar sifter.
* Mrs. Murray Guthrie — Crystal penholder.
* Right Hon. Joseph and Mrs. Chamberlain — Silver coffee pot.
* Mrs. Grenfell — Buttons.
* Mrs. Arthur Paget — Jewel box.
* Lady Grosvenor — Silver cigarette box.
* Lord Faversham — Silver basket.
* Earl and Countess Wargrave — Crystal jar.
* Lord and Lady Camden — '''Vitrine'''.
* Mr. and Mrs. Wharton — Paper knife.
* Mr. Ker — Two crystal bowls.
* Dr. and Mrs. Hind — Whip.
* Lady Ellesmere — Crystal pen and seal.
* Sir Felix and Lady Semon — Address book.
* Mrs. Arthur Henniker — Books.
* Mr. and Miss Weir — Silver potato bowl.
* Captain and L[a]dy Edith Trotter — Card case.
* Mrs. Chaine — Enamel frame.
* Lady Jane Levett — Six tea kn ves [knives..
* Lady Maud Warrender — Glass jar with gold top.
* Lord Huntingfield — Umbrella.
* Mr. and Mrs. '''Carlisle''' — Silver box.
* Mr. and Mrs. R. North — Silver milk jug.
* Dowager Lady Lonsdale — Worcester china jug.
* Mr. and Mrs. Arthur Hay — Silver frame.
* Mr. and Mrs. F. Bibby — Six buttons.
* Duchess of Westminster — '''Dreyfous''' tray.
* Lord and Lady Llangattock — Silver vase.
* Mr. and Mrs. Appleby — Tea set.
* Lord and Lady Gosford — Crystal workcase.
* Lady Alwyne Compton — Antique fan.
* Mrs. Kerr — Card case.
* Sir Francis and Lady Knollys — '''Life of Napoleon I'''.
* Mr. and Mrs. R. Spencer — '''Five vols. Spenser's Poems'''.
* Mrs. Spence — Stamp box.
* Mr. Borthwick — Enamel vinaigette.
* Mr. Wiener — Tea set.
* Dr. and Mrs. Davies —
* Rev. James Colling — Silver salver.
* Earl and Countess of Eglinton — Two large palm vases.
* Miss Nellie Larnach — Bag.
* Lady Helen Forbes — '''Book'''.
PRESENTS TO THE BRIDEGROOM.
* The bride — Pearl and diamond solitaire stud and gold cigarette case.
* The Earl of Ilchester — Brougham.
* The Marquis of Londonderry — '''Three guns'''.
* Viscount Castlereagh — Lincheon case.
* Lady Maria Hood — '''Chippendale bureau'''.
* '''Tenants at Melbury''' — '''Dutch marquetrie [sic] bureau'''.
* '''Tenants''' at Dorchester — Silver bowl and address.
* '''Tenants''' on the Redlynch Estate — Silver bowl and address.
* '''Tenants''' at Abbotsbury — Silver basket.
* '''Servants''' at Holland House, Melbury, and Abbotsbury — Silver inkstand.
* '''Stablemen''' at Melbury — Pair of silver candlesticks.
* '''Garden employees''' at Holland House — Silver-mounted blotting book.
* Employees on the Melbury Estate — Silver salver.
* Employees on Redlynch Estate — Four silver salt cellars.
* Tenants at Plaitford, Wilts — Silver box.
* Mr. Maurice Hood — Letter rack.
* Lord Home — Phaeton [Phæton] whip.
* Captain J. Ponsonby — Hippo. hide cane.
* Hon. E. Fitzgerald — lnkstand.
* Lord Villiers — Two silver sweetmeat dishes.
* Commander Hon. G. Digby — Snuff box.
* Mr. and Lady Sybil Smith — Paper knife.
* Mr. Baird — Four antique silver salt cellars.
* Mr. and Mrs. Dawkins — '''Two newspaper stands'''.
* Dr. and Mrs. Williamson — Gold pencil case.
* Mr. and Mrs. Mansel-Pleydell — Silver box.
* Lord and Lady Digby — Marble and gilt clock.
* Lord Beaucham — Six silver-mounted wine corks.
* Mr. Hope Vere — Four glass decanters.
* Mrs. and Miss Magnac — Revolving book table.
* Lord Elphinstone — Silver lighter.
* Mr. and Mrs. Hanbury — Silver loving bowl.
* Lord and Lady Lansdowne — Two candlesticks.
* Lord Rowton — Large silver bowl.
* Captain and Lady E. Dawson and Mr. and Mrs. Dawson — Two silver salvers.
* Mr. and Mrs. A. Sassoon — Silver inkstand.
* Miss Sybil Hood — Case of tea knives.
* Lord Shrewsbury — Luncheon case.
* Miss Roche — '''Book''' (Josephine Impl.).
* Mr. Rice — Telegraph book.
* Lady Edith and Lady Mary Dawson — Breakfast service.
* Major Wynne Finch — Dutch silver box.
* Mrs. Charrington — Gold pencil case.
* Sir A. and Lady Edmondstone — '''Book''' (Prince Charles Edward).
* Mr. and Mrs. Sackville West — Twelve Crown Derby dessert plates.
* Sir H. and Lady Prinsep — Silver gilt ash tray.
* Lord and Lady Savile — Cigar case.
* Mr. Maurice Glyn — Six tea knives.
* Colonel and Lady E. Digby — Two silver candle sticks.
* Major and Mrs. Clayton — Glass and ormulu jar.
* Lord and Lady Baring — Two glass and silver jugs.
* Miss Maclagan — lnk bottle.
* Hon. A. Meade — Claret jug.
* Mr. Arnold Morley — '''Barograph'''.
* Mrs. Hope-Vere—Blotting book and paper rack.
* Lord and Lady Yarborough — Sleeve links.
* Viscount Ridley — Mustard pot and spoon.
* Mr. Gibbs — Waistcoat buttons.
* Hon. Cecil Brownlow — Blotting book.
* Colonel Jervoise — Silver basin. [Col. 5c–6a]
* Mr. and Mrs. A. Wilson — '''Walnut seat'''.
* Mr. F. Bevan — Carriage rug.
* Lord Crichton — Tortoiseshell paper knife.
* Mr. Clarence Wilson — Green box.
* Mr. and Mrs. K. Wilson — Book slide.
* Lady Aberdeen — Nest and cups.
* Mr. and Mrs. F. Sassoon — Watch in case.
* Hon. Thomas Egerton — Umbrella.
* Mr. Gillett — Cake knife.
* Lady Clanwilliam — Gold pencil.
* Mr. and Mrs. L. de Rothschild — Sleeve links.
* Lord and Lady Breadalbane — Deersfoot matchbox.
* Mrs. Bischoffsheim — Silver box.
* Mr. and Mrs. H. Cook — Two salt cellars and casters.
* Miss Helyar — Gold paper knife.
* Lord and Lady Moreton — Silver bell.
* Mrs. R. Greville — Diamond and ruby pin.
* Captain Markham — Silver cigarette box.
* Mr. Hare — Gold matchbox.
* Major Hon. E. St. Aubyn — Silver-mounted glass jug.
* Mr. R. Dawson — Silver tankard.
* Mr. and Mrs. A. Dawson — Fruit dish and scissors.
* Mrs. Keppel — China candlesticks and inkstand.
* Misses M. and N. Dawson — '''Card table'''.
* Mr. Bradley Martin, jun. — Silver inkstand.
* Rev. R. Roberts — Glass ink bottle.
* Mr. R. Charteris — Automatic stamp box.
* Hon. H. Fraser — Diamond grouse pin.
* Hon. Mrs. Long — Blotting book.
* Mr. G. Lane Fox — Silver-handled umbrella.
* Mr. and Mrs. Bradley Martin — Gold cigarette case.
* Mr. W. Burns — Old silver cup.
* Lord Dunglass — Turquoise and diamond pin.
* Mr. and Mrs. F. Egerton — Phot-frame.
* Mr. N. Campbell — Book.
* Lord and Lady Craven — Silver cigarette box.
* Messrs. G. and L. Digby — Glass paper rack.
* Hon. Mrs. Ramsay — Magnifyng glass.
* Captain Heneage — French box.
* Mr. H. Harris — Silver candlesticks.
* Mr. and Mrs. Dudley Leigh — Silver corkscrew.
* Mr. and Mrs. G. Marjoribanks — Champagne jug.
* Hon. E. and Mrs. Stonor — '''Writing desk'''.
* Lord Cecil Manners — Ash tray.
* Lord and Lady Dartrey — '''Small plate chest'''.
* Colonel V. and Colonel D. Dawson — Coldstream star pin.
* Dowager Lady Ashburton and Miss Baring — Silver salver.
* Mr. and Mrs. '''Wells''' — '''Books''' (Shakespeare).
* Dowager Lady Tweedmouth—Sixsilver liqueur ’ Captain and Mrs. Amory—Liquer stand. Mrs. F. Wombwell—Four dessert spoons, Mr. H. Milner—Walking stick. Mrs. Sheridan—Two silver candlesticks. Mr. M. Drummond-—Six menu holders, Mr. and Mrs. Atkinson Clarke—Silver cigarette case. Lady Clandeboye—Letter weight. Lady Carnarvon—Cigarette case. Mr. Levita—Silver box. Mrs. Macdonald—Silver cigarette box, diamond and ruby pin, Major M‘Ad’nm—Woodoock pin. Lord Hamilton of Dalzel—Silver inkstand. Rev. R. B. and Mrs. Roe—Two silver menu holders. bo:(kr' Maurice Egerton—Tortoiseshell blotting | (l}: C. Gru(:}t—ogilver flrmu l)o‘x‘;l ptain G. Crichton—Asparagus . Mr. W. M‘Ewan —Silver salver. - Mr. Gervase Beckett—Four bottle stands. Captain Hon. Guy Baring—Silver inkstand.<ref>"Marriage of Lady Helen Stewart." ''Londonderry Standard'' 27 January 1902, Monday: 8 [of 8], Col. 1a–6b [of 6]. ''British Newspaper Archive'' https://www.britishnewspaperarchive.co.uk/viewer/bl/0005986/19020127/161/0008. Print title: ''The Derry Standard'', p. 8.</ref></blockquote>
== Notes and Questions ==
#
==References==
{{reflist}}
qzhp8fw791ab6e6job32e4zi5txns19
2718938
2718845
2025-06-17T22:55:04Z
Scogdill
1331941
2718938
wikitext
text/x-wiki
=Event=
Wedding of Lady Helen Stewart and Lord Stavordale, son of the Earl and Countess of Ilchester
==Overview==
==Logistics==
* Saturday, 25 January 1902, 2:00 p.m., St. Peter’s Church, Eaton-square, London
* Bride's bouquet "was made at Wynyard by Mr. H. E. Gribble, head gardener, and was composed of gardineres, lilies of the valley, with orange blossom and myrtle." (Col. 1b)
* Bride's dress made by Madame Kate Reily, No. 10, Dover-street, Piccadilly.
* "The whole of the embroidery, &c., was made and arranged in England by Madame Reily’s own workers." (Col. 1b)
* Bride's traveling dress made by Madame E. Durrant, 116, New Bond-street, W.
* Bridesmaids' dresses made by Madame Oliver Holmes, 61, New Bond-street, W.
* Bridesmaids' hats made by Madame Cecil, 43, South Molton-street, W.
* Bridesmaids' bouquets made by Madame Escourt, Wigmorestreet, London.
==Related Events==
* Reception
* Honeymoon
==Who Was Present==
===Bride and Bridesmaids===
====Bride====
====Bridesmaids====
====Pages====
===Groom and Best Man===
===People Who Attended===
# Are these the writers?
##
==What People Wore==
#
==Gifts==
Lady Helen Stewart received a lot of very valuable jewelry, including a diamond and turquoise brooch from King Edward VII and Queen Alexandra and a pearl and diamond bracelet from the tenantry on the family county Down estate and the inhahitants of Newtownards, Ireland.
=== From Tenants and Servants ===
==== For the Bride ====
* Tenantry on county Down estate and inhahitants of Newtownards, Ireland — Pearl and diamond bracelet.
* Servants at Londonderry House — Gold and velvet pincushion.
* Employees at Wynyard — Gold mirror.
* Tenants on Wynyard Park and Longnewtown estate — Silver salver.
* Employees on Mount Stewart estate — Gold necklace, with pearl ornament.
* North Durham tenants — Silver bowl.
*
===Books===
The bride received an unusually large number of books, and the groom received some as well.
*Book, Two books, Book, Book, Russian leather hymn-book, Book
*Book on gardening
*Set of books — George III.
*Book on Japan
*Jane Austen’s novels
*Volumes of poetry
*Boswell’s Life of Johnson — 5 volumes
*Prayer Book
*Two "Punch'’ books
*Merriman's Novels
*Twenty-five volumes poetry
*Six volumes Rudyard Kipling
*Book (Mme. Ricomier).
* Book (Bacon’s Essays)
* Shelley's Poems
* Book (Browning)
* Matthew Arnold’s Poems
===Unusual or Interesting Gifts===
*Pony phæton and harness
*Dinner service
*Fur rug, Brown fur rug, Blue cloth and white fur rug
*Silver aneroid [barometer]
*Green leather blotter ([[Social Victorians/Victorian Things#Edouard Henry Dreyfous|Dreyfous]])
*[[Social Victorians/Victorian Things#Edouard Henry Dreyfous|Dreyfous]] tray (x2)
*Electric clock
*Riding whip (hippo)
*Bellows
*lndian embroidery
*Enamel letter rack
*Silver telegraph case
=== Furniture ===
* Writing cabinet
* Antique table, Table, Carved wood table
* Bureau
* Writing table
* Rosewood table and box
* Screen, Screen, Screen, Screen, Fire screen, Embroidered firescreen, Screen
* Card table
* Book tray and stand, Bookslide and stand, Book stand, Book case
*
==Anthology==
From the ''Londonderry Standard'':<blockquote>Marriage of Lady Helen Stewart. A Brilliant Gathering.
The marriage of Lady Helen Stewart, only daughter of the Marquis and Marchioness of Londonderry, Londonderry House, Park-lane, London, with Lord Stavordale, son of the Earl and Countess of Ilchester, Holland House, Kensington, London, took place in St. Peter’s Church, Eaton-square, London, on Saturday at two o’clock. The bride, who was given away by her father, wore a dress made of a lovely shade of rich ivory duchesse satin. The skirt was embroidered with graduated true lover's knots on the same satin, veined with a silver thread. The train was an original one, as it formed, and was part of, the skirt, and . [sic] was made with an exquisite flounce of Limerick lace, caught up with bows of the same embroidery. The bodice was very prettily arranged with old lace, forming a fichu at the back, with insertions of the same lace in front. The sleeves were of transparent chiffon and lace. The bride wore a wreath of orange blossorns and myrtle grown from that used in her mother's wedding bouquet, and also a veil of Brussels lace, which was worn by Lady Londonderry and her sisters, and by the Hon. Mrs. Beckett at their weddings, and by the Dowager Lady Shrewsbury. The bride’s ornaments were a pearl and diamond collar, a gift from the county of Durham, and a diamond riviere, the gift of her father. She was attended by ten bridesmaids, viz., Miss Marion Beckett, Miss Gladys Beckett, Miss Margaret Beaumont, Miss Aline Beaumont, Lady Muriel Fox-Strangways, Lady Edith Dawson, Lady Viola Talbot, Miss Muriel Chaplin, Miss Madeleine Stanley, and Miss Eleanor Hicks-Beach. The four first-named were little girls, and they wore Empire frocks, to the ground, of old lace, over ‘‘quicksilver” silk, with high sashes of cloth of gold. Gold shoes and stockings and white mittens completed this quaint costume. The remaining and elder bridesmaids wore gowns of white ‘‘quicksilver” silk, draped with old lace over chiffon, the deep flounce headed by crescents of Russian sable. The bodices had deep lace collars bordered with the sable, and were fastened at the waist with sashes of cloth of gold tied at the side and falling in long ends. They wore long biscuit coloured suede gloves and white felt hats, trimmed with bouquets of white and yellow jonquils and green and brown leaves. The bridesmaids carried baskets of jonkils [sic] and lilies of the valley, and wore diamond birds, the gifts of the bridegroom. The officiating clergy were the Primate of Ireland, the Rev. Canon Body (Durham), the Rev. H. A. V. Boddy (vicar of Grindon, county Durham, and chaplain to Lord Londonderry at Wynyard Park), and the Rev. J. Storrs (vicar of St. Peter’s, Eaton-square). The bridegroom was attended by Lord Hyde as best man. The ceremony over, a reception was held at Londonderry House, and later the bride and bridegroom left for Ingestre, Stafford, the residence of the Earl of Shrewsbury, uncle of the bride, where they will spend the honeymoon. The bride's travelling dress was of creamy white cloth, the skirt being made with a garniture of deep ecru embroidered lace, opening in front over an underdress of creamy white panne velvet, a border of which was shown all round the bottom of the skirt, and edged with sable. The corsage, with a vest of lace to match the skirt, the cloth slashed down each side, with little straps of panne velvet fastened with tiny gold studs, showing the lace underneath, a double collar round the shoulder, the under one in panne velvet, the outer one in cloth, with lace applique and slashed similar to bodice in order to show the panne collar underneath. A shaped belt of gold fabric, made high back and front, and slashed into little bands, showing the white dress underneath, the sleeves finished with transparent full undersleeves of lace and wristbands embroidered gold, neckband to match. Large cream beaun picture hat, with two large ostrich feathers round the mount, '''a whole sable arranged on the crown''', the sable’s head just showing to the face; on one side a cluster of creamy roses nestling on the hair under the brim. She wore a black sable muff and boa, given her by the Marchioness of Londonderry, and a cape to match, the gift of Mr. and Mrs. Dunville, of Redburn, county Down.
The bride’s bouquet was made at Wynyard by Mr. H. E. Gribble, head gardener, and was composed of gardineres, lilies of the valley, with orange blossom and myrtle. The Marchioness of Londonderry wore a silver grey crepe de chine dress, with valenciennes lace, toque, ruffle, and muff to match.
The bride’s dress was made by Madame Kate Reily, No. 10, Dover-street, Piccadilly. The whole of the embroidery, &c., was made and arranged in England by Madame Reily’s own workers. Bride's travelling dress — Madame E. Durrant, 116, New Bond-street, W. Bridesmaids’ dresses — Madame Oliver Holmes, 61, New Bond-street, W. Bridesmaids’ hats — Madame Cecil, 43, South Molton-street, W. Bridesmaids’ bouquets — Madame Escourt, Wigmorestreet, London.
Presents to the Bride.
* Marquis of Londonderry — Diamond tiara, diamond earrings, diamond riviere, three diamond brooches, pearl and diamond ring, pony phæton and harness.
* Marchioness of Londonderry — Diamond arrow, sable muff and boa, set of Cambrai point lace, set of Irish rose point, two flounces of Irish lace.
* Earl of Ilchester — Pearl necklace, with diamond clasp.
* Countess of Ilchester — Emerald and diamond necklace, with large emerald and diamond pendant, emerald and diamond comb, two emerald and diamond brooches.
* Lord Stevordale — Diamond brooch, ruby and diamond bracelet, turquoise and diamond earrings, emerald and diamond ring.
* Their Majesties the King and Queen — Diamond and turquoise brooch.
* H.R.H. Princess Victoria — Turquoise and diamond pendant.
* Prince and Princess of Wales — Diamond and sapphire crescent.
* T.H.R. The Duke and Duchess of Connaught — Mirror.
* The Duke and Duchess of Fife — Travelling bag.
* Prince Christian — Crystal and emerald umbrella handle.
* Prince and Princess Edward of Saxe-Weimar — Silver mirror.
* Belfast Conservative Association — Emerald and diamond bracelet.
* Officers of Second Durham Artillery Volunteers — Silver salver.
* Tenantry on county Down estate and inhahitants of Newtownards, Ireland — Pearl and diamond bracelet.
* Friends in the county of Durham — Pearl and diamond dog collar.
* The ladies of Belfast — Carrickmacross lace robe.
* County Down Staghounds’ Hunt Club — Silver tea and coffee set.
* North-Eastern Agricultural Society (county Down) — Silver candlebra.
* Officials General Post Office — Silver inkstand.
* Mr. George Hardy and workmen of Londonderry Engine Works — [sic]
* Servants at Londonderry House — Gold and velvet pincushion.
* Employees at Wynyard — Gold mirror.
* Seaham Harbour Primrose League — Three silver rose bowls.
* Tenants on Wynyard Park and Longnewtown estate — Silver salver.
* Employees on Mount Stewart estate — Gold necklace, with pearl ornament.
* North Durham tenants — Silver bowl.
* Tradespeople of Stockton-on-Tees — Writing cabinet.
* Mothers’ Union at New Seaham — Writing-case.
* G.F.S. at Wynward — Silver and leather blotter.
* Wynyard school children — Silver and leather paper case.
* Wynyard choir — Visitors’ book.
* Mountstewart school children — Two satin covers.
* Downger Marchioness of Londonderry — Gold tea service. [Col. 1c–2a]
* Dowager Countess of Shrewsbury — Pearl and diamond cluster ring.
* Earl of Shrewsbury — Gold-mounted and tortoiseshell dressing-case.
* Mr. and Lady Aline Beaumont — Pearl and diamond comb and sapphire ring.
* Lord Henry Vane-Tempest — Turquoise and diamond bracelet.
* Lord Herbert Vane-Tempest — Enamel pearl muff chain.
* Viscount and Viscountess Helmsley — Emerald and pearl necklet and ornament and enamel comb.
* Viscount and Viscountess Castlereagh — Dinner service.
* Mr. and the Hon. Mrs. G. Beckett — Pearl and diamond earrings.
* Marquis of Salisbury — Jewelled and emerald necklace.
* Baroness Burdett-Coutts — Emerald and pearl necklace and emerald and diamond buckle.
* Lord and Lady Rothschild — Sapphire and diamond star brooch.
* Lord and Lady Lurgan — Sapphire and diamond bracelet and emerald and diamond ditto.
* Marquis and Marchioness of Zetland — Muff chain.
* Mr. and Lady Isabel Larnach — Sapphire and diamond horseshoe bracelet.
* General the Hon. R. Talbot and Mrs. Talbot — Holbein pendant and gold and pearl chain.
* Earl and Countess Brownlow — Sapphire and diamond buckle.
* The Russian Ambassador and Madame de Staal — Blue enamel buckle.
* Lord and Lady Tweedmouth — Ruby and emerald pendant.
* Duke and Duchess of Marlborough — Ruby and diamond locket and chain.
* Mr. and Mrs. Arthur Sassoon — Diamond bow brooch.
* Lady Margaret Orr-Ewing — Turquoise and gold muff chain.
* Sir William and Lady Eden — Emerald and pearl bracelet.
* Duke and Duchess of Portland — Diamond and pearl brooch.
* Mr. C. D. Rose — Amethyst and gold chain.
* Count Koziebrodzki — Gold chain bracelet.
* Lord Willoughby de Eresby — Ruby and diamond bangle.
* Lady Maria Hood — Paste buttons.
* Sir Samuel and Lady Sophie Scott — Turquoise and diamond ring.
* Mr. and Hon. Mrs. Maguire — Hat pin.
* Earl and Countess of Scarborough — Brooch.
* Lady Brabourne—Brooch.
* Mr. and Mrs. Beaumont — Enamel brooch.
* Sir Ernest Cassel — Brooch.
* Mr. and Mrs. Wilfrid Ashley — Brooch.
* Countess Camilla Hoyos — Antique Viennese watch.
* Right Hon. George Wyndham — Emerald and diamond shamrock brooch.
* Lord and Lady Iveagh — Diamond and sapphire pendant.
* Sir Thomas and Lady Wrightson — Antique gold chatelaine.
* Earl Cadogan — Antique French box.
* Earl and Countess Cadogan — Antique table.
* Right Hon. St. John Brodrick — Bureau.
* Right Hon. Walter Long and Lady Doreen Long — Silver inkstand.
* Earl Mansfield — Silver bowl.
* Earl and Countess of Crewe — Emerald and diamond ornament.
* Sir Henry and Lady Drummond Wolff — Pair of antique silver vases.
* Lord and Lady Burton — Ormulu inkstand.
* Lord and Lady Annesley—Empire gold tea service.
* Duke and Duchess of Abercorn — Jade ornament.
* Marquis and Marchioness of Waterford — Silver coffee pot.
* Lady Savile and Miss Helyar — Pair silver sconces.
* Marquis and Marchioness of Lansdowne — Four silver candlesticks.
* Right Hon. James Lowther — Four silver candlesticks.
* Dr. Mahaffy — Silver gipsy kettle.
* Earl and Countess of Erne — Silver vase.
* Lord Rowton — Silver bowl.
* Marchioness of Headfort — Silver box.
* Lord George Scott — Six silver menu holders.
* Mr. and the Misses Parkin and Miss Bowser — Silver dish and spoon.
* The Lord Mayor of Belfast and Lady Dixon — Silver bread basket.
* Lord and Lady O’Neill — Silver fruit basket.
* Right Hon. Henry and Mrs. Asquith — Four silver salt cellars.
* Lady Susan Beresford — Silver tea strainer.
* Earl and Countess of Coventry — Pair of silver candlesticks.
* Duchess of Montrose — Silver mirror.
* Countess of Suffolk — Silver box.
* Sir Francis Mowatt — Four silver dishes.
* Mr. and Mrs. John Mulhall — Silver inkstand and pair of silver candlesticks.
* Miss Montgomerie — Two silver menu holders.
* Mr. and Mrs. John Hopper — Silver rose bowl.
* Mr. and Mrs. Hamerton — Silver mirror.
* Count Albert Mensdorff — Silver bonbonniere.
* Mrs. Boddy — Carved silver waistband.
* Mr. Robert Yeoman — Antique Venetian buttons.
* Prince and Princess Alexis Dolgorouki — Silver bowl.
* Earl and Countess of Carnarvon — Gilt inkstand.
* Miss Madeline Stanley — Silver bowl.
* Duke and Duchess of Sutherland — Two silver sauce boats.
* Mr. and Mrs. Eminson — Silver bridge box.
* Earl of Durham — Writing table.
* The Chancellor of the Exchequer — Fur rug.
* Lady Lucy Hicks-Beach — Green leather despatch box.
* Mr. Bathurst — Book on gardening.
* Lord and Lady Grey — Set of books — George III.
* Lord Errington — Silver box.
* Miss Chandos-Pole — Gold sugar castor.
* Lady Cynthia Graham — Old basket brooch.
* Mr. and Mrs. D. Cooper — Fan, with mother of pearl stick.
* General Stracey — Silver shoe.
* Miss Farquharson — Gold heart-shaped brooch.
* Captain Ponsonby — Riding whip (hippo).
* Lord and Lady Ribblesdale — Paste buckle.
* Mr. and Mrs. R. Houston — Two fire screens.
* Captain and Mrs. Behrens — Mother of pearl and feather fan.
* Lord and Lady Burton — lnkstand, &c.
* Lord and Lady Londesborough — Rosewood table and box.
* Mr. and Mrs. Dunville — Brown fur rug.
* Lady Selkirk — Tortoiseshell fan.
* Dowager Lady Scarborough — Two silver candlesticks.
* Lady Hindlip — Twelve silver knives.
* Mr. J. L. Wharton — Two silver vases.
* Mr. J. B. Houston — Mezzotint of Lord Castlereagh.
* Lord and Lady Annaly — Silver gilt tea service.
* Lord Kerry — Silver aneroid.
* Sir Redvers and Lady Audrey Buller — Two antique fans.
* Mr. Watson — Two silver frames.
* Mr. and Mrs. Oppenheim — Two gold boxes.
* Lady Mabel Crichton — Green leather blotter (Dreyfous).
* Mr. and Lady Sophia Montgomerie — Enamel plaques in frame.
* Mr. H. Fetherstonhaugh — Trivet and toasting fork.
* Mr. Spender Clay — White enamel buckle.
* The Moss Family — Two painted panels.
* Canon Tristram — Book on Japan.
* Mr. Smalley — Jane Austen’s novels.
* Mr. and Mrs. Lecky — Silver clothes brush.
* Sir Berkeley and Miss Sheffield — Blue cloth and white fur rug.
* Mr. Francis Jeune — Volumes of poetry.
* Mr. Brinsly Marley — Gilt handglass.
* Lord and Lady William Cecil — Boswell’s Life of Johnson — 5 volumes.
* Mrs. Boreham — Lace collar and cuffs.
* The Ladies Northcote — Prayer Book.
* Mr. Coventry — Driving whip.
* Lord Cole — Cushion.
* Miss B. Houston — Gold penknife.
* Lady Garvagh — Seal.
* Colonel F. Rhodes — Electric clock.
* Lady Leila Egerton — Crystal umbrella handle.
* Mr. V. Hussey-Walsh — Silver shoe.
* Miss Gooday — Painted China umbrella handle. [Col. 2c–3a]
* Lieutenant-Colonel O'Shaughnessy — Trefoil silver pincushion.
* Lady Antrim — Two "Punch'’ books.
* Lord and Lady Farquhar — Two stands and lamps.
* Major Wynne Finch — En tout case.
* Lord and Lady Cowper — China box.
* Mrs. Arthur James — Screen.
* Captain and Lady Sarah Wilson — Two turquoise pins.
* Lady Fort — Silver and velvet pincushion.
* Lord and Lady Wenlock — Bellows.
* Bishop of Rochester — Book.
* Mr. and Mrs. Allhusen — Merriman's Novels.
* Sir H. and Lady Meysey-Thompson — Dreyfous tray.
* The Misses Meysey-Thompson — Penholder.
* Duchess of Manchester — Seal.
* Mr. and Mrs. Ernest Villiers — Dresden China inkstand.
* Princess Henry of Pless — Cameo ornament.
* Lord and Lady Elcho — lnlaid wooden tray.
* Mr. and Mrs. M‘Neile — Blotter and paper case.
* Mr. and Mrs. Apperley — Card table.
* Miss Dorothy Hood — Amethyst seal.
* Captain Hicks-Beach — Two silver frames.
* Lady Edith Ashley — Silver corkscrew and seal.
* Lady Mildred Allsopp — Screen.
* Dr. M‘Kendrick — Twenty-five volumes poetry.
* Dowager Lady Tweedmouth — Silver muffineers.
* Captain Brinton — Six volumes Rudyard Kipling.
* Sir Francis and Lady Jeune — Screen.
* Sir W. and Lady Harcourt — Enamel jar.
* Lady De Ramsey — Red leather blotter.
* Rev. Edgar Shepperd — Shooting stick.
* Mrs. M'Donald — Screen.
* Mrs. A. Meysey-Thompson — Gold box.
* Lady Hamilton — lndian embroidery.
* Miss Brassey — Gold frame.
* Lord and Lady Halsbury — Two books.
* Mrs. and Miss Vernon — Fan.
* Sir Hedworth Williamson — Four scent bottles in gilt stand.
* Mr. and Miss Parkin — Silver dish and spoon.
* Lady Constance Butler — Enamel box.
* Mr. and Mrs. Meiklejohn — Tortoiseshell and gold card case.
* Mrs. Watkins — Sketch.
* Mrs. G. Fowler — Paste buckle.
* Mrs. Farquharson — Purse.
* Sir Daniel and Lady Dixon — Silver bread basket.
* Duchess of Devonshire — White sunshade.
* Mrs. Charrington — Gold chain purse.
* Masters Stirling — Silver box.
* Miss Winsonme Wharton — Book (Mme. Ricomier).
* Lady Helen Vincent — Book (Bacon’s Essays).
* Duchess of Roxburghe — Fire screen.
* Mr. R. Lucas — Book.
* Lord and Lady Bathurst — Enamelled box.
* Mrs. Maurice Glyn — Book tray and stand.
* Lord and Lady Knutsford — Book.
* Mrs. Battey — Frame.
* Lord Cairns — Gold and china box.
* Captain and Lady V. Villiers — Two crystal jugs.
* Lady Beatrice Meade — Four cups and saucers.
* Prince and Princess Bismarck — Three scent bottles.
* Lady Kilmorey — Lamp.
* Mr. Frank Chaplin — Sunshade.
* Mr. and Mrs. Graham Menzies — Silver box.
* Lady Mary Willoughby — Shelley's Poems.
* Mr. and Lady Clodagh Anson — Silver box.
* Countess Isabelle Deym — Tortoiseshell and crystal umbrella top.
* Miss Sturmfels — Russian leather hymn-book.
* The Duchess of Westminster — Tortoiseshell and lace fan.
* Miss Dorothy Wilson — Twelve shamrock buttons.
* Lord and Lady Minto — Lamp and shade.
* Mrs. G. Cornwallis West — Gold inkstand.
* Major and Mrs. M‘Kenzie — Twelve amethyst buttons.
* Lord and Lady Annesley — Bookslide and stand.
* Lord and Lady Ancaster — Embroidered firescreen.
* Lady Huntingdon — Book stand.
* Lady Katherine Somerset — Work basket.
* Mr. De Pledge — Print of Lord Castlereagh.
* Major Arthur Doyle — Two carved pictures.
* Lady Parker and Captain Matthews — Book case.
* Lord and Lady Barnard — Screen.
* Sir Charles Cust — Enamel frame.
* Mr. James Mackenzie — Silver ornament.
* Miss Wrightson — Picture in frame.
* Mr. Ottley — Book (Browning).
* Mr. and Mrs. W. James — Table.
* Mr. Charles Pollen — Walking-stick.
* Miss Knatchbull Hugessen — Matthew Arnold’s Poems.
* Miss B. and Miss W. Paget — Smelling salts bottle.
* Lord and Lady Duncannon — Frame.
* Mr. and Mrs. John Delacour — Gold trinket tray.
* Viscount Ridley — Enamel letter rack.
* Miss Ridgeway — Carved wood table.
* Mr. and Mrs. George Gregson — Lace fan.
* Lady Inchiquin — Silver frame.
* The Bishop of Durham — Book.
* General Albert Williams — Silver telegraph case.
* Mr. Ward Cook — Silver inkstand.
* Rev. H. Boddy — '''Bible and Prayer Book'''.
* Lady Helen Graham — '''Book, Tennyson'''.
* Lady Charlotte Montgomery — Blotter.
* '''Mr. Edmund Gosse''' — '''Book'''.
* The Hon. E. and the Hon. A. Cadogan — Silver bottle.
* Lady Rossmore and Miss Naylor — '''Vitrine table'''.
* Colonel Swaine — Gilt box.
* Mr. and Mrs. Hall-Walker — Two silver sugar casters.
* Captain and Mrs. Colin Keppell — '''Book'''.
* Mrs. C. Vane-Tempest — White feather fan.
* Lady Sybil Gray — Enamel hatpin.
* Mr. Algernon Peel — lnlaid gold box.
* General and Miss Thesiger — Six tea knives.
* Lord and Lady Falmouth — Enamel box.
* Mr. Ruggles-Brise — '''Thirty-one volumes Carlyle’s works'''.
* Lord and Lady Henry Nevill — '''Two safety pins'''.
* Lady Muril Parsons — Silver box.
* The Misses Daisy and Aline and Master Wentworth Beaumont — '''Prayer Book'''.
* Dr. and Mrs. Dillon — Beer glass.
* Mr. and Mrs. Pirrie — '''Writing cabinet'''.
* Sir John Willoughby — Mirror.
* Sir F. and Lady Milner — Leather box.
* Lady Milton — Umbrella.
* Major Stracey Clitheroe — Driving whip.
* Mr. and Mrs. Webster — Silver mirror.
* Lord Hugh Cecil — Clock.
* Lord and Lady Enniskillen — Tortoiseshell umbrella handle.
* Rev. H. Martin and Mrs. Martin — Bible.
* Mrs. Seton—Six d’oyleys [sic].
* Dr. and Mrs. Blandford — Brown feather fan.
* Lord Crofton — '''MS. music book'''.
* Mr. and Mrs. Jameson — Emerald hatpin.
* Misses Trefusis — Pair of vases.
* Mr. and Lady Evelyn Eyre — Pair of links.
* Mrs. Strong — Cushion.
* Duke and Duchess of Teck — Silver salver.
* Lord Crichton — Tortoiseshell box.
* Captain and Mrs. Greville — Sunshade.
* Mrs. Huhn — '''German album'''.
* Mrs. and Miss Falconer — '''Tennyson (six volumes)'''.
* Lady Wilton and Mr. Prior — Gold and turquoise pen, pencil, &c.
* Miss Meerworth — '''German book'''.
* Miss Curzon — '''Birthday book'''.
* Messrs. Rothschild — Tortoiseshell paper knife.
* Mr. Herbert Praed — Four gold ornaments.
* Lady Beatrix Taylour — '''Two volumes poetry'''.
* Mr. and Mrs. Brown — '''Book, Keble's poems'''.
* Mr. Robert Vyner — Topaz hatpins.
* Archdeacon and Mrs. Long — Painting.
* Mr. Wright — Silver and glass bowl.
* Mr. and Mrs. Corbett — Silver mirror.
* Duke of Roxburghe — '''Fur rug'''.
* Mrs. Sowler — Satin satchet.
* Colonel and Mrs. Ropner — Two scent bottles in silver case.
* Dr. and Mrs. Jackson — Picture.
* The Misses Warham — Table cover.
* Mrs. Van Raalte — Ornament.
* Lady Magheramorne — Crystal bowl.
* Lord and Lady Chesham — '''Bookstand'''.
* Mr. and Mrs. Fitzgerald — China punchbowl.
* Mrs. Meiklejohn — Gold penholder.
* Miss Gibson — Green and silver blotter.
* Lord and Lady O'Brien—Lace fan. [Col. 3c–4a]
* The Misses O'Brien — Lace handkerchief.
* Baron Heyking — Hatpin.
* Mrs. Bone — Silver ornament.
* Miss Dale-Copeland — '''Book'''.
* Mr. C. P. Little — '''Screen'''.
* Mr. Thomas Egerton — Two silver ornaments.
* Miss Gully — '''Book'''.
* Mr. and Mrs. Sim — '''Gong'''.
* Sir G. and Lady Murray — Brown Ieather bag.
* Lord Rosebery — Shagreen and silver box.
* Mr. and Miss Brownlow — Round silver mirror.
* Duke and Duchess of Somerset — Embroidered box.
* Mr. and Mrs. Brydon — Gilt candlesticks.
* Sir E. and Lady Carson — Silver mirror.
* Miss Carson — Silver manicure set.
* Mr. Barry — Silver calendar.
* Lady Limerick — Silver and glass box.
* Lady Marjorie Wilson — Grey bag.
* Miss Buddy — Silver thermometer.
* Captain Fortescue — Fan.
* Miss Cockerell — Antique box.
* Sir Andrew and Lady Reid — Silver box.
* Mr. Arthur Portman — Oxidised inkstand.
* Lady Mar and Kellie — Gold box.
* Lord Hyde and Lady E. Villiers — '''Three turquoise safety pins'''.
* Miss Freda Villiers — Enamel box.
* Lady Galway and Miss Monckton — Round tortoiseshell box.
* Mr. Reade — '''Book'''.
* Mr. and Mrs. Sinclair — Fan.
* Lord and Lady Hopetoun — Diamond kangaroo.
* Captain and Mrs. Greer — Seal.
* Sir John and Lady Milbanke — Photo frame.
* Mrs. Claud Lambton — Tortoiseshell and silver box.
* Mr. and Lady Getrude Langford — Photo frame.
* Sir William and Lady Carrington — Crystal and gold box.
* Mr. Guy Rennie — Gold Penholder (with stones).
* Sir Howard and Lady Vincent — '''Silver Prayer Book'''.
* Lady Constance Hatch — Crystal and turquoise penholder.
* Dowager Lady Howe — Silver basket.
* Colonel and Mrs. Crawford — Box.
* Lord Dufferin — '''Book (18th Century)'''.
* Mr. Olphert — Two silver mice.
* Mr. Stone and Miss Stone — Silver rose bowl.
* Mrs. Dudley Field — Gold scent bottle.
* Lady Naylor-Leyland — Purse.
* Sir James Montgomery — Silver and tortoiseshell mirror.
* Mr. Sampson Walters — Silver frame.
* Lord and Lady Clonbrock — China box.
* Mrs. Arthur Pakenham — '''Electric lamp'''.
* Duke and Duchess of Newcastle — '''Work table'''.
* Dowager Lady Esher — Fan.
* Lord and Lady Arthur Hill — Case and four scent bottles.
* Major Edward Beaumont — Umbrella.
* Misses Vivian — Enamelled box.
* Hon. Mrs. Oliphant — '''Paper case and book'''.
* Mr. Ivor Guest — Seal.
* The Countess of Ravensworth — Diamond hairpin.
* The Hon. T. and Mrs. Dundas — Ornament.
* Mr. and Mrs. John Dunville — Driving whip.
* [[Social Victorians/People/Bourke|Mrs. Algernon Bourke]] — Box.
* Mr. and Mrs. Harris — '''Four volumes of Shakespeare'''.
* Mr. Harold Brassey — Old silver box.
* Mr. and Mrs. Hohler — '''Screen'''.
* Mr. and Mrs. Ord — Silver teapot, cream and sugar basin.
* Lord and Lady Pirbright — Silver cup and saucer.
* Lady Arran and Miss Stopford — Seal.
* Sir R. and Lady B. Pole-Carew — Paper case and blotter.
* Mr. and Mrs. Young — Silver blotter.
* Mrs. Percy Mitford — Silver photo frame.
* Colonel and Mrs. M'Calmont — Lace scarf.
* Mr. and Mrs. T. J. Andrews — Silver paper knife.
* Mr. and Mrs. Goldsmith — Two lace handkerchiefs.
* Sir Henry Ewart — Driving whip.
* Mr. and Mrs. T. Brough — Mirror.
* Mr. James Knowles — '''Jane Austen’s works — 6 volumes'''.
* Mr. and Mrs. Robinson — '''Book'''.
* Sir F. Dixon-Hartland — Silver waist belt.
* Mr. Leonard — '''Brassey table'''.
* Mr. and Mrs. F. Wrench — Silver jug.
* Major Little — Green leather bag.
* '''Mr. Thomas Hardy''' — '''Book'''.
* Sir Edward Hamilton — Silver basket.
* Lady Anne Lambton — '''Fire screen'''.
* Lord and Lady de Ros — '''d'Oyleys''' [sic].
* Lady Lilian Wemyss — Box.
* Miss Cadogan — Silver stamp case.
* Dowager Lady Rosslyn — '''Shagreen''' box.
* Lady Annable Milnes — Paper box.
* Sir Donald Wallace — Writing case.
* Mr. and Mrs. C. Chaplin — '''Two books'''.
* Lady Aberdeen — Tray.
* Lord and Lady Downshire — lnkstand.
* Lord and Lady Boyne — Fan.
* '''H. E. The Portuguese Minister''' — lnkstand.
* Mrs. Laverton — Two silver photo frames.
* Mr. and Mrs. William West — Gold ring box.
* Mr. Hope Hawkins — '''Books'''.
* Hon. and Mrs. Eric North — Box.
* Mr. and Mrs. J. B. Leigh — '''Screen'''.
* Sir James and Lady Miller — Silver urn.
* Lord and Lady Ashbourne — Three silver sugar casters.
* Mr. Hugh Owen — Parasol top.
* Colonel and Mrs. Fludyer — Scent bottle.
* Lady Doxford — Two China vases.
* Lady Emma Talbot — Seal.
* Lady Florence Astley — '''Book'''.
* Mrs. Charlton Lane — Copper jug.
* Lord and Lad Yarborough — Clock.
* Miss Gurwood —Two China vases.
* Miss Murray — '''Book'''.
* Mr. and Mrs. Bampfylde — Gold scent bottles.
* Mr. and Mrs. Jarvis — Mother of pearl box.
* Lord and Lady Alice Stanley — '''Writing table'''.
* Lord and Lady Templetown — Two silver candlesticks.
* Lord and Lady Westmoreland — Six tea knives.
* Lord and Lady Robert Cecil — Butter knife.
* Dowager Lady Airlie — Gold tray.
* Dowager Lady Annaly — Address book.
* Mr. and Mrs. F. Lambton — Green bag.
* M. and Male. Dominguez — '''Fur rug'''.
* Mr. and Mrs. Bourchier —Silver box.
* Mr. and Mrs. Warham — Lace and mother of pearl fan.
* Lord and Lady Penrhyn — Enamel bracelet.
* Captain H. Lambton — Enamel brooch.
* Lady De L'lsle — Card case.
* Mr. and Mrs. Dance — Silver calendar.
* Lady B. Herbert — Silver box.
* Lord and Lady Henry Fitzgerald — Silver buttons, [sic]
* Lord and Lady Selborne and Lord and Lady Cranborne — '''Corner cupboard'''.
* Lord Ingestre — Green jewel case.
* Mr. Vere Chaplin — Blue blotter.
* Captain Markham — Leather bridge box.
* Mr. and Mrs. W. Ridley — Jay feather fan.
* Mr. and Mrs. C. Hunter — Links.
* Mr. and Mrs. Atkinson Clarke — China box.
* Captain and Mrs. Fowler — Antique fan.
* Dowager Lady Ampthill — Clock.
* Mr. and Mrs. Hopkins ——
* Sir R. and Lady Graham — '''Silver shoe'''.
* Major Mackenzie — Whist markers.
* Mr. Mclntyre — Two silver and glass bonbonnieres.
* Miss Russell — White satin cushion.
* Miss Green — White scarf.
* Mr. and Mrs. Vane-Tempest — Bangle.
* Mr. and Lady Isobel Hardy, and Mr. Stanley — '''Karosse''' [sic].
* Mr. and Mrs. R. Gerard —Twelve spoons.
* Mr. Clarence Wilson — Embroidered silk cloth.
* Dr. Maclagan — Silver box.
* Lady Bradford — Four glass vases.
* Mr. Rupert Guinness — '''Table'''.
* Lady Ashburton — '''Book'''.
* Duchess of Bedford — Frame in case.
* Lord and Lady Edmund Talbot — Two scent bottles.
* Mr. H. Milner — '''Book'''.
* Mr. James Gray — Clock.
* Lord Herbert — Tortoiseshell inkstand.
* Mr. Rabone — '''Table'''.
* Mrs. Alston — Walking stick.
* Lord and Lady Howe — Silver bowl. [Col. 4c–5a]
* Lady Norreys—'''Table'''.
* Lord and Lady Hamilton — Gilt mirror.
* Miss Ord — Two sketches.
* Lord and Lady Gerard — '''Diamond sword'''.
* Lady G. Little—Gilt letter-case.
* General and Mrs. Godfrey Clark — Spray with gilt top.
* Mrs. Blizzard — White embroidered cloth.
* Mrs. Craigie — '''Book'''.
* Mr. and Lady Victoria Grenfell — Glass and silver tray.
* Mr. and Lady F. Sturt — '''Two tables'''.
* Mr. Hope — Tea basket.
* Lady Emma Crichton —Silver pepper pot.
* Major Murrough O'Brien — Silver pen tray.
* General and Mrs. Montgomery — Green blotter and paper case.
* Mr. W. H. Grenfell — Green letter case.
* Mr. F. Curzon — Large green blotter.
* Mr. Venning——
* Mr. and Mrs. Richardson — Coffee cups and saucers and spoons.
* Misses Griffiths — Carved oak tray.
* Lord and ladg North——
* Miss Smith — Silver shoehorn and buttonhook.
* Lord and Lady Derby — Necklace and pearl drop.
* Right Hon. C. J. Rhodes — Turquoise and diamond necklace.
* Lady Isabella Wilson — Silver box.
* Mrs. Corry — Frame.
* Lord and Lady St. Oswald — '''Two tables'''.
* Mr. R. Gillart — Mirror.
* Rev. J. G. Nash — Gold pen.
* Mr. A. Strong — '''Book'''.
* Lord and Lady Shaftesbury — Enamel card case.
* Colonel Duncombe — Paperknife and bookmarker.
* Lady Sherborne — China box.
* Lord and Lady Wolverton — Ruby and diamond ring.
* Mrs. Hartmann — Tortoiseshell paperknife.
* Viscount and Viscountess Wolseley — Two china elephants.
* Lord and Lady Essex — Fan.
* Mr. McDonnell — Cigarette case.
* Mr. and Mrs. Clinton Dawkins — Buttons.
* Miss Reynardson — Writing block.
* Colonel Forster — Umbrella.
* Lord and Lady Dudley — Dessert service.
* Mrs. Cockerell — Fan.
* Mrs. Gramshaw — Cushion.
* Miss Muriel White — Grey bag.
* Mrs. Parker — Carved ivory box.
* Admiral and Mrs. Carpenter — Old silver box.
* Miss Alexander — Silver box.
* Sir Bache and Lady Cunard — Silver vase.
* Lord and Lady Binning — '''Vitrine'''.
* Sir M. Fitzgerald — Whip.
* Sir Edgar Vincent — Diamond necklet.
* Colonel Chaudos Pole — Silver sugar sifter.
* Mrs. Murray Guthrie — Crystal penholder.
* Right Hon. Joseph and Mrs. Chamberlain — Silver coffee pot.
* Mrs. Grenfell — Buttons.
* Mrs. Arthur Paget — Jewel box.
* Lady Grosvenor — Silver cigarette box.
* Lord Faversham — Silver basket.
* Earl and Countess Wargrave — Crystal jar.
* Lord and Lady Camden — '''Vitrine'''.
* Mr. and Mrs. Wharton — Paper knife.
* Mr. Ker — Two crystal bowls.
* Dr. and Mrs. Hind — Whip.
* Lady Ellesmere — Crystal pen and seal.
* Sir Felix and Lady Semon — Address book.
* Mrs. Arthur Henniker — Books.
* Mr. and Miss Weir — Silver potato bowl.
* Captain and L[a]dy Edith Trotter — Card case.
* Mrs. Chaine — Enamel frame.
* Lady Jane Levett — Six tea kn ves [knives..
* Lady Maud Warrender — Glass jar with gold top.
* Lord Huntingfield — Umbrella.
* Mr. and Mrs. '''Carlisle''' — Silver box.
* Mr. and Mrs. R. North — Silver milk jug.
* Dowager Lady Lonsdale — Worcester china jug.
* Mr. and Mrs. Arthur Hay — Silver frame.
* Mr. and Mrs. F. Bibby — Six buttons.
* Duchess of Westminster — '''Dreyfous''' tray.
* Lord and Lady Llangattock — Silver vase.
* Mr. and Mrs. Appleby — Tea set.
* Lord and Lady Gosford — Crystal workcase.
* Lady Alwyne Compton — Antique fan.
* Mrs. Kerr — Card case.
* Sir Francis and Lady Knollys — '''Life of Napoleon I'''.
* Mr. and Mrs. R. Spencer — '''Five vols. Spenser's Poems'''.
* Mrs. Spence — Stamp box.
* Mr. Borthwick — Enamel vinaigette.
* Mr. Wiener — Tea set.
* Dr. and Mrs. Davies —
* Rev. James Colling — Silver salver.
* Earl and Countess of Eglinton — Two large palm vases.
* Miss Nellie Larnach — Bag.
* Lady Helen Forbes — '''Book'''.
PRESENTS TO THE BRIDEGROOM.
* The bride — Pearl and diamond solitaire stud and gold cigarette case.
* The Earl of Ilchester — Brougham.
* The Marquis of Londonderry — '''Three guns'''.
* Viscount Castlereagh — Lincheon case.
* Lady Maria Hood — '''Chippendale bureau'''.
* '''Tenants at Melbury''' — '''Dutch marquetrie [sic] bureau'''.
* '''Tenants''' at Dorchester — Silver bowl and address.
* '''Tenants''' on the Redlynch Estate — Silver bowl and address.
* '''Tenants''' at Abbotsbury — Silver basket.
* '''Servants''' at Holland House, Melbury, and Abbotsbury — Silver inkstand.
* '''Stablemen''' at Melbury — Pair of silver candlesticks.
* '''Garden employees''' at Holland House — Silver-mounted blotting book.
* Employees on the Melbury Estate — Silver salver.
* Employees on Redlynch Estate — Four silver salt cellars.
* Tenants at Plaitford, Wilts — Silver box.
* Mr. Maurice Hood — Letter rack.
* Lord Home — Phaeton [Phæton] whip.
* Captain J. Ponsonby — Hippo. hide cane.
* Hon. E. Fitzgerald — lnkstand.
* Lord Villiers — Two silver sweetmeat dishes.
* Commander Hon. G. Digby — Snuff box.
* Mr. and Lady Sybil Smith — Paper knife.
* Mr. Baird — Four antique silver salt cellars.
* Mr. and Mrs. Dawkins — '''Two newspaper stands'''.
* Dr. and Mrs. Williamson — Gold pencil case.
* Mr. and Mrs. Mansel-Pleydell — Silver box.
* Lord and Lady Digby — Marble and gilt clock.
* Lord Beaucham — Six silver-mounted wine corks.
* Mr. Hope Vere — Four glass decanters.
* Mrs. and Miss Magnac — Revolving book table.
* Lord Elphinstone — Silver lighter.
* Mr. and Mrs. Hanbury — Silver loving bowl.
* Lord and Lady Lansdowne — Two candlesticks.
* Lord Rowton — Large silver bowl.
* Captain and Lady E. Dawson and Mr. and Mrs. Dawson — Two silver salvers.
* Mr. and Mrs. A. Sassoon — Silver inkstand.
* Miss Sybil Hood — Case of tea knives.
* Lord Shrewsbury — Luncheon case.
* Miss Roche — '''Book''' (Josephine Impl.).
* Mr. Rice — Telegraph book.
* Lady Edith and Lady Mary Dawson — Breakfast service.
* Major Wynne Finch — Dutch silver box.
* Mrs. Charrington — Gold pencil case.
* Sir A. and Lady Edmondstone — '''Book''' (Prince Charles Edward).
* Mr. and Mrs. Sackville West — Twelve Crown Derby dessert plates.
* Sir H. and Lady Prinsep — Silver gilt ash tray.
* Lord and Lady Savile — Cigar case.
* Mr. Maurice Glyn — Six tea knives.
* Colonel and Lady E. Digby — Two silver candle sticks.
* Major and Mrs. Clayton — Glass and ormulu jar.
* Lord and Lady Baring — Two glass and silver jugs.
* Miss Maclagan — lnk bottle.
* Hon. A. Meade — Claret jug.
* Mr. Arnold Morley — '''Barograph'''.
* Mrs. Hope-Vere—Blotting book and paper rack.
* Lord and Lady Yarborough — Sleeve links.
* Viscount Ridley — Mustard pot and spoon.
* Mr. Gibbs — Waistcoat buttons.
* Hon. Cecil Brownlow — Blotting book.
* Colonel Jervoise — Silver basin. [Col. 5c–6a]
* Mr. and Mrs. A. Wilson — '''Walnut seat'''.
* Mr. F. Bevan — Carriage rug.
* Lord Crichton — Tortoiseshell paper knife.
* Mr. Clarence Wilson — Green box.
* Mr. and Mrs. K. Wilson — Book slide.
* Lady Aberdeen — Nest and cups.
* Mr. and Mrs. F. Sassoon — Watch in case.
* Hon. Thomas Egerton — Umbrella.
* Mr. Gillett — Cake knife.
* Lady Clanwilliam — Gold pencil.
* Mr. and Mrs. L. de Rothschild — Sleeve links.
* Lord and Lady Breadalbane — Deersfoot matchbox.
* Mrs. Bischoffsheim — Silver box.
* Mr. and Mrs. H. Cook — Two salt cellars and casters.
* Miss Helyar — Gold paper knife.
* Lord and Lady Moreton — Silver bell.
* Mrs. R. Greville — Diamond and ruby pin.
* Captain Markham — Silver cigarette box.
* Mr. Hare — Gold matchbox.
* Major Hon. E. St. Aubyn — Silver-mounted glass jug.
* Mr. R. Dawson — Silver tankard.
* Mr. and Mrs. A. Dawson — Fruit dish and scissors.
* Mrs. Keppel — China candlesticks and inkstand.
* Misses M. and N. Dawson — '''Card table'''.
* Mr. Bradley Martin, jun. — Silver inkstand.
* Rev. R. Roberts — Glass ink bottle.
* Mr. R. Charteris — Automatic stamp box.
* Hon. H. Fraser — Diamond grouse pin.
* Hon. Mrs. Long — Blotting book.
* Mr. G. Lane Fox — Silver-handled umbrella.
* Mr. and Mrs. Bradley Martin — Gold cigarette case.
* Mr. W. Burns — Old silver cup.
* Lord Dunglass — Turquoise and diamond pin.
* Mr. and Mrs. F. Egerton — Phot-frame.
* Mr. N. Campbell — Book.
* Lord and Lady Craven — Silver cigarette box.
* Messrs. G. and L. Digby — Glass paper rack.
* Hon. Mrs. Ramsay — Magnifyng glass.
* Captain Heneage — French box.
* Mr. H. Harris — Silver candlesticks.
* Mr. and Mrs. Dudley Leigh — Silver corkscrew.
* Mr. and Mrs. G. Marjoribanks — Champagne jug.
* Hon. E. and Mrs. Stonor — '''Writing desk'''.
* Lord Cecil Manners — Ash tray.
* Lord and Lady Dartrey — '''Small plate chest'''.
* Colonel V. and Colonel D. Dawson — Coldstream star pin.
* Dowager Lady Ashburton and Miss Baring — Silver salver.
* Mr. and Mrs. '''Wells''' — '''Books''' (Shakespeare).
* Dowager Lady Tweedmouth — Six silver liqueur glasses.
* Captain and Mrs. Amory — Liquer stand.
* Mrs. F. Wombwell — Four dessert spoons.
* Mr. H. Milner — Walking stick.
* Mrs. Sheridan — Two silver candlesticks.
* Mr. M. Drummond — Six menu holders.
* Mr. and Mrs. Atkinson Clarke — Silver cigarette case.
* Lady Clandeboye — Letter weight.
* Lady Carnarvon — Cigarette case.
* Mr. Levita — Silver box.
* Mrs. Macdonald — Silver cigarette box, diamond and ruby pin.
* Major M‘Adam — Woodoock pin.
* Lord Hamilton of Dalzel — Silver inkstand.
* Rev. R. B. and Mrs. Roe — Two silver menu holders.
* Mr. Maurice Egerton — Tortoiseshell blotting book.
* Mr. C. Grant — Silver cigarette box.
* Captain G. Crichton — '''Asparagus helper'''.
* Mr. W. M‘Ewan — Silver salver.
* Mr. Gervase Beckett — Four bottle stands.
* Captain Hon. Guy Baring — Silver inkstand.<ref>"Marriage of Lady Helen Stewart." ''Londonderry Standard'' 27 January 1902, Monday: 8 [of 8], Col. 1a–6b [of 6]. ''British Newspaper Archive'' https://www.britishnewspaperarchive.co.uk/viewer/bl/0005986/19020127/161/0008. Print title: ''The Derry Standard'', p. 8.</ref></blockquote>
== Notes and Questions ==
#
==References==
{{reflist}}
qw6q5kbd22faiiq58po18auwgganxvs
How news impacts democracy per USD Communications Professor Nik Usher
0
322015
2718913
2718730
2025-06-17T20:49:24Z
DavidMCEddy
218607
/* If journalism is to serve democracy ... */ add quote
2718913
wikitext
text/x-wiki
:''This discusses a 2025-06-08 interview with [[w:University of San Diego|University of San Diego]] Communications Professor Nik Usher<ref name=Usher><!--Nik Usher-->{{cite Q|Q134715348}}</ref> about their research on how news impacts democracy. The podcast is released 2025-06-14 to the fortnightly "Media & Democracy" show<ref name=M&D><!--Media & Democracy-->{{cite Q|Q127839818}}</ref> syndicated for the [[w:Pacifica Foundation|Pacifica Radio]]<ref><!--Pacifica Radio Network-->{{cite Q|Q2045587}}</ref> Network of [[w:List of Pacifica Radio stations and affiliates|over 200 community radio stations]].<ref><!--list of Pacifica Radio stations and affiliates-->{{cite Q|Q6593294}}</ref>''
:''It is posted here to invite others to contribute other perspectives, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] while [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV>The rules of writing from a neutral point of view citing credible sources may not be enforced on other parts of Wikiversity. However, they can facilitate dialog between people with dramatically different beliefs</ref> and treating others with respect.<ref name=AGF>[[Wikiversity:Assume good faith|Wikiversity asks contributors to assume good faith]], similar to Wikipedia. The rule in [[w:Wikinews|Wikinews]] is different: Contributors there are asked to [[Wikinews:Never assume|"Don't assume things; be skeptical about everything."]] That's wise. However, we should still treat others with respect while being skeptical.</ref>''
[[File:How news impacts democracy per USD Communications Professor Nik Usher.webm|thumb|Interview with [[w:University of San Diego|University of San Diego]] communications professor Nik Usher about how news impacts [[w:Public health|public health]], second draft of history, [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:Political corruption|corruption]].]]
[[File:How news impacts democracy per USD Communications Professor Nik Usher.ogg|thumb|29:00 mm:ss podcast from interview conducted 2025-06-12 of Nik Usher by Spencer Graves about how news impacts democracy]]
University of San Diego Communications Professor Nik Usher<ref name=Usher/> discusses their research on how news impacts democracy. Recent publications describe how media impacted the response to [[w:Black Lives Matter|Black Lives Matter]], [[w:COVID-19|COVID-19]], [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:political corruption|political corruption]]. This interview focuses especially on five of their recent publications:
* (2022-01) "How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption"
* (2022-07) "Journalism as historical repair work: addressing present injustice through the second draft of history"
* (2023-02) "The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy"
* (2023-05) "Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates", with 4 c-authors.
* (2024) "Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall"
== If journalism is to serve democracy ...==
Professor Usher noted that if journalism is to serve democracy, it must take a stand for democracy. Unfortunately, we are not seeing that today in part because journalism is under tremendous pressure, both economically and politically.
Professor Usher was asked about the distinction between accountability and access journalism, discussed in a recent interview in this series with [[Dean Starkman and the watchdog that didn't bark|Dean Starkman]]. Usher replied that access journalists sometimes think they are doing accountability journalism.
{{quote|Access journalism is the fight that you see right now between journalists and President Trump over who gets to be in the White House briefing room.<ref>Burch (2025).</ref> ... Access journalism is all about getting in spaces that most ordinary people don't get to be in. ... This is not something that is available to everybody. I don't have a press pass to walk into the White House. I can't cover a Supreme Court decision. I can't even go to a local police site without a press pass badge and start talking to officers. These are ways in which the institutionalization of the press and being able to be in places where other people aren't. That's all about access journalism. ...
Accountability journalism really is about how do we hold powerful institutions and powerful people to account. That's not just public institutions. It can be at the scale of the United States. It can be the local car dealer giving more money to the football team than they should.
Often the line is "[[w:Follow the money|Follow the money]]". Now you might want to follow people back to their bedrooms. We're seeing bad behavior of people in power not just about malfeasance but also about they way they treat other people and abuse their interpersonal power. and about holding institutions accountable for doing what they say they'll do. ...
Who has time to do accountability journalism other than journalists? Who has the skills?
Every so often you'll have some crackerjack whistleblower community advocate, who has the ability to spend all day long pouring through local filings or [[w:Federal Election Commission|FEC]] reports or something. ...
That is what distinguishes journalism as a profession from all of the other things. This is what you do all day long. You have the skills and hopefully the institutional backup.}}
Graves noted, "You can defame poor people with impunity. But if you say something that might offend someone with power you've got to check your facts. That takes time. And even if you get it right, it might not be profitable."
Usher replied, "It's only recently that people have felt that they could push back on journalists. ... When I was a reporter ... my editors used to tell me, 'Don't listen to protesters. Go ask the police for a crowd estimate, because they have to assign the right number of officers. ... [But] the right number of officers may be deeply out of proportion with the people present, as we are seeing [[w:June 2025 Los Angeles protests|events unfold in Los Angeles.]]"
{{quote|The greatest weapon against the American press at this point is probably the threat of litigation. ... You see this with [[w:60 Minutes|''60 Minutes'']].<ref>Folkenflik (2025).</ref> You see this with [[w:The New York Times|''The New York Times'']]. [[w:A. G. Sulzberger|Sulzberger]] just said that he conferred with his outside counsel that they would indeed support him ... and the ''New York Times'' if they needed to engage in some really high level litigation against the President. And do you know why he did that? He did that because during the ''[[w:Pentagon Papers|Pentagon Papers]]'', the outside counsel of ''The New York Times'' actually decided they couldn't represent ''The New York Times'', that it was too much of a risk.}}
== The need for media reform to improve democracy ==
This article is part of [[:category:Media reform to improve democracy]]. We describe here briefly the motivation for this series.
[[Great American Paradox|One major contributor to the dominant position of the US in the international political economy]] today may have been the [[w:Postal Service Act|US Postal Service Act of 1792]]. Under that act, newspapers were delivered up to 100 miles for a penny when first class postage was between 6 and 25 cents. [[w:Alexis de Tocqueville|Alexis de Tocqueville]], who visited the relatively young United States of America in 1831, wrote, “There is scarcely a hamlet that does not have its own newspaper.”<ref>Tocqueville (1835, p. 93).</ref> McChesney and Nichols estimated that these newspaper subsidies were roughly 0.21 percent of national income (Gross Domestic Project, GDP) in 1841.<ref>McChesney and Nichols (2010, pp. 310-311, note 88).</ref>
At that time, the US probably led the world by far in the number of independent newspaper publishers per capita or per million population. This encouraged literacy and limited political corruption, both of which contributed to making the US a leader in the rate of growth in average annual income (Gross Domestic Product, GDP, per capita). Corruption was also limited by the inability of a small number of publishers to dominate political discourse.
That began to change in the 1850s and 1860s with the introduction of high speed rotary presses, which increased the capital required to start a newspaper.<ref>John and Silberstein-Loeb (2015, p. 80).</ref>
In 1887 [[w:William Randolph Hearst|William Randolph Hearst]] took over management of his father’s ''[[w:San Francisco Examiner|San Francisco Examiner]]''. His success there gave him an appetite for building a newspaper chain. His 1895 purchase of the ''[[w:New York Morning Journal|New York Morning Journal]]'' gave him a second newspaper. By the mid-1920s, he owned 28 newspapers. Consolidation of ownership of the media became easier with the introduction of broadcasting and even easier with the Internet.<ref>John and Silberstein-Loeb (2015). See also Wikiversity, “[[Information is a public good: Designing experiments to improve government]]” and “[[:Category:Media reform to improve democracy]]“.</ref> [[:Category:Media reform to improve democracy|This consolidation seems to be increasing political polarization and violence worldwide]], threatening democracy itself.
=== The threat from loss of newspapers ===
A previous ''Media & Democracy'' interview with Arizona State University accounting professor Roger White on "[[Local newspapers limit malfeasance]]" describes problems that increase as the quality and quantity of news declines and ownership and control of the media become more highly concentrated: Major media too often deflect the public's attention from political corruption enabled by poor media. This too often contributes to other problems like [[w:Scapegoating|scapegoating]] [[w:Immigration|immigrants]] and attacking [[w:Diversity, equity, and inclusion|Diversity, equity, and inclusion]] (DEI) while also facilitating increases in pollution, the cost of borrowing, political polarization and violence, and decreases in workplace safety. More on this is included in other interviews in this ''Media & Democracy'' series available on Wikiversity under [[:Category:Media reform to improve democracy]].
An important quantitative analysis of the problems associated with deficiencies in news is Neff and Pickard (2024). They analyzed data on media funding and democracy in 33 countries. The US has been rated as a "flawed democracy" according to the [[w:Economist Democracy Index|Economist Democracy Index]] and spends substantially less per capita on media compared to the world's leading democracies in Scandinavia and Commonweath countries. They note that commercial media focus primarily on people with money, while publicly-funded media try harder to serve everyone. Public funding is more strongly correlated with democracy than private funding. This recommends increasing public funding for media as a means of strengthening democracy. See also "[[Information is a public good: Designing experiments to improve government]]".
==Discussion ==
:''[Interested readers are invite to comment here, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV/> and treating others with respect.<ref name=AGF/>]''
== Notes ==
{{reflist}}
== Bibliography ==
* <!--Sean Burch (2025-02-25) "Trump White House Will Now Pick Which Press Pool Reporters Get to Ask Questions", MSN-->{{cite Q|Q134958542}}
* <!--David Folkenflik (2025-04-22) "'60 Minutes' chief resigns, saying show's independence was compromised", NPR-->{{cite Q|Q134959015}}
* <!--Richard R. John and Jonathan Silberstein-Loeb (eds.; 2015) Making News: The Political Economy of Journalism in Britain and America from the Glorious Revolution to the Internet (Oxford University Press)-->{{cite Q|Q131468166|editors=Richard R. John and Jonathan Silberstein-Loeb}}
* <!-- Robert W. McChesney; John Nichols (2010). The Death and Life of American Journalism (Bold Type Books) -->{{cite Q|Q104888067}}.
* <!-- Alexis de Tocqueville (1835, 1840; trad. 2001) Democracy in America (trans. by Richard Heffner, 2001; New America Library) -->{{cite Q|Q112166602|publication-date=unset|author=Alexis de Tocqueville (1835, 1840; trad. 2001)}}
* <!--Nik Usher and Sanghoon Kim-Leffingwell (2022-01) How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption -->{{Cite Q|Q134715465}}
* <!--Nik Usher (2022-07) Journalism as historical repair work: addressing present injustice through the second draft of history-->{{cite Q|Q134715643}}
* <!--Nik Usher (2023-02) The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy-->{{cite Q|Q122270994}}
* <!--Nik Usher (2024) Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall-->{{cite Q|Q134715670}}
* <!--Nik Usher, Adrian Tai Wong, Isaiah R. Raynal, Cabral Bigman-Galimore, and Ewa Maslowska (2023-05) Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates-->{{cite Q|Q134715704}}
[[Category:Media]]
[[Category:News]]
[[Category:Politics]]
[[Category:Media reform to improve democracy]]
<!--list of categories
https://en.wikiversity.org/wiki/Wikiversity:Category_Review
[[Wikiversity:Category Review]]-->
35dxb7qloeyiwxh7d838h7v5s4dp8x6
2718927
2718913
2025-06-17T21:57:36Z
DavidMCEddy
218607
/* If journalism is to serve democracy ... */
2718927
wikitext
text/x-wiki
:''This discusses a 2025-06-08 interview with [[w:University of San Diego|University of San Diego]] Communications Professor Nik Usher<ref name=Usher><!--Nik Usher-->{{cite Q|Q134715348}}</ref> about their research on how news impacts democracy. The podcast is released 2025-06-14 to the fortnightly "Media & Democracy" show<ref name=M&D><!--Media & Democracy-->{{cite Q|Q127839818}}</ref> syndicated for the [[w:Pacifica Foundation|Pacifica Radio]]<ref><!--Pacifica Radio Network-->{{cite Q|Q2045587}}</ref> Network of [[w:List of Pacifica Radio stations and affiliates|over 200 community radio stations]].<ref><!--list of Pacifica Radio stations and affiliates-->{{cite Q|Q6593294}}</ref>''
:''It is posted here to invite others to contribute other perspectives, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] while [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV>The rules of writing from a neutral point of view citing credible sources may not be enforced on other parts of Wikiversity. However, they can facilitate dialog between people with dramatically different beliefs</ref> and treating others with respect.<ref name=AGF>[[Wikiversity:Assume good faith|Wikiversity asks contributors to assume good faith]], similar to Wikipedia. The rule in [[w:Wikinews|Wikinews]] is different: Contributors there are asked to [[Wikinews:Never assume|"Don't assume things; be skeptical about everything."]] That's wise. However, we should still treat others with respect while being skeptical.</ref>''
[[File:How news impacts democracy per USD Communications Professor Nik Usher.webm|thumb|Interview with [[w:University of San Diego|University of San Diego]] communications professor Nik Usher about how news impacts [[w:Public health|public health]], second draft of history, [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:Political corruption|corruption]].]]
[[File:How news impacts democracy per USD Communications Professor Nik Usher.ogg|thumb|29:00 mm:ss podcast from interview conducted 2025-06-12 of Nik Usher by Spencer Graves about how news impacts democracy]]
University of San Diego Communications Professor Nik Usher<ref name=Usher/> discusses their research on how news impacts democracy. Recent publications describe how media impacted the response to [[w:Black Lives Matter|Black Lives Matter]], [[w:COVID-19|COVID-19]], [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:political corruption|political corruption]]. This interview focuses especially on five of their recent publications:
* (2022-01) "How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption"
* (2022-07) "Journalism as historical repair work: addressing present injustice through the second draft of history"
* (2023-02) "The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy"
* (2023-05) "Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates", with 4 c-authors.
* (2024) "Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall"
== If journalism is to serve democracy ...==
Professor Usher noted that if journalism is to serve democracy, it must take a stand for democracy. Unfortunately, we are not seeing that today in part because journalism is under tremendous pressure, both economically and politically.
Professor Usher was asked about the distinction between accountability and access journalism, discussed in a recent interview in this series with [[Dean Starkman and the watchdog that didn't bark|Dean Starkman]]. Usher replied that access journalists sometimes think they are doing accountability journalism.
{{quote|Access journalism is the fight that you see right now between journalists and President Trump over who gets to be in the White House briefing room.<ref>Burch (2025).</ref> ... Access journalism is all about getting in spaces that most ordinary people don't get to be in. ... This is not something that is available to everybody. I don't have a press pass to walk into the White House. I can't cover a Supreme Court decision. I can't even go to a local police site without a press pass badge and start talking to officers. These are ways in which the institutionalization of the press and being able to be in places where other people aren't. That's all about access journalism. ...
Accountability journalism really is about how do we hold powerful institutions and powerful people to account. That's not just public institutions. It can be at the scale of the United States. It can be the local car dealer giving more money to the football team than they should.
Often the line is "[[w:Follow the money|Follow the money]]". Now you might want to follow people back to their bedrooms. We're seeing bad behavior of people in power not just about malfeasance but also about they way they treat other people and abuse their interpersonal power. and about holding institutions accountable for doing what they say they'll do. ...
Who has time to do accountability journalism other than journalists? Who has the skills?
Every so often you'll have some crackerjack whistleblower community advocate, who has the ability to spend all day long pouring through local filings or [[w:Federal Election Commission|FEC]] reports or something. ...
That is what distinguishes journalism as a profession from all of the other things. This is what you do all day long. You have the skills and hopefully the institutional backup.}}
Graves noted, "You can defame poor people with impunity. But if you say something that might offend someone with power you've got to check your facts. That takes time. And even if you get it right, it might not be profitable."
Usher replied, "It's only recently that people have felt that they could push back on journalists. ... When I was a reporter ... my editors used to tell me, 'Don't listen to protesters. Go ask the police for a crowd estimate, because they have to assign the right number of officers. ... [But] the right number of officers may be deeply out of proportion with the people present, as we are seeing [[w:June 2025 Los Angeles protests|events unfold in Los Angeles.]]"
{{quote|The greatest weapon against the American press at this point is probably the threat of litigation. ... You see this with [[w:60 Minutes|''60 Minutes'']].<ref>Folkenflik (2025).</ref> You see this with [[w:The New York Times|''The New York Times'']]. [''NYT'' publisher] [[w:A. G. Sulzberger|Sulzberger]] just said that he conferred with his outside counsel that they would indeed support him ... and the ''New York Times'' if t hey needed to engage in some really high level litigation against the President. And do you know why he did that? He did that because during the ''[[w:Pentagon Papers|Pentagon Papers]]'', the outside counsel of ''The New York Times'' actually decided they couldn't represent ''The New York Times'', that it was too much of a risk. That is how [[w:Floyd Abrams|Floyd Abrams]], who is one of the most famous media lawyers of all time, got his start ... .
So this threat ... is not just about journalists defending themselves as institutions. They also need [representation in] ... litigation against news organizations for screwing up facts or for libel. This didn't use to be huge. .... [N]ow this is a weapon.}}
== The need for media reform to improve democracy ==
This article is part of [[:category:Media reform to improve democracy]]. We describe here briefly the motivation for this series.
[[Great American Paradox|One major contributor to the dominant position of the US in the international political economy]] today may have been the [[w:Postal Service Act|US Postal Service Act of 1792]]. Under that act, newspapers were delivered up to 100 miles for a penny when first class postage was between 6 and 25 cents. [[w:Alexis de Tocqueville|Alexis de Tocqueville]], who visited the relatively young United States of America in 1831, wrote, “There is scarcely a hamlet that does not have its own newspaper.”<ref>Tocqueville (1835, p. 93).</ref> McChesney and Nichols estimated that these newspaper subsidies were roughly 0.21 percent of national income (Gross Domestic Project, GDP) in 1841.<ref>McChesney and Nichols (2010, pp. 310-311, note 88).</ref>
At that time, the US probably led the world by far in the number of independent newspaper publishers per capita or per million population. This encouraged literacy and limited political corruption, both of which contributed to making the US a leader in the rate of growth in average annual income (Gross Domestic Product, GDP, per capita). Corruption was also limited by the inability of a small number of publishers to dominate political discourse.
That began to change in the 1850s and 1860s with the introduction of high speed rotary presses, which increased the capital required to start a newspaper.<ref>John and Silberstein-Loeb (2015, p. 80).</ref>
In 1887 [[w:William Randolph Hearst|William Randolph Hearst]] took over management of his father’s ''[[w:San Francisco Examiner|San Francisco Examiner]]''. His success there gave him an appetite for building a newspaper chain. His 1895 purchase of the ''[[w:New York Morning Journal|New York Morning Journal]]'' gave him a second newspaper. By the mid-1920s, he owned 28 newspapers. Consolidation of ownership of the media became easier with the introduction of broadcasting and even easier with the Internet.<ref>John and Silberstein-Loeb (2015). See also Wikiversity, “[[Information is a public good: Designing experiments to improve government]]” and “[[:Category:Media reform to improve democracy]]“.</ref> [[:Category:Media reform to improve democracy|This consolidation seems to be increasing political polarization and violence worldwide]], threatening democracy itself.
=== The threat from loss of newspapers ===
A previous ''Media & Democracy'' interview with Arizona State University accounting professor Roger White on "[[Local newspapers limit malfeasance]]" describes problems that increase as the quality and quantity of news declines and ownership and control of the media become more highly concentrated: Major media too often deflect the public's attention from political corruption enabled by poor media. This too often contributes to other problems like [[w:Scapegoating|scapegoating]] [[w:Immigration|immigrants]] and attacking [[w:Diversity, equity, and inclusion|Diversity, equity, and inclusion]] (DEI) while also facilitating increases in pollution, the cost of borrowing, political polarization and violence, and decreases in workplace safety. More on this is included in other interviews in this ''Media & Democracy'' series available on Wikiversity under [[:Category:Media reform to improve democracy]].
An important quantitative analysis of the problems associated with deficiencies in news is Neff and Pickard (2024). They analyzed data on media funding and democracy in 33 countries. The US has been rated as a "flawed democracy" according to the [[w:Economist Democracy Index|Economist Democracy Index]] and spends substantially less per capita on media compared to the world's leading democracies in Scandinavia and Commonweath countries. They note that commercial media focus primarily on people with money, while publicly-funded media try harder to serve everyone. Public funding is more strongly correlated with democracy than private funding. This recommends increasing public funding for media as a means of strengthening democracy. See also "[[Information is a public good: Designing experiments to improve government]]".
==Discussion ==
:''[Interested readers are invite to comment here, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV/> and treating others with respect.<ref name=AGF/>]''
== Notes ==
{{reflist}}
== Bibliography ==
* <!--Sean Burch (2025-02-25) "Trump White House Will Now Pick Which Press Pool Reporters Get to Ask Questions", MSN-->{{cite Q|Q134958542}}
* <!--David Folkenflik (2025-04-22) "'60 Minutes' chief resigns, saying show's independence was compromised", NPR-->{{cite Q|Q134959015}}
* <!--Richard R. John and Jonathan Silberstein-Loeb (eds.; 2015) Making News: The Political Economy of Journalism in Britain and America from the Glorious Revolution to the Internet (Oxford University Press)-->{{cite Q|Q131468166|editors=Richard R. John and Jonathan Silberstein-Loeb}}
* <!-- Robert W. McChesney; John Nichols (2010). The Death and Life of American Journalism (Bold Type Books) -->{{cite Q|Q104888067}}.
* <!-- Alexis de Tocqueville (1835, 1840; trad. 2001) Democracy in America (trans. by Richard Heffner, 2001; New America Library) -->{{cite Q|Q112166602|publication-date=unset|author=Alexis de Tocqueville (1835, 1840; trad. 2001)}}
* <!--Nik Usher and Sanghoon Kim-Leffingwell (2022-01) How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption -->{{Cite Q|Q134715465}}
* <!--Nik Usher (2022-07) Journalism as historical repair work: addressing present injustice through the second draft of history-->{{cite Q|Q134715643}}
* <!--Nik Usher (2023-02) The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy-->{{cite Q|Q122270994}}
* <!--Nik Usher (2024) Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall-->{{cite Q|Q134715670}}
* <!--Nik Usher, Adrian Tai Wong, Isaiah R. Raynal, Cabral Bigman-Galimore, and Ewa Maslowska (2023-05) Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates-->{{cite Q|Q134715704}}
[[Category:Media]]
[[Category:News]]
[[Category:Politics]]
[[Category:Media reform to improve democracy]]
<!--list of categories
https://en.wikiversity.org/wiki/Wikiversity:Category_Review
[[Wikiversity:Category Review]]-->
6uoo2thxjapqh4ljw7k2d4spb5e51n4
2718934
2718927
2025-06-17T22:44:06Z
DavidMCEddy
218607
/* Bibliography */ add Drenon
2718934
wikitext
text/x-wiki
:''This discusses a 2025-06-08 interview with [[w:University of San Diego|University of San Diego]] Communications Professor Nik Usher<ref name=Usher><!--Nik Usher-->{{cite Q|Q134715348}}</ref> about their research on how news impacts democracy. The podcast is released 2025-06-14 to the fortnightly "Media & Democracy" show<ref name=M&D><!--Media & Democracy-->{{cite Q|Q127839818}}</ref> syndicated for the [[w:Pacifica Foundation|Pacifica Radio]]<ref><!--Pacifica Radio Network-->{{cite Q|Q2045587}}</ref> Network of [[w:List of Pacifica Radio stations and affiliates|over 200 community radio stations]].<ref><!--list of Pacifica Radio stations and affiliates-->{{cite Q|Q6593294}}</ref>''
:''It is posted here to invite others to contribute other perspectives, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] while [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV>The rules of writing from a neutral point of view citing credible sources may not be enforced on other parts of Wikiversity. However, they can facilitate dialog between people with dramatically different beliefs</ref> and treating others with respect.<ref name=AGF>[[Wikiversity:Assume good faith|Wikiversity asks contributors to assume good faith]], similar to Wikipedia. The rule in [[w:Wikinews|Wikinews]] is different: Contributors there are asked to [[Wikinews:Never assume|"Don't assume things; be skeptical about everything."]] That's wise. However, we should still treat others with respect while being skeptical.</ref>''
[[File:How news impacts democracy per USD Communications Professor Nik Usher.webm|thumb|Interview with [[w:University of San Diego|University of San Diego]] communications professor Nik Usher about how news impacts [[w:Public health|public health]], second draft of history, [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:Political corruption|corruption]].]]
[[File:How news impacts democracy per USD Communications Professor Nik Usher.ogg|thumb|29:00 mm:ss podcast from interview conducted 2025-06-12 of Nik Usher by Spencer Graves about how news impacts democracy]]
University of San Diego Communications Professor Nik Usher<ref name=Usher/> discusses their research on how news impacts democracy. Recent publications describe how media impacted the response to [[w:Black Lives Matter|Black Lives Matter]], [[w:COVID-19|COVID-19]], [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:political corruption|political corruption]]. This interview focuses especially on five of their recent publications:
* (2022-01) "How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption"
* (2022-07) "Journalism as historical repair work: addressing present injustice through the second draft of history"
* (2023-02) "The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy"
* (2023-05) "Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates", with 4 c-authors.
* (2024) "Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall"
== If journalism is to serve democracy ...==
Professor Usher noted that if journalism is to serve democracy, it must take a stand for democracy. Unfortunately, we are not seeing that today in part because journalism is under tremendous pressure, both economically and politically.
Professor Usher was asked about the distinction between accountability and access journalism, discussed in a recent interview in this series with [[Dean Starkman and the watchdog that didn't bark|Dean Starkman]]. Usher replied that access journalists sometimes think they are doing accountability journalism.
{{quote|Access journalism is the fight that you see right now between journalists and President Trump over who gets to be in the White House briefing room.<ref>Burch (2025).</ref> ... Access journalism is all about getting in spaces that most ordinary people don't get to be in. ... This is not something that is available to everybody. I don't have a press pass to walk into the White House. I can't cover a Supreme Court decision. I can't even go to a local police site without a press pass badge and start talking to officers. These are ways in which the institutionalization of the press and being able to be in places where other people aren't. That's all about access journalism. ...
Accountability journalism really is about how do we hold powerful institutions and powerful people to account. That's not just public institutions. It can be at the scale of the United States. It can be the local car dealer giving more money to the football team than they should.
Often the line is "[[w:Follow the money|Follow the money]]". Now you might want to follow people back to their bedrooms. We're seeing bad behavior of people in power not just about malfeasance but also about they way they treat other people and abuse their interpersonal power. and about holding institutions accountable for doing what they say they'll do. ...
Who has time to do accountability journalism other than journalists? Who has the skills?
Every so often you'll have some crackerjack whistleblower community advocate, who has the ability to spend all day long pouring through local filings or [[w:Federal Election Commission|FEC]] reports or something. ...
That is what distinguishes journalism as a profession from all of the other things. This is what you do all day long. You have the skills and hopefully the institutional backup.}}
Graves noted, "You can defame poor people with impunity. But if you say something that might offend someone with power you've got to check your facts. That takes time. And even if you get it right, it might not be profitable."
Usher replied, "It's only recently that people have felt that they could push back on journalists. ... When I was a reporter ... my editors used to tell me, 'Don't listen to protesters. Go ask the police for a crowd estimate, because they have to assign the right number of officers. ... [But] the right number of officers may be deeply out of proportion with the people present, as we are seeing [[w:June 2025 Los Angeles protests|events unfold in Los Angeles.]]"
{{quote|The greatest weapon against the American press at this point is probably the threat of litigation. ... You see this with [[w:60 Minutes|''60 Minutes'']].<ref>Folkenflik (2025).</ref> You see this with [[w:The New York Times|''The New York Times'']]. [''NYT'' publisher] [[w:A. G. Sulzberger|Sulzberger]] just said that he conferred with his outside counsel that they would indeed support him ... and the ''New York Times'' if t hey needed to engage in some really high level litigation against the President. And do you know why he did that? He did that because during the ''[[w:Pentagon Papers|Pentagon Papers]]'', the outside counsel of ''The New York Times'' actually decided they couldn't represent ''The New York Times'', that it was too much of a risk. That is how [[w:Floyd Abrams|Floyd Abrams]], who is one of the most famous media lawyers of all time, got his start ... .
So this threat ... is not just about journalists defending themselves as institutions. They also need [representation in] ... litigation against news organizations for screwing up facts or for libel. This didn't use to be huge. .... [N]ow this is a weapon.}}
== The need for media reform to improve democracy ==
This article is part of [[:category:Media reform to improve democracy]]. We describe here briefly the motivation for this series.
[[Great American Paradox|One major contributor to the dominant position of the US in the international political economy]] today may have been the [[w:Postal Service Act|US Postal Service Act of 1792]]. Under that act, newspapers were delivered up to 100 miles for a penny when first class postage was between 6 and 25 cents. [[w:Alexis de Tocqueville|Alexis de Tocqueville]], who visited the relatively young United States of America in 1831, wrote, “There is scarcely a hamlet that does not have its own newspaper.”<ref>Tocqueville (1835, p. 93).</ref> McChesney and Nichols estimated that these newspaper subsidies were roughly 0.21 percent of national income (Gross Domestic Project, GDP) in 1841.<ref>McChesney and Nichols (2010, pp. 310-311, note 88).</ref>
At that time, the US probably led the world by far in the number of independent newspaper publishers per capita or per million population. This encouraged literacy and limited political corruption, both of which contributed to making the US a leader in the rate of growth in average annual income (Gross Domestic Product, GDP, per capita). Corruption was also limited by the inability of a small number of publishers to dominate political discourse.
That began to change in the 1850s and 1860s with the introduction of high speed rotary presses, which increased the capital required to start a newspaper.<ref>John and Silberstein-Loeb (2015, p. 80).</ref>
In 1887 [[w:William Randolph Hearst|William Randolph Hearst]] took over management of his father’s ''[[w:San Francisco Examiner|San Francisco Examiner]]''. His success there gave him an appetite for building a newspaper chain. His 1895 purchase of the ''[[w:New York Morning Journal|New York Morning Journal]]'' gave him a second newspaper. By the mid-1920s, he owned 28 newspapers. Consolidation of ownership of the media became easier with the introduction of broadcasting and even easier with the Internet.<ref>John and Silberstein-Loeb (2015). See also Wikiversity, “[[Information is a public good: Designing experiments to improve government]]” and “[[:Category:Media reform to improve democracy]]“.</ref> [[:Category:Media reform to improve democracy|This consolidation seems to be increasing political polarization and violence worldwide]], threatening democracy itself.
=== The threat from loss of newspapers ===
A previous ''Media & Democracy'' interview with Arizona State University accounting professor Roger White on "[[Local newspapers limit malfeasance]]" describes problems that increase as the quality and quantity of news declines and ownership and control of the media become more highly concentrated: Major media too often deflect the public's attention from political corruption enabled by poor media. This too often contributes to other problems like [[w:Scapegoating|scapegoating]] [[w:Immigration|immigrants]] and attacking [[w:Diversity, equity, and inclusion|Diversity, equity, and inclusion]] (DEI) while also facilitating increases in pollution, the cost of borrowing, political polarization and violence, and decreases in workplace safety. More on this is included in other interviews in this ''Media & Democracy'' series available on Wikiversity under [[:Category:Media reform to improve democracy]].
An important quantitative analysis of the problems associated with deficiencies in news is Neff and Pickard (2024). They analyzed data on media funding and democracy in 33 countries. The US has been rated as a "flawed democracy" according to the [[w:Economist Democracy Index|Economist Democracy Index]] and spends substantially less per capita on media compared to the world's leading democracies in Scandinavia and Commonweath countries. They note that commercial media focus primarily on people with money, while publicly-funded media try harder to serve everyone. Public funding is more strongly correlated with democracy than private funding. This recommends increasing public funding for media as a means of strengthening democracy. See also "[[Information is a public good: Designing experiments to improve government]]".
==Discussion ==
:''[Interested readers are invite to comment here, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV/> and treating others with respect.<ref name=AGF/>]''
== Notes ==
{{reflist}}
== Bibliography ==
* <!--Sean Burch (2025-02-25) "Trump White House Will Now Pick Which Press Pool Reporters Get to Ask Questions", MSN-->{{cite Q|Q134958542}}
* <!--Brandon Drenon (2025-04-22) "Sarah Palin was not defamed by the New York Times, jury says", BBC-->{{cite Q|Q134970667}}
* <!--David Folkenflik (2025-04-22) "'60 Minutes' chief resigns, saying show's independence was compromised", NPR-->{{cite Q|Q134959015}}
* <!--Richard R. John and Jonathan Silberstein-Loeb (eds.; 2015) Making News: The Political Economy of Journalism in Britain and America from the Glorious Revolution to the Internet (Oxford University Press)-->{{cite Q|Q131468166|editors=Richard R. John and Jonathan Silberstein-Loeb}}
* <!-- Robert W. McChesney; John Nichols (2010). The Death and Life of American Journalism (Bold Type Books) -->{{cite Q|Q104888067}}.
* <!-- Alexis de Tocqueville (1835, 1840; trad. 2001) Democracy in America (trans. by Richard Heffner, 2001; New America Library) -->{{cite Q|Q112166602|publication-date=unset|author=Alexis de Tocqueville (1835, 1840; trad. 2001)}}
* <!--Nik Usher and Sanghoon Kim-Leffingwell (2022-01) How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption -->{{Cite Q|Q134715465}}
* <!--Nik Usher (2022-07) Journalism as historical repair work: addressing present injustice through the second draft of history-->{{cite Q|Q134715643}}
* <!--Nik Usher (2023-02) The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy-->{{cite Q|Q122270994}}
* <!--Nik Usher (2024) Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall-->{{cite Q|Q134715670}}
* <!--Nik Usher, Adrian Tai Wong, Isaiah R. Raynal, Cabral Bigman-Galimore, and Ewa Maslowska (2023-05) Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates-->{{cite Q|Q134715704}}
[[Category:Media]]
[[Category:News]]
[[Category:Politics]]
[[Category:Media reform to improve democracy]]
<!--list of categories
https://en.wikiversity.org/wiki/Wikiversity:Category_Review
[[Wikiversity:Category Review]]-->
cv5r52pdrr90rbjooo8h80htg9sxylu
2718971
2718934
2025-06-18T02:31:59Z
DavidMCEddy
218607
/* If journalism is to serve democracy ... */ citn for Palin
2718971
wikitext
text/x-wiki
:''This discusses a 2025-06-08 interview with [[w:University of San Diego|University of San Diego]] Communications Professor Nik Usher<ref name=Usher><!--Nik Usher-->{{cite Q|Q134715348}}</ref> about their research on how news impacts democracy. The podcast is released 2025-06-14 to the fortnightly "Media & Democracy" show<ref name=M&D><!--Media & Democracy-->{{cite Q|Q127839818}}</ref> syndicated for the [[w:Pacifica Foundation|Pacifica Radio]]<ref><!--Pacifica Radio Network-->{{cite Q|Q2045587}}</ref> Network of [[w:List of Pacifica Radio stations and affiliates|over 200 community radio stations]].<ref><!--list of Pacifica Radio stations and affiliates-->{{cite Q|Q6593294}}</ref>''
:''It is posted here to invite others to contribute other perspectives, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] while [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV>The rules of writing from a neutral point of view citing credible sources may not be enforced on other parts of Wikiversity. However, they can facilitate dialog between people with dramatically different beliefs</ref> and treating others with respect.<ref name=AGF>[[Wikiversity:Assume good faith|Wikiversity asks contributors to assume good faith]], similar to Wikipedia. The rule in [[w:Wikinews|Wikinews]] is different: Contributors there are asked to [[Wikinews:Never assume|"Don't assume things; be skeptical about everything."]] That's wise. However, we should still treat others with respect while being skeptical.</ref>''
[[File:How news impacts democracy per USD Communications Professor Nik Usher.webm|thumb|Interview with [[w:University of San Diego|University of San Diego]] communications professor Nik Usher about how news impacts [[w:Public health|public health]], second draft of history, [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:Political corruption|corruption]].]]
[[File:How news impacts democracy per USD Communications Professor Nik Usher.ogg|thumb|29:00 mm:ss podcast from interview conducted 2025-06-12 of Nik Usher by Spencer Graves about how news impacts democracy]]
University of San Diego Communications Professor Nik Usher<ref name=Usher/> discusses their research on how news impacts democracy. Recent publications describe how media impacted the response to [[w:Black Lives Matter|Black Lives Matter]], [[w:COVID-19|COVID-19]], [[w:Illiberal democracy|illiberal politics]], and prosecutions for [[w:political corruption|political corruption]]. This interview focuses especially on five of their recent publications:
* (2022-01) "How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption"
* (2022-07) "Journalism as historical repair work: addressing present injustice through the second draft of history"
* (2023-02) "The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy"
* (2023-05) "Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates", with 4 c-authors.
* (2024) "Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall"
== If journalism is to serve democracy ...==
Professor Usher noted that if journalism is to serve democracy, it must take a stand for democracy. Unfortunately, we are not seeing that today in part because journalism is under tremendous pressure, both economically and politically.
Professor Usher was asked about the distinction between accountability and access journalism, discussed in a recent interview in this series with [[Dean Starkman and the watchdog that didn't bark|Dean Starkman]]. Usher replied that access journalists sometimes think they are doing accountability journalism.
{{quote|Access journalism is the fight that you see right now between journalists and President Trump over who gets to be in the White House briefing room.<ref>Burch (2025).</ref> ... Access journalism is all about getting in spaces that most ordinary people don't get to be in. ... This is not something that is available to everybody. I don't have a press pass to walk into the White House. I can't cover a Supreme Court decision. I can't even go to a local police site without a press pass badge and start talking to officers. These are ways in which the institutionalization of the press and being able to be in places where other people aren't. That's all about access journalism. ...
Accountability journalism really is about how do we hold powerful institutions and powerful people to account. That's not just public institutions. It can be at the scale of the United States. It can be the local car dealer giving more money to the football team than they should.
Often the line is "[[w:Follow the money|Follow the money]]". Now you might want to follow people back to their bedrooms. We're seeing bad behavior of people in power not just about malfeasance but also about they way they treat other people and abuse their interpersonal power. and about holding institutions accountable for doing what they say they'll do. ...
Who has time to do accountability journalism other than journalists? Who has the skills?
Every so often you'll have some crackerjack whistleblower community advocate, who has the ability to spend all day long pouring through local filings or [[w:Federal Election Commission|FEC]] reports or something. ...
That is what distinguishes journalism as a profession from all of the other things. This is what you do all day long. You have the skills and hopefully the institutional backup.}}
Graves noted, "You can defame poor people with impunity. But if you say something that might offend someone with power you've got to check your facts. That takes time. And even if you get it right, it might not be profitable."
Usher replied, "It's only recently that people have felt that they could push back on journalists. ... When I was a reporter ... my editors used to tell me, 'Don't listen to protesters. Go ask the police for a crowd estimate, because they have to assign the right number of officers. ... [But] the right number of officers may be deeply out of proportion with the people present, as we are seeing [[w:June 2025 Los Angeles protests|events unfold in Los Angeles.]]"
{{quote|The greatest weapon against the American press at this point is probably the threat of litigation. ... You see this with [[w:60 Minutes|''60 Minutes'']].<ref>Folkenflik (2025).</ref> You see this with [[w:The New York Times|''The New York Times'']]. [''NYT'' publisher] [[w:A. G. Sulzberger|Sulzberger]] just said that he conferred with his outside counsel that they would indeed support him ... and the ''New York Times'' if t hey needed to engage in some really high level litigation against the President. And do you know why he did that? He did that because during the ''[[w:Pentagon Papers|Pentagon Papers]]'', the outside counsel of ''The New York Times'' actually decided they couldn't represent ''The New York Times'', that it was too much of a risk. That is how [[w:Floyd Abrams|Floyd Abrams]], who is one of the most famous media lawyers of all time, got his start ... .
So this threat ... is not just about journalists defending themselves as institutions. They also need [representation in] ... litigation against news organizations for screwing up facts or for libel. This didn't use to be huge. .... [N]ow this is a weapon. It's been weaponized in really aggressive ways starting with [[w:Sarah Palin|Sarah Palin]]<ref>Drenon (2025).</ref> and continuing to the present.}}
== The need for media reform to improve democracy ==
This article is part of [[:category:Media reform to improve democracy]]. We describe here briefly the motivation for this series.
[[Great American Paradox|One major contributor to the dominant position of the US in the international political economy]] today may have been the [[w:Postal Service Act|US Postal Service Act of 1792]]. Under that act, newspapers were delivered up to 100 miles for a penny when first class postage was between 6 and 25 cents. [[w:Alexis de Tocqueville|Alexis de Tocqueville]], who visited the relatively young United States of America in 1831, wrote, “There is scarcely a hamlet that does not have its own newspaper.”<ref>Tocqueville (1835, p. 93).</ref> McChesney and Nichols estimated that these newspaper subsidies were roughly 0.21 percent of national income (Gross Domestic Project, GDP) in 1841.<ref>McChesney and Nichols (2010, pp. 310-311, note 88).</ref>
At that time, the US probably led the world by far in the number of independent newspaper publishers per capita or per million population. This encouraged literacy and limited political corruption, both of which contributed to making the US a leader in the rate of growth in average annual income (Gross Domestic Product, GDP, per capita). Corruption was also limited by the inability of a small number of publishers to dominate political discourse.
That began to change in the 1850s and 1860s with the introduction of high speed rotary presses, which increased the capital required to start a newspaper.<ref>John and Silberstein-Loeb (2015, p. 80).</ref>
In 1887 [[w:William Randolph Hearst|William Randolph Hearst]] took over management of his father’s ''[[w:San Francisco Examiner|San Francisco Examiner]]''. His success there gave him an appetite for building a newspaper chain. His 1895 purchase of the ''[[w:New York Morning Journal|New York Morning Journal]]'' gave him a second newspaper. By the mid-1920s, he owned 28 newspapers. Consolidation of ownership of the media became easier with the introduction of broadcasting and even easier with the Internet.<ref>John and Silberstein-Loeb (2015). See also Wikiversity, “[[Information is a public good: Designing experiments to improve government]]” and “[[:Category:Media reform to improve democracy]]“.</ref> [[:Category:Media reform to improve democracy|This consolidation seems to be increasing political polarization and violence worldwide]], threatening democracy itself.
=== The threat from loss of newspapers ===
A previous ''Media & Democracy'' interview with Arizona State University accounting professor Roger White on "[[Local newspapers limit malfeasance]]" describes problems that increase as the quality and quantity of news declines and ownership and control of the media become more highly concentrated: Major media too often deflect the public's attention from political corruption enabled by poor media. This too often contributes to other problems like [[w:Scapegoating|scapegoating]] [[w:Immigration|immigrants]] and attacking [[w:Diversity, equity, and inclusion|Diversity, equity, and inclusion]] (DEI) while also facilitating increases in pollution, the cost of borrowing, political polarization and violence, and decreases in workplace safety. More on this is included in other interviews in this ''Media & Democracy'' series available on Wikiversity under [[:Category:Media reform to improve democracy]].
An important quantitative analysis of the problems associated with deficiencies in news is Neff and Pickard (2024). They analyzed data on media funding and democracy in 33 countries. The US has been rated as a "flawed democracy" according to the [[w:Economist Democracy Index|Economist Democracy Index]] and spends substantially less per capita on media compared to the world's leading democracies in Scandinavia and Commonweath countries. They note that commercial media focus primarily on people with money, while publicly-funded media try harder to serve everyone. Public funding is more strongly correlated with democracy than private funding. This recommends increasing public funding for media as a means of strengthening democracy. See also "[[Information is a public good: Designing experiments to improve government]]".
==Discussion ==
:''[Interested readers are invite to comment here, subject to the Wikimedia rules of [[w:Wikipedia:Neutral point of view|writing from a neutral point of view]] [[w:Wikipedia:Citing sources|citing credible sources]]<ref name=NPOV/> and treating others with respect.<ref name=AGF/>]''
== Notes ==
{{reflist}}
== Bibliography ==
* <!--Sean Burch (2025-02-25) "Trump White House Will Now Pick Which Press Pool Reporters Get to Ask Questions", MSN-->{{cite Q|Q134958542}}
* <!--Brandon Drenon (2025-04-22) "Sarah Palin was not defamed by the New York Times, jury says", BBC-->{{cite Q|Q134970667}}
* <!--David Folkenflik (2025-04-22) "'60 Minutes' chief resigns, saying show's independence was compromised", NPR-->{{cite Q|Q134959015}}
* <!--Richard R. John and Jonathan Silberstein-Loeb (eds.; 2015) Making News: The Political Economy of Journalism in Britain and America from the Glorious Revolution to the Internet (Oxford University Press)-->{{cite Q|Q131468166|editors=Richard R. John and Jonathan Silberstein-Loeb}}
* <!-- Robert W. McChesney; John Nichols (2010). The Death and Life of American Journalism (Bold Type Books) -->{{cite Q|Q104888067}}.
* <!-- Alexis de Tocqueville (1835, 1840; trad. 2001) Democracy in America (trans. by Richard Heffner, 2001; New America Library) -->{{cite Q|Q112166602|publication-date=unset|author=Alexis de Tocqueville (1835, 1840; trad. 2001)}}
* <!--Nik Usher and Sanghoon Kim-Leffingwell (2022-01) How Loud Does the Watchdog Bark? A Reconsideration of Local Journalism, News Non-profits, and Political Corruption -->{{Cite Q|Q134715465}}
* <!--Nik Usher (2022-07) Journalism as historical repair work: addressing present injustice through the second draft of history-->{{cite Q|Q134715643}}
* <!--Nik Usher (2023-02) The Real Problems with the Problem of News Deserts: Toward Rooting Place, Precision, and Positionality in Scholarship on Local News and Democracy-->{{cite Q|Q122270994}}
* <!--Nik Usher (2024) Why News Organizations ‘Platform’ Illiberal Politics: Understanding News Production, Economic Insolvency, and Anti-Democratic Pressure Through CNN’s 2023 Trump Town Hall-->{{cite Q|Q134715670}}
* <!--Nik Usher, Adrian Tai Wong, Isaiah R. Raynal, Cabral Bigman-Galimore, and Ewa Maslowska (2023-05) Localizing COVID-19 Public Health Department Outreach on Digital Platforms: The Role of Discoverability, Reach, and Moderation for Illinois’ COVID-19 Vaccination Rates-->{{cite Q|Q134715704}}
[[Category:Media]]
[[Category:News]]
[[Category:Politics]]
[[Category:Media reform to improve democracy]]
<!--list of categories
https://en.wikiversity.org/wiki/Wikiversity:Category_Review
[[Wikiversity:Category Review]]-->
8xs8ydmthqd8572x1wljiwpdz6qrsi1
AIXworkbench/
0
322062
2718875
2718705
2025-06-17T19:18:36Z
Stevesuny
294667
2718875
wikitext
text/x-wiki
= The AIXworkbench project =
{{:AIXworkbench/Wikiversity/navbar}}
spwhtl2owzmjex6uhjy404juflibmtz
2718876
2718875
2025-06-17T19:19:11Z
Stevesuny
294667
2718876
wikitext
text/x-wiki
= {{:AIXworkbench/Wikiversity/navbar}}=
idniqi6vyn5yo1vzi6bhv3yrwvtpud4
2718877
2718876
2025-06-17T19:20:20Z
Stevesuny
294667
2718877
wikitext
text/x-wiki
== {{:AIXworkbench/Wikiversity/navbar}} ==
hv1nb52k8jwc8icf0h88l6eb48stflh
AIXworkbench
0
322063
2718848
2718761
2025-06-17T17:14:33Z
Stevesuny
294667
added tools to top menu
2718848
wikitext
text/x-wiki
{{:AIXworkbench/About}}
== Sections ==
[[AIXworkbench/Tools|Tools]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
eyzjsg9eanku3dm8g5j26d0srvjmss1
2718849
2718848
2025-06-17T17:19:07Z
Stevesuny
294667
/* Sections */
2718849
wikitext
text/x-wiki
{{:AIXworkbench/About}}
== Sections ==
[[AIXworkbench/Tools-and-Community|Tools and Community]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
4f8gti6htv91a4sk9bp62t1f2wnttqw
2718853
2718849
2025-06-17T17:29:17Z
Stevesuny
294667
added call to {{:AIXworkbench/Wikiversity/navbar}} to top of page
2718853
wikitext
text/x-wiki
{{:AIXworkbench/Wikiversity/navbar}}
{{:AIXworkbench/About}}
== Sections ==
[[AIXworkbench/Tools-and-Community|Tools and Community]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
32ofn9ugf9n6jdd2lhwvr961ycv7efj
2718854
2718853
2025-06-17T17:29:40Z
Stevesuny
294667
2718854
wikitext
text/x-wiki
===AIX + Open WebUI = AIXworkbench===
<span></span>
The '''Artificial Intelligence Exploration (AIX) Center''' at [[wikipedia:SUNY_Polytechnic_Institute|SUNY Polytechnic Institute]] advances emerging [[wikipedia:Artificial_intelligence|AI]] opportunities through [[wikipedia:Foundation_model|foundational model]] evaluation, application development, and [[wikipedia:User_experience|user experience]] research.<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite id="CITEREFSchneider2025" class="citation web cs1">Schneider, Steven (June 17, 2025). [https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d "Add wikipedia links"]. ''chatgpt.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=chatgpt.com&rft.atitle=Add+wikipedia+links&rft.date=2025-06-17&rft.aulast=Schneider&rft.aufirst=Steven&rft_id=https%3A%2F%2Fchatgpt.com%2Fshare%2Fe%2F68518059-d5c8-800a-88e3-0c0949f1752d&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [[wikipedia:Large_language_model|LLM models]], both offline and online, in a private, secure and personally managed environment.
<span></span>
The platform is imagined as a structured and customized installation of Open WebUI
<span></span>
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite class="citation web cs1">[https://openwebui.com/ "🏡 Home | Open WebUI"]. ''openwebui.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=openwebui.com&rft.atitle=%F0%9F%8F%A1+Home+%7C+Open+WebUI&rft_id=https%3A%2F%2Fopenwebui.com%2F&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
The customized platform will emerge as the '''AIXworkbench'''
<span></span>
===What is the AIX Workbench?===
<span></span>
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
<span></span>
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
<span></span>
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
<span></span>
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
== Sections ==
[[AIXworkbench/Tools-and-Community|Tools and Community]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
led4vc5n1f255d5z8q4rxkoo1yxpxgn
2718855
2718854
2025-06-17T17:34:15Z
Stevesuny
294667
2718855
wikitext
text/x-wiki
= workbench =
{{:AIXworkbench/Wikiversity/navbar}}
===AIX + Open WebUI = AIXworkbench===
<span></span>
The '''Artificial Intelligence Exploration (AIX) Center''' at [[wikipedia:SUNY_Polytechnic_Institute|SUNY Polytechnic Institute]] advances emerging [[wikipedia:Artificial_intelligence|AI]] opportunities through [[wikipedia:Foundation_model|foundational model]] evaluation, application development, and [[wikipedia:User_experience|user experience]] research.<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite id="CITEREFSchneider2025" class="citation web cs1">Schneider, Steven (June 17, 2025). [https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d "Add wikipedia links"]. ''chatgpt.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=chatgpt.com&rft.atitle=Add+wikipedia+links&rft.date=2025-06-17&rft.aulast=Schneider&rft.aufirst=Steven&rft_id=https%3A%2F%2Fchatgpt.com%2Fshare%2Fe%2F68518059-d5c8-800a-88e3-0c0949f1752d&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [[wikipedia:Large_language_model|LLM models]], both offline and online, in a private, secure and personally managed environment.
<span></span>
The platform is imagined as a structured and customized installation of Open WebUI
<span></span>
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite class="citation web cs1">[https://openwebui.com/ "🏡 Home | Open WebUI"]. ''openwebui.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=openwebui.com&rft.atitle=%F0%9F%8F%A1+Home+%7C+Open+WebUI&rft_id=https%3A%2F%2Fopenwebui.com%2F&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
The customized platform will emerge as the '''AIXworkbench'''
<span></span>
===What is the AIX Workbench?===
<span></span>
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
<span></span>
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
<span></span>
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
<span></span>
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
== Sections ==
{{:AIXworkbench/Wikiversity/navbar}}
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
3ca52dwjg73o5xj9gjbav5u697szrk7
2718856
2718855
2025-06-17T17:34:51Z
Stevesuny
294667
2718856
wikitext
text/x-wiki
{{:AIXworkbench/Wikiversity/navbar}}
===AIX + Open WebUI = AIXworkbench===
<span></span>
The '''Artificial Intelligence Exploration (AIX) Center''' at [[wikipedia:SUNY_Polytechnic_Institute|SUNY Polytechnic Institute]] advances emerging [[wikipedia:Artificial_intelligence|AI]] opportunities through [[wikipedia:Foundation_model|foundational model]] evaluation, application development, and [[wikipedia:User_experience|user experience]] research.<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite id="CITEREFSchneider2025" class="citation web cs1">Schneider, Steven (June 17, 2025). [https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d "Add wikipedia links"]. ''chatgpt.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=chatgpt.com&rft.atitle=Add+wikipedia+links&rft.date=2025-06-17&rft.aulast=Schneider&rft.aufirst=Steven&rft_id=https%3A%2F%2Fchatgpt.com%2Fshare%2Fe%2F68518059-d5c8-800a-88e3-0c0949f1752d&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [[wikipedia:Large_language_model|LLM models]], both offline and online, in a private, secure and personally managed environment.
<span></span>
The platform is imagined as a structured and customized installation of Open WebUI
<span></span>
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite class="citation web cs1">[https://openwebui.com/ "🏡 Home | Open WebUI"]. ''openwebui.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=openwebui.com&rft.atitle=%F0%9F%8F%A1+Home+%7C+Open+WebUI&rft_id=https%3A%2F%2Fopenwebui.com%2F&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
The customized platform will emerge as the '''AIXworkbench'''
<span></span>
===What is the AIX Workbench?===
<span></span>
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
<span></span>
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
<span></span>
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
<span></span>
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
== Sections ==
{{:AIXworkbench/Wikiversity/navbar}}
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
0iw6a98p97u7olll83iu3jvdcn8kl8y
2718858
2718856
2025-06-17T17:39:19Z
Stevesuny
294667
2718858
wikitext
text/x-wiki
{{:AIXworkbench/Wikiversity/navbar}}
== AIX + Open WebUI = AIXworkbench ==
The '''Artificial Intelligence Exploration (AIX) Center''' at [[wikipedia:SUNY_Polytechnic_Institute|SUNY Polytechnic Institute]] advances emerging [[wikipedia:Artificial_intelligence|AI]] opportunities through [[wikipedia:Foundation_model|foundational model]] evaluation, application development, and [[wikipedia:User_experience|user experience]] research.<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite id="CITEREFSchneider2025" class="citation web cs1">Schneider, Steven (June 17, 2025). [https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d "Add wikipedia links"]. ''chatgpt.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=chatgpt.com&rft.atitle=Add+wikipedia+links&rft.date=2025-06-17&rft.aulast=Schneider&rft.aufirst=Steven&rft_id=https%3A%2F%2Fchatgpt.com%2Fshare%2Fe%2F68518059-d5c8-800a-88e3-0c0949f1752d&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref><span></span>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [[wikipedia:Large_language_model|LLM models]], both offline and online, in a private, secure and personally managed environment.<span></span>
The platform is imagined as a structured and customized installation of Open WebUI<span></span>
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles><cite class="citation web cs1">[https://openwebui.com/ "🏡 Home | Open WebUI"]. ''openwebui.com''<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=openwebui.com&rft.atitle=%F0%9F%8F%A1+Home+%7C+Open+WebUI&rft_id=https%3A%2F%2Fopenwebui.com%2F&rfr_id=info%3Asid%2Fen.wikiversity.org%3AAIXworkbench" class="Z3988"></span></ref>
<span></span>
The customized platform will emerge as the '''AIXworkbench'''
<span></span>
===What is the AIX Workbench?===
<span></span>
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
<span></span>
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
<span></span>
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
<span></span>
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
== Sections ==
{{:AIXworkbench/Wikiversity/navbar}}
== Subpages ==
{{Special:PrefixIndex/AIXworkbench/}}
3zdczhx6g83d9e7so6409r5qyc92fzf
AIXworkbench/About
0
322064
2718843
2718762
2025-06-17T14:48:36Z
Stevesuny
294667
2718843
wikitext
text/x-wiki
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
=== AIX + Open WebUI = AIXworkbench ===
The '''Artificial Intelligence Exploration (AIX) Center''' at [https://en.wikipedia.org/wiki/SUNY_Polytechnic_Institute SUNY Polytechnic Institute] advances emerging [https://en.wikipedia.org/wiki/Artificial_intelligence AI] opportunities through [https://en.wikipedia.org/wiki/Foundation_model foundational model] evaluation, application development, and [https://en.wikipedia.org/wiki/User_experience user experience] research.
AIX is in the early stages of developing a platform to support these activities by allowing the use of [https://en.wikipedia.org/wiki/Large_language_model LLM models], both offline and online, in a private, secure and personally managed environment.
The platform is imagined as a structured and customized installation of Open WebUI
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref>{{Cite web|url=https://openwebui.com/|title=🏡 Home {{!}} Open WebUI|website=openwebui.com|language=en|access-date=2025-06-16}}</ref>
The customized platform will emerge as the '''AIXworkbench'''
=== What is the AIX Workbench? ===
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
atlskuuqlzkcvq1tefzucp4wmc0jpw0
2718844
2718843
2025-06-17T14:51:31Z
Stevesuny
294667
wikified some links
2718844
wikitext
text/x-wiki
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
=== AIX + Open WebUI = AIXworkbench ===
The '''Artificial Intelligence Exploration (AIX) Center''' at [https://en.wikipedia.org/wiki/SUNY_Polytechnic_Institute SUNY Polytechnic Institute] advances emerging [https://en.wikipedia.org/wiki/Artificial_intelligence AI] opportunities through [https://en.wikipedia.org/wiki/Foundation_model foundational model] evaluation, application development, and [https://en.wikipedia.org/wiki/User_experience user experience] research.<ref>{{Cite web|url=https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d|title=Add wikipedia links|last=Schneider|first=Steven|date=June 17, 2025|website=chatgpt.com|language=en-US|access-date=2025-06-17}}</ref>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [https://en.wikipedia.org/wiki/Large_language_model LLM models], both offline and online, in a private, secure and personally managed environment.
The platform is imagined as a structured and customized installation of Open WebUI
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref>{{Cite web|url=https://openwebui.com/|title=🏡 Home {{!}} Open WebUI|website=openwebui.com|language=en|access-date=2025-06-16}}</ref>
The customized platform will emerge as the '''AIXworkbench'''
=== What is the AIX Workbench? ===
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
ocgmvw20se92vx1jud4i68zwxpt9llc
2718851
2718844
2025-06-17T17:25:18Z
Stevesuny
294667
/* AIX + Open WebUI = AIXworkbench */
2718851
wikitext
text/x-wiki
[[AIXworkbench/Tools-and-Community|Tools & Community]] • [[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
=== AIX + Open WebUI = AIXworkbench ===
The '''Artificial Intelligence Exploration (AIX) Center''' at [https://en.wikipedia.org/wiki/SUNY_Polytechnic_Institute SUNY Polytechnic Institute] advances emerging [https://en.wikipedia.org/wiki/Artificial_intelligence AI] opportunities through [https://en.wikipedia.org/wiki/Foundation_model foundational model] evaluation, application development, and [https://en.wikipedia.org/wiki/User_experience user experience] research.<ref>{{Cite web|url=https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d|title=Add wikipedia links|last=Schneider|first=Steven|date=June 17, 2025|website=chatgpt.com|language=en-US|access-date=2025-06-17}}</ref>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [https://en.wikipedia.org/wiki/Large_language_model LLM models], both offline and online, in a private, secure and personally managed environment.
The platform is imagined as a structured and customized installation of Open WebUI
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref>{{Cite web|url=https://openwebui.com/|title=🏡 Home {{!}} Open WebUI|website=openwebui.com|language=en|access-date=2025-06-16}}</ref>
The customized platform will emerge as the '''AIXworkbench'''
=== What is the AIX Workbench? ===
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
mu7ixknoqik8jj2p5hrkekiiyf1m0y6
2718863
2718851
2025-06-17T17:49:01Z
Stevesuny
294667
2718863
wikitext
text/x-wiki
{{:AIXworkbench/Wikiversity/navbar}}
== About the AIXworkbench ==
=== AIX + Open WebUI = AIXworkbench ===
The '''Artificial Intelligence Exploration (AIX) Center''' at [https://en.wikipedia.org/wiki/SUNY_Polytechnic_Institute SUNY Polytechnic Institute] advances emerging [https://en.wikipedia.org/wiki/Artificial_intelligence AI] opportunities through [https://en.wikipedia.org/wiki/Foundation_model foundational model] evaluation, application development, and [https://en.wikipedia.org/wiki/User_experience user experience] research.<ref>{{Cite web|url=https://chatgpt.com/share/e/68518059-d5c8-800a-88e3-0c0949f1752d|title=Add wikipedia links|last=Schneider|first=Steven|date=June 17, 2025|website=chatgpt.com|language=en-US|access-date=2025-06-17}}</ref>
AIX is in the early stages of developing a platform to support these activities by allowing the use of [https://en.wikipedia.org/wiki/Large_language_model LLM models], both offline and online, in a private, secure and personally managed environment.
The platform is imagined as a structured and customized installation of Open WebUI
Open WebUI is an open-source interface for interacting with AI models like ChatGPT, Claude, and local Ollama models. More broadly, it is an "extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution."<ref>{{Cite web|url=https://openwebui.com/|title=🏡 Home {{!}} Open WebUI|website=openwebui.com|language=en|access-date=2025-06-16}}</ref>
The customized platform will emerge as the '''AIXworkbench'''
=== What is the AIX Workbench? ===
The AIXworkbench is an open-source AI interface designed for flexible deployment on personal computers and multi-user servers. It empowers users with the ability to leverage local AI models for offline inference, while also providing seamless API access to all models available on the internet.
The AIXworkbench utilizes OpenWebUI as its foundation. While OpenWebUI typically demands moderate to advanced technical skills—including familiarity with development tools, command-line interfaces, and system configuration—the AIX Workbench project aims to make this interface accessible to users with modest technical expertise.
The Personal AIXworkbench allows a single user on one device to query multiple models, whether they are stored locally or accessed online via an API. The Team AIXworkbench is designed for collaborative environments, enabling 2 to 25 users to access a shared device through a web application and query both local and online models.
Beyond model access, the AIXworkbench provides extensive management of prompt and response interactions. This includes sophisticated tools for optimizing and customizing prompt parameters, alongside comprehensive archiving of user, session, and model metadata. Furthermore, it serves as a robust platform for conducting experiments, facilitating the comparison of different models and the precise testing of various parameters.
7f9hx1zcu7nomhjnoiaqlotk3ea0jud
AIXworkbench/Papers/Building-the-Workbench
0
322066
2718903
2718763
2025-06-17T20:35:53Z
Stevesuny
294667
2718903
wikitext
text/x-wiki
This paper will chronicle the development of the AIXworkbench, with a focus on the Wednesdays in June (2025) Working Group.
== What is an "AI workbench" and why do we need it ==
== What is AIXworkbench ==
AIX + Open WebUI = AIXworkbench
* AIX is focused on developing Responsible AI for All: Inspired by the Responsible AI Lab, KNUST
* Assessing our projects using the FACETS framework
* The AIXworkbench is part of our projects to promote AI tools that need neither electricity nor the internet
=== Vision of multi-faceted diversity in the development of AI ===
=== How does a workbench fit with the emergence of a Community AI / Developmental AI idea ===
# Participants / recruitment / organization
# How has Open WebUI been used to support scholarly research
=== Subpages ===
{{Special:PrefixIndex/AIXworkbench/Papers/Building-the-Workbench/}}
noqflrxnhcs9o4r7rxpvztmx74p2nsw
AIXworkbench/Papers/Building-the-Workbench/Open-WebUI
0
322068
2718829
2718777
2025-06-17T13:40:18Z
Noalolonaharo
3003186
2718829
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI has been used for a variety of projects all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
# Prof. Agrawal, Patil, and Chaudhari explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.<ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref>
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
== References ==
3rnntwfofrx3im4uauixaiki01vbmih
2718830
2718829
2025-06-17T13:44:11Z
Noalolonaharo
3003186
2718830
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI has been used for a variety of projects all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
# Prof. Agrawal, Patil, and Chaudhari explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.<ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref>
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
== References ==
ahc0t10733q3p0hw9spxdnol842193k
2718831
2718830
2025-06-17T13:49:58Z
Noalolonaharo
3003186
2718831
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI has been used for a variety of projects all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
# Prof. Agrawal, Patil, and Chaudhari explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.<ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref>
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
#
== References ==
86ybitv0nrarxvkxaxzxo618pwvmy6n
2718832
2718831
2025-06-17T13:52:37Z
Noalolonaharo
3003186
2718832
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI has been used for a variety of projects all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
# Prof. Agrawal, Patil, and Chaudhari <ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref> explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
#
== References ==
f703o9mjft40ddr58c79e23k4izxfxr
2718840
2718832
2025-06-17T14:15:41Z
Stevesuny
294667
2718840
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI has been used for a variety of projects all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
# Prof. Agrawal, Patil, and Chaudhari <ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref> explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.<ref>Steve + Google. https://notebooklm.google.com/notebook/7278efb1-3228-432b-93d8-bebe4cf2939d?_gl=1*16c202b*_up*MQ..*_ga*MTc4MjI2NTEyMi4xNzQ4MzY5OTY3*_ga_W0LDH41ZCB*czE3NTAxNjk2NjEkbzQkZzEkdDE3NTAxNjk2NjEkajYwJGwwJGgw&gclid=CjwKCAjwpMTCBhA-EiwA_-MsmdPmmKkv82-92s1qK-YjoDGT39aPahv0_bg8bBK5YRKhAyy99sSXJxoCT2EQAvD_BwE&gbraid=0AAAAA-fwSsfysuQanyZ1pcCq1pWQANnb9</ref>
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
#
== References ==
snc6xlutbv6lqjwx02ait4t7ri9gc03
2718841
2718840
2025-06-17T14:27:33Z
Stevesuny
294667
divided lit rev into two sections; updated agrawal citation to include cite to chatgpt (model)
2718841
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI was selected by scholars for specific characteristics, from all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
Scholars in different fields have used Open WebUI for their disciplinary purposes:
# Agrawal et al <ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref> explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.<ref>Steve + Google. https://notebooklm.google.com/notebook/7278efb1-3228-432b-93d8-bebe4cf2939d?_gl=1*16c202b*_up*MQ..*_ga*MTc4MjI2NTEyMi4xNzQ4MzY5OTY3*_ga_W0LDH41ZCB*czE3NTAxNjk2NjEkbzQkZzEkdDE3NTAxNjk2NjEkajYwJGwwJGgw&gclid=CjwKCAjwpMTCBhA-EiwA_-MsmdPmmKkv82-92s1qK-YjoDGT39aPahv0_bg8bBK5YRKhAyy99sSXJxoCT2EQAvD_BwE&gbraid=0AAAAA-fwSsfysuQanyZ1pcCq1pWQANnb9</ref>
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
#
== References ==
6ggxhn2ognxkn6a3zeq7cg0bvqjpn5s
2718846
2718841
2025-06-17T15:28:37Z
Stevesuny
294667
removed sample citation to bullet 3, discussion about Agrawal, which is generated in collaboration with ai, and needs to be cited as such.
2718846
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI was selected by scholars for specific characteristics, from all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
Scholars in different fields have used Open WebUI for their disciplinary purposes:
# Agrawal et al <ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref> explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
#
== References ==
hv65wtp3rj78773liieibx134v58h5r
2718847
2718846
2025-06-17T15:41:27Z
Stevesuny
294667
added community-based resources section; soon to become its own sub-section i think
2718847
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI community resources ====
* Subreddit [https://www.reddit.com/r/OpenWebUI/ r/OpenWebUI]
Community-based discussions worth reviewing:
* Subreddit [https://www.reddit.com/r/OpenWebUI/ r/OpenWebUI] post [https://www.reddit.com/r/OpenWebUI/comments/1l9nkvk/im_the_maintainer_and_team_behind_open_webui_ama/ I’m the Maintainer (and Team) behind Open WebUI – AMA 2025 Q2] by [https://www.reddit.com/user/tjrbk/ u/tjrbk]
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI was selected by scholars for specific characteristics, from all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
Scholars in different fields have used Open WebUI for their disciplinary purposes:
# Agrawal et al <ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref> explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
#
== References ==
aw5zkaxm6c95gva14k8cue0ywyjzlr9
2718957
2718847
2025-06-18T00:46:10Z
Noalolonaharo
3003186
Source number 10 needs an URL but it seems it's blacklisted as of now. Trying to find a solution for it.
2718957
wikitext
text/x-wiki
In his manifesto ''Why I’m Building Open WebUI,'' Timothy J. Baek articulates a vision centered on the local deployment of large language models (LLMs) as a means to foster autonomy, data sovereignty, and resilient communication. He frames Open WebUI not merely as a technical project, but as an infrastructural response to the fragility of centralized systems—enabling individuals and communities to operate independently, collaborate meaningfully, and persist even in conditions of disconnection or systemic failure.<ref>{{Cite web|url=https://jryng.com/thoughts/why-open-webui|title=Timothy J. Baek - Why I’m Building Open WebUI: On Autonomy, Diversity, and the Future of Humanity|website=jryng.com|access-date=2025-06-16}}</ref>
==== Open WebUI community resources ====
* Subreddit [https://www.reddit.com/r/OpenWebUI/ r/OpenWebUI]
Community-based discussions worth reviewing:
* Subreddit [https://www.reddit.com/r/OpenWebUI/ r/OpenWebUI] post [https://www.reddit.com/r/OpenWebUI/comments/1l9nkvk/im_the_maintainer_and_team_behind_open_webui_ama/ I’m the Maintainer (and Team) behind Open WebUI – AMA 2025 Q2] by [https://www.reddit.com/user/tjrbk/ u/tjrbk]
==== Open WebUI used broadly ====
Some distinguish Open WebUI from "developer-centric tools," describing it as part of a class of "community-developed tools" that have "democratized access" to the capabilities of LLMs by lowering "the barrier to entry, enabling individuals without extensive technical expertise to experiment with and benefit from advanced language models."<ref>{{Cite book|title=Natural Language Analytics with Generative Large-Language Models: A Practical Approach with Ollama and Open-Source LLMs|last=Marcondes|first=Francisco S.|last2=Gala|first2=Adelino|last3=Magalhães|first3=Renata|last4=Perez de Britto|first4=Fernando|last5=Durães|first5=Dalila|last6=Novais|first6=Paulo|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-76631-2|edition=1st ed. 2025|series=SpringerBriefs in Computer Science|location=Cham|page=35}}</ref>
Open WebUI was selected by scholars for specific characteristics, from all over the world, including Japan, to provide .<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref>
# Alier-Formet et al detailed the application of a complex evaluative framework built on Open WebUI's feedback interface.<ref>{{Cite book|url=https://link.springer.com/10.1007/978-3-031-93567-1_1|title=Enhancing Learning Assistant Quality Through Automated Feedback Analysis and Systematic Testing in the LAMB Framework|last=Alier-Forment|first=Marc|last2=Pereira-Valera|first2=Juanan|last3=Casañ-Guerrero|first3=Maria Jose|last4=Garcia-Penalvo|first4=Francisco Jose|date=2025|publisher=Springer Nature Switzerland|isbn=978-3-031-93566-4|editor-last=Smith|editor-first=Brian K.|volume=15807|location=Cham|pages=3–12|language=en|doi=10.1007/978-3-031-93567-1_1|editor-last2=Borge|editor-first2=Marcela}}</ref>
# Fatharani and Alsayegh used Open WebUI as a platform to manage interactions with models and local knowledge bases. They reported selecting Open WebUI because it was open source, easy to use, and offered built-in RAG integration. In their paper, they demonstrate a workflow utilizing Open WebUI to reference local knowledge bases that augment prompts submitted to LLMs.<ref>{{Cite journal|last=Fatharani|first=Annisa|last2=Alsayegh|first2=Ali|date=2025-03-01|title=Pharmacogenomics Meets Generative AI: Transforming Clinical Trial Design with Large Language Models|url=https://journals.sagepub.com/doi/10.1177/0976500X251321885|journal=Journal of Pharmacology and Pharmacotherapeutics|language=en|doi=10.1177/0976500X251321885|issn=0976-500X}}</ref> Ishihara et. al. used a similar technique to explore the power of local knowledge bases, and to take advantage of the RAG capabilities of Open WebUI.<ref>{{Cite journal|last=Ishihara|first=Shigekazu|last2=Ishihara|first2=Taku|last3=Ishihara|first3=Keiko|date=2024|title=Facilitation of Kansei engineering design process with LLM multi-agent discussion|url=https://openaccess.cms-conferences.org/publications/book/978-1-964867-21-2/article/978-1-964867-21-2_0|doi=10.54941/ahfe1005135}}</ref> [[File:Screenshot_2025-06-16_at_10.45.16_AM.png|600x600px]]
Scholars in different fields have used Open WebUI for their disciplinary purposes:
# Agrawal et al <ref>{{Cite journal|last=Agrawal|first=Prof. Pallavi|date=2025-04-30|title=Running LLMs Locally on Consumer Devices|url=https://www.ijraset.com/best-journal/running-llms-locally-on-consumer-devices|journal=International Journal for Research in Applied Science and Engineering Technology|volume=13|issue=4|pages=5433–5441|doi=10.22214/ijraset.2025.69433}}</ref> explore the feasibility of running large language models (LLMs) on ordinary consumer devices in their paper "Running LLMs Locally on Consumer Devices." They chose this topic due to recent advances in model efficiency and optimization techniques—such as quantization and acceleration libraries—that have made it increasingly viable to deploy advanced open-source models on high-end PCs, and smaller ones on mainstream setups. Their study presents a clear workflow: it outlines the necessary hardware and software setup, details optimization methods, and compares local execution to cloud-based alternatives in terms of latency, cost, energy consumption, and privacy—demonstrating that privacy-preserving on-device LLM inference is now a practical reality.
# Othman et al. <ref>{{Cite journal|last=Othman|first=Achraf|last2=Chemnad|first2=Khansa|last3=Tlili|first3=Ahmed|last4=Da|first4=Ting|last5=Wang|first5=Huanhuan|last6=Huang|first6=Ronghuai|date=2024-11-07|title=Comparative analysis of GPT-4, Gemini, and Ernie as gloss sign language translators in special education|url=https://doi.org/10.1007/s44282-024-00113-0|journal=Discover Global Society|language=en|volume=2|issue=1|pages=86|doi=10.1007/s44282-024-00113-0|issn=2731-9687}}</ref>
Scholars using OpenWebUI for LLM Evaluation and Auditing
# In the peer-reviewed workshop paper “Designing an open-source LLM interface and social platforms for collectively driven LLM evaluation and auditing,”<ref>{{Cite web|url=https://openwebui.com/assets/files/whitepaper.pdf|title=Designing an open-source LLM interface and social platforms for collectively driven LLM evaluation and auditing (White paper).|last=OpenWeb UI|first=Team|date=2024}}</ref> the authors utilized OpenWebUI as the primary interface for conducting real-world, community-driven evaluation of large language models. By deploying OpenWebUI locally, they enabled users to interact with various LLMs in a unified environment, collect authentic usage data, and facilitate head-to-head model comparisons. The platform’s features—such as data export, multi-model support, and collaborative tools—allowed the researchers to crowdsource feedback, curate interaction logs, and involve diverse user groups in both quantitative and qualitative model assessment. This approach empowered inclusive, transparent, and iterative LLM evaluation, moving beyond traditional benchmarks to reflect real user needs and preferences. <ref>{{Cite web|url=|title=Conversation with Perplexity AI about scholarly articles using OpenWebUI|last=Lolona Haro|first=Noa|date=June 17, 2025|website=perplexity.ai}}</ref>
== References ==
mjedlbql7ykacx7us9xqm1e6loxzxdj
AIXworkbench/People
0
322074
2718833
2718758
2025-06-17T13:56:30Z
Noalolonaharo
3003186
2718833
wikitext
text/x-wiki
{{TOCright}}
== People ==
This section introduces individuals engaged in the AIXworkbench project.
* [[User:Stevesuny]]. Interested in using LLMs for personal research and exploration, and for small teams like classes. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration Center.
* User:Noalolonaharo. Interested in learning how to use AI daily. SUNY Polytechnic Institute, SURP Student.
==== ''To add your name, click "edit" next to'' '''People''' ''above and follow this format:'' ====
[[User:YourUsername]] – Brief description of your interest in AIXworkbench. Organizational affiliation & interests.
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
==== '''''To add your page, click here:''''' [{{fullurl:{{FULLPAGENAME}}/Stevesuny|action=edit}} ''Create Your Page''] ====
mwo3jfwbz7n2vzl9nz3bpabbbdw2a22
2718834
2718833
2025-06-17T13:57:13Z
Noalolonaharo
3003186
2718834
wikitext
text/x-wiki
{{TOCright}}
== People ==
This section introduces individuals engaged in the AIXworkbench project.
* [[User:Stevesuny]]. Interested in using LLMs for personal research and exploration, and for small teams like classes. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration Center.
* [[User:Noalolonaharo]]. Interested in learning how to use AI daily. SUNY Polytechnic Institute, SURP Student.
==== ''To add your name, click "edit" next to'' '''People''' ''above and follow this format:'' ====
[[User:YourUsername]] – Brief description of your interest in AIXworkbench. Organizational affiliation & interests.
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
==== '''''To add your page, click here:''''' [{{fullurl:{{FULLPAGENAME}}/Stevesuny|action=edit}} ''Create Your Page''] ====
j9s00nxtdjy8ozrorsluq1nnz5gl5jc
2718835
2718834
2025-06-17T13:59:05Z
Noalolonaharo
3003186
/* People's Pages */
2718835
wikitext
text/x-wiki
{{TOCright}}
== People ==
This section introduces individuals engaged in the AIXworkbench project.
* [[User:Stevesuny]]. Interested in using LLMs for personal research and exploration, and for small teams like classes. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration Center.
* [[User:Noalolonaharo]]. Interested in learning how to use AI daily. SUNY Polytechnic Institute, SURP Student.
==== ''To add your name, click "edit" next to'' '''People''' ''above and follow this format:'' ====
[[User:YourUsername]] – Brief description of your interest in AIXworkbench. Organizational affiliation & interests.
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
==== '''''To add your page, click here:''''' [{{fullurl:{{FULLPAGENAME}}/{{USERNAME}}|action=edit}} ''Create Your Page''] ====
tq1kob8mpsrdcucsshb49japwd4ueay
2718865
2718835
2025-06-17T17:52:16Z
Stevesuny
294667
/* To add your name, click "edit" next to People above and follow this format: */
2718865
wikitext
text/x-wiki
{{TOCright}}
== People ==
This section introduces individuals engaged in the AIXworkbench project.
* [[User:Stevesuny]]. Interested in using LLMs for personal research and exploration, and for small teams like classes. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration Center.
* [[User:Noalolonaharo]]. Interested in learning how to use AI daily. SUNY Polytechnic Institute, SURP Student.
==== ''To add your name, click "edit" next to'' '''People''' ''above and follow this format:'' ====
<nowiki>[[User:YourUsername]]</nowiki> – Brief description of your interest in AIXworkbench. Organizational affiliation & interests.
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
==== '''''To add your page, click here:''''' [{{fullurl:{{FULLPAGENAME}}/{{USERNAME}}|action=edit}} ''Create Your Page''] ====
gsln3749titc38xq5w2y1n32ko502i7
2718880
2718865
2025-06-17T19:27:01Z
Stevesuny
294667
2718880
wikitext
text/x-wiki
{{:AIXworkbench/Wikiversity/navbar}}
== People ==
This section introduces individuals engaged in the AIXworkbench project.
* [[User:Stevesuny]]. Interested in using LLMs for personal research and exploration, and for small teams like classes. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration Center.
* [[User:Noalolonaharo]]. Interested in learning how to use AI daily. SUNY Polytechnic Institute, SURP Student.
==== ''To add your name to this list copy this text:'' ====
<nowiki>[[User:YourUsername]]</nowiki> Your brief description
==== ''and click on the edit link next to People (above), and paste'' ====
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
==== '''''To add your page, click here:''''' [{{fullurl:{{FULLPAGENAME}}/{{USERNAME}}|action=edit}} ''Create Your Page''] ====
8f5n7maqh3wnrefj2el38n2qa1t9pva
2718881
2718880
2025-06-17T19:28:31Z
Stevesuny
294667
2718881
wikitext
text/x-wiki
{{TOCright}}
{{:AIXworkbench/Wikiversity/navbar}}
== People ==
''To add your name to the list, click "edit" next to'' '''People''' ''above and follow this format including the brackets):''
<nowiki>[[User:YourUsername]]</nowiki> – Brief rganizational affiliation & interests.
This section introduces individuals engaged in the AIXworkbench project in the June Working Group.
* [[User:Stevesuny]]. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration (AIX) Center. AI for All: people, .
* [[User:Noalolonaharo]]. SUNY Polytechnic Institute, AIX Research Team, Undergrad Student. Interested in learning how to use AI daily.
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
pt32hoybeacpb8hhgf5hw1j4s6re596
2718884
2718881
2025-06-17T19:32:09Z
2600:1017:A006:FA24:E0C9:B777:EC4B:FCE6
/* People */ Added [[User:YourUsername]] – Brief rganizational affiliation & interests (and added the "o" manually in organizational...
2718884
wikitext
text/x-wiki
{{TOCright}}
{{:AIXworkbench/Wikiversity/navbar}}
== People ==
''To add your name to the list, click "edit" next to'' '''People''' ''above and follow this format including the brackets):''
<nowiki>[[User:YourUsername]]</nowiki> – Brief rganizational affiliation & interests.
This section introduces individuals engaged in the AIXworkbench project in the June Working Group.
* [[User:Stevesuny]]. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration (AIX) Center. AI for All: people, .
* [[User:Noalolonaharo]]. SUNY Polytechnic Institute, AIX Research Team, Undergrad Student. Interested in learning how to use AI daily.
* [[User:YourUsername]] – Brief organizational affiliation & interests. (This is copy / pasted from an unregistered user)
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
47n3nnymnheqmjxjg0o215gulhy03qp
2718899
2718884
2025-06-17T20:26:09Z
Stevesuny
294667
added help section
2718899
wikitext
text/x-wiki
{{TOCright}}
{{:AIXworkbench/Wikiversity/navbar}}
The AIXworkbench Wikiversity community is an open community, in the spirit of Wikiversity, with participation welcome from all.
If you'd like to contribute meaningfully, please register a username with Wikipedia. Add your name to the list of people below.
{{mbox
| type = notice
| image = [[File:Information icon4.svg|40px]]
| text = If you've never edited a Wikipedia page, go [https://en.wikipedia.org/wiki/Help:Introduction here for some tutorials], and [https://www.youtube.com/@TheWikiShowEdits/shorts for some great short videos].
}}
== People ==
''To add your name to the list, click "edit" next to'' '''People''' ''above and follow this format including the brackets):''
<nowiki>[[User:YourUsername]]</nowiki> – Brief rganizational affiliation & interests.
This section introduces individuals engaged in the AIXworkbench project in the June Working Group.
* [[User:Stevesuny]]. SUNY Polytechnic Institute, Professor & Co-Director, Artificial Intelligence Exploration (AIX) Center. AI for All: people, .
* [[User:Noalolonaharo]]. SUNY Polytechnic Institute, AIX Research Team, Undergrad Student. Interested in learning how to use AI daily.
* [[User:YourUsername]] – Brief organizational affiliation & interests. (This is copy / pasted from an unregistered user)
== People's Pages ==
{{Special:PrefixIndex/AIXworkbench/People/}}
50mt9isk5d6nvt0mvtsca0z3a1r0h5w
User:TTencoder
2
322076
2718981
2718810
2025-06-18T02:53:51Z
TTencoder
3003655
2718981
wikitext
text/x-wiki
{{Page tabs
| NOTOC = true
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 1
}}
== Overview ==
''You can just build things.''
Here is an interesting article: [[w:Encoding_(memory)|Encoding]]
aat27hkxuur99y77t5v88hrpfx7q2r6
User:TTencoder/Solitaire
2
322077
2718878
2718800
2025-06-17T19:25:31Z
TTencoder
3003655
2718878
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game is called "Draw-3 Klondike". It is often referred to simply as "Solitaire", so we will refer to it as "Solitaire" for the sake of brevity.
The defining feature of this variant is that when drawing from the stock to the waste, three cards are drawn at once, in a sequence where the first two cards are partially observable, and the third card is fully observable and playable. To play a card from the waste means moving it to either the tableau or the foundation. Once a card is played form the waste, it cannot be moved back to the waste or the stock (unless the player is able to Undo a preceding move).
=== Platform Rules ===
We desire to test the performance of our Agent on a Target Platform, which we interface to, using electronic methods.
The following sections detail the specific rules of the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, return any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
jtipzvq9qsht5nq9hl4qa1bdnlqljss
2718882
2718878
2025-06-17T19:29:55Z
TTencoder
3003655
2718882
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game is called "Draw-3 Klondike". We will refer to it simply as "Solitaire", for the sake of brevity.
The defining feature of this variant is that when drawing from the stock to the waste, three cards are drawn at once, in a sequence where the first two cards are partially observable, and the third card is fully observable and playable. To play a card from the waste means moving it to either the tableau or the foundation. Once a card is played form the waste, it cannot be moved back to the waste or the stock (unless the player is able to Undo a preceding move).
=== Platform Rules ===
We desire to test the performance of our Agent on a Target Platform, which we interface to, using electronic methods.
The following sections detail the specific rules of the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, return any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
g2wkih33zxlwmght7ja4njec50kulf1
2718883
2718882
2025-06-17T19:30:25Z
TTencoder
3003655
2718883
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game is called "Draw-3 Klondike". We will refer to it simply as "Solitaire", for the sake of brevity.
The defining feature of this variant is that when drawing from the stock to the waste, three cards are drawn at once, in a sequence where the first two cards are partially observable, and the third card is fully observable and playable. To play a card from the waste means moving it to either the tableau or the foundation. Once a card is played from the waste, it cannot be moved back to the waste or the stock (unless the player is able to Undo a preceding move).
=== Platform Rules ===
We desire to test the performance of our Agent on a Target Platform, which we interface to, using electronic methods.
The following sections detail the specific rules of the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, return any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
tgowsbrz1brmfpkh7h4fohekydo4fi1
2718885
2718883
2025-06-17T19:33:16Z
TTencoder
3003655
2718885
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
We desire to test the performance of our Agent on a Target Platform, which we interface to, using electronic methods.
The following sections detail the specific rules of the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, return any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
5v3dfcnhrv647rz0fa0k5hc2mge2ues
2718886
2718885
2025-06-17T19:34:07Z
TTencoder
3003655
2718886
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
* We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
* The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, return any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
bbvg602uscxb3ekzm5o71iyudpla9f5
2718887
2718886
2025-06-17T19:34:25Z
TTencoder
3003655
2718887
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, return any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
rt2i7cenzknidfonjib0vj80y4hxi0p
2718888
2718887
2025-06-17T19:35:33Z
TTencoder
3003655
2718888
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to make one adjacent Undo as a move. This move undoes the most recent move, returning any moved cards back to their originating structure.
The Undo move provides the advantage of revealing hidden information, i.e. the location of specific cards, while allowing for avoidance of deadlocking moves.
==== Timer ====
On this platform, games are timed. Each game begins with 300 seconds on the timer. Terminating the game early allows for an increased Time Bonus, which is a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
8glexcwh5fseubqraq4cz2nh6685jmu
2718889
2718888
2025-06-17T19:36:52Z
TTencoder
3003655
2718889
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
8bmb0m4x1nugcquhiqysj1egeghdlko
2718890
2718889
2025-06-17T19:38:53Z
TTencoder
3003655
2718890
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia, especially if you were alive in the 1990s.
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
8zsbmp8cc1q0zdv5oukpmne4efdictk
2718892
2718890
2025-06-17T20:02:46Z
TTencoder
3003655
2718892
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia, especially if you were alive in the 1990s.
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
{| class="wikitable"
|-
| [[File:Partially_observable.png|thumb|Partially observable waste|200px]]
| [[File:Fully observable.png|thumb|Fully observable waste|200px]]
|}
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
9o73yc9as0cfa0s52ljaoxh2ln6z7ac
2718893
2718892
2025-06-17T20:05:28Z
TTencoder
3003655
2718893
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia, especially if you were alive in the 1990s.
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
{| class="wikitable" style="margin-left:auto; margin-right:auto;"
|-
| style="text-align:center" | [[File:Partially_observable.png|200px]]
| style="text-align:center" | [[File:Fully observable.png|200px]]
|-
| Partially observable waste
| Fully observable waste
|}
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
5uq5godp5l1nqpapr090de5i1umd3qf
2718894
2718893
2025-06-17T20:09:10Z
TTencoder
3003655
2718894
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once. The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
{| class="wikitable" style="margin-left:auto; margin-right:auto;"
|-
| style="text-align:center" | [[File:Partially_observable.png|200px]]
| style="text-align:center" | [[File:Fully observable.png|200px]]
|-
| Partially observable waste
| Fully observable waste
|}
=== Platform Rules ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
pkblkfsc1ez8h64fs7k3rsn816n5il0
2718896
2718894
2025-06-17T20:17:20Z
TTencoder
3003655
2718896
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once.
The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
{| class="wikitable" style="margin-left:auto; margin-right:auto;"
|-
| style="text-align:center" | [[File:Partially_observable.png|200px]]
| style="text-align:center" | [[File:Fully observable.png|200px]]
|-
| Partially observable waste
| Fully observable waste
|}
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
ijjl0nbvk0ohvc1d61oni1iftgiiux0
2718897
2718896
2025-06-17T20:19:23Z
TTencoder
3003655
2718897
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once.
The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
ef54h9iv85ynao7126hb759alacu61v
2718898
2718897
2025-06-17T20:21:25Z
TTencoder
3003655
2718898
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this version, when drawing from the stock to the waste, three cards are drawn at once.
The first two cards are partially observable, while the third card is fully visible and playable. A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
gcwpj4bozn1nu6bidijohooku9asa15
2718900
2718898
2025-06-17T20:27:32Z
TTencoder
3003655
2718900
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit and rank of the second card. This provides information that could potentially be critical in reaching an optimal solution. The platform provides this opportunity, so we take advantage of it.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
sd67vu9wkg7hu834vgdedtbne3sxs4i
2718901
2718900
2025-06-17T20:29:04Z
TTencoder
3003655
2718901
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
The platform of interest provides an interesting opportunity to circumvent this. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit and rank of the second card. This provides information that could potentially be critical in reaching an optimal solution.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
4h2w2cfycjshqsa8qsvtk2bxb6kemd0
2718902
2718901
2025-06-17T20:33:09Z
TTencoder
3003655
2718902
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
The platform of interest provides an interesting opportunity to circumvent this. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit and rank of the second card. This provides information that could potentially be critical in reaching an optimal solution.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
41y5bllhvxe1uxqjw1k1653tdc6lfqw
2718904
2718902
2025-06-17T20:39:21Z
TTencoder
3003655
2718904
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit and rank of the second card. This provides information that could potentially be critical in reaching an optimal solution.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
ssc9ke5jj27pdytq2m05c7s085h6cnp
2718905
2718904
2025-06-17T20:39:55Z
TTencoder
3003655
2718905
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
4e96ya1x5cohzu05rliu5z8vlmqduf6
2718906
2718905
2025-06-17T20:42:00Z
TTencoder
3003655
2718906
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, knowing that the Ace of Hearts is in the tableau would mean that the red Ace in the waste is the Ace of Diamonds. Knowledge by deduction!
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
bfprkrwxr0h92f5ji4w9yn3s4cf6qsf
2718907
2718906
2025-06-17T20:42:14Z
TTencoder
3003655
2718907
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, knowing that the Ace of Hearts is in the tableau would mean that the red Ace in the waste is the Ace of Diamonds. Knowledge by logical deduction!
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
juaryirorpbkkhmfhkbl7dys3q4e688
2718908
2718907
2025-06-17T20:43:17Z
TTencoder
3003655
2718908
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then my deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
1elzk3jkv3snog2l9a87xj0jpkpya7t
2718909
2718908
2025-06-17T20:43:28Z
TTencoder
3003655
2718909
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
a69ngjxbu17d9qcwz7akwh95yj2c5m8
2718910
2718909
2025-06-17T20:45:37Z
TTencoder
3003655
2718910
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
bzdppmyd09td7uwv7bfgnieyz7g2k9w
2718911
2718910
2025-06-17T20:47:39Z
TTencoder
3003655
2718911
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
2hpdl4fx5enk883j4oh3no3tr6kghlx
2718912
2718911
2025-06-17T20:48:26Z
TTencoder
3003655
2718912
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
I propose implementing a reward and punishment system that allows for both exploration and exploitation.
Some experimentation will be necessary to validate this technique.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
bzdppmyd09td7uwv7bfgnieyz7g2k9w
2718914
2718912
2025-06-17T20:50:50Z
TTencoder
3003655
2718914
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card is playable, the first two cards of the waste are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
n6ra6c0p0z462st1l0cmkr0ccpijt9f
2718916
2718914
2025-06-17T21:03:18Z
TTencoder
3003655
2718916
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
4d2m6ehoyu7lonzvksbwpsz0ho3cxkw
2718917
2718916
2025-06-17T21:07:02Z
TTencoder
3003655
2718917
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may have parallels with other domains.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
d29e05lywq724pk3yp8cyn935g7toha
2718918
2718917
2025-06-17T21:09:15Z
TTencoder
3003655
2718918
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may have parallels with other domains.
== Mission ==
We aim to develop an Agent that learns from human experience, how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
d836rvrqb24pzp8llnvbtd2f2rta89x
2718919
2718918
2025-06-17T21:12:53Z
TTencoder
3003655
2718919
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may have parallels with other domains.
== Mission ==
We aim to develop an Agent that learns from experience, how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Learning from Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
e9yaaoykyj4uoier8qsp0792o20l26c
2718920
2718919
2025-06-17T21:17:06Z
TTencoder
3003655
2718920
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may have parallels with other domains.
== Mission ==
We aim to develop an Agent that learns from experience, how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Learning from Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
4nargx121u5yjuevd1pq2jwfrcl3hsz
2718921
2718920
2025-06-17T21:18:43Z
TTencoder
3003655
2718921
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may have parallels with other domains.
== Mission ==
We aim to develop an Agent that learns from experience, how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
r2r9gk5czb5b3j2qd8jdae27c0ly7qk
2718922
2718921
2025-06-17T21:22:00Z
TTencoder
3003655
2718922
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may have [[w:Concurrency|parallels]] with [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]], how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
7a3etnpeguvqflpz4a8u4uq154wxyfs
2718923
2718922
2025-06-17T21:24:25Z
TTencoder
3003655
2718923
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value [[w:Concurrency|in parallel]] with [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]], how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
jqzz1wk3gl719yx4h1tjo5plva405qf
2718924
2718923
2025-06-17T21:24:54Z
TTencoder
3003655
2718924
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]], how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
ibelqsr9g1fk85stebz7me84r8t69sr
2718925
2718924
2025-06-17T21:32:23Z
TTencoder
3003655
2718925
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]], how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
=== The Procedural Generation of Episodes ===
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
# AI Approach: Deep Reinforcement Learning (DRL) & Q-Learning
Reinforcement Learning (RL) Fundamentals
Agent interacts with Environment
Maximize Reward
Agent (learner, model)
Environment (board, response)
State (condition)
Action (valid moves)
Reward (intrinsic value)
Value (long-term expected reward)
Policy (states to actions mapping)
Optimal Policy (maximizes total reward)
Markov Decision Process (MDP) Formulation
Klondike as MDP
Components: States, Actions, Transition Model, Reward Function
Markov Assumption
Bellman Equation
Q-Learning
Model-free RL
Learns 'Quality' (Q-function)
Does not require explicit environment model
Handles stochastic transitions/rewards
Iterative Algorithm (Q(s,a) update)
Deep Q-Learning (DQN)
Combines Q-learning with Deep NN
Estimates Q-values for complex spaces
Exploration vs. Exploitation
Trade-off
Epsilon-greedy Policy (random vs. greedy)
Epsilon Decay
Optimistic Initial Conditions (encourage exploration)
Neural Networks (Function Approximation)
Approximates Q(s,a) with parameterized function
Training: Minimizes Mean-Squared Error (MMSE)
Instability Solutions: Freeze target Q network, Experience Replay
Architectures: CNN, MLP, LSTM for temporal data
Phase 3: DRL Implementation & Training
3.1 Deep Q-Network (DQN) Implementation
Neural Network Architecture (PyTorch)
CNN/MLP for Q-function
Input Layer (game state vector)
Hidden Layers (LSTM for temporal/partial states)
Output Layer (Q-values for actions)
Training Loop (TD-Learning)
Initialize Q-network weights
Experience Replay (store s,a,r,s' tuples, sample mini-batches)
Target Network (stabilizes training)
Q-value Update Rule
Hyperparameters (alpha, gamma)
3.2 Exploration-Exploitation Strategy
Epsilon-Greedy Policy
Epsilon Decay Over Time
3.3 Curriculum Learning Strategy
Start with Simpler Variations
Motivational Curriculum Learning (shape rewards)
Filter & Categorize Episodes by Similarity
Phase 4: Advanced Optimizations & Evaluation
4.1 Refined Reward Shaping & Feature Engineering
Dynamic Reward Shaping
Expanded Features
Playable Moves Count
Stock/Waste Potential Moves
Blocking Cards
Potential Infinite Loops
Heuristic Evaluations (expert strategies)
4.2 Performance Metrics & Evaluation
Win Rate
Time to Solve
Exploration Efficiency
Solvability Detection
Benchmark Against Humans/Existing Solvers
4.3 Continuous Improvement Loop
Analyze Performance Data
Identify Weaknesses
Fine-tune Model (rewards, data, retraining)
# Key Techniques & Algorithms
Monte Carlo (MC) Methods
Complex Combinatorial Optimization
Approximate State/Action Values
Rollout Method
Amplifies Heuristic Performance
Iterated in deterministic MDPs
Nested Monte Carlo Search
Nested Rollout Policy Adaptation
UCT (Upper Confidence Bound for Trees)
Monte-Carlo Planning Algorithm
Builds Sparse Look-ahead Tree
Balances Exploration & Exploitation
Successful in complex games (Go)
Sparse UCT (limits sampling calls)
Value & Policy Iteration
Iterative Methods to solve MDPs
Value Iteration (calculates state values)
Policy Iteration (policy evaluation & improvement)
Search Algorithms
Brute Force
Backtracking
Uniform Cost Search (UCS)
Breadth-First Search (BFS)
Depth-First Search (DFS)
A* Search (g(n) + h(n), admissible heuristic)
Multistage Nested Rollouts (different heuristics/search magnitude)
Reward Shaping
Provides additional rewards to guide behavior
Motivational Curriculum Learning
Self-Play Curriculum
Agents train against diversified pool of opponents (past selves)
Overcomes plasticity loss
Used in AlphaGo/AlphaZero
Experience Replay
Stores historical experiences (s,a,r,s')
Randomly samples mini-batches
Stabilizes learning, reduces correlations
Temporal Difference (TD) Learning
Actor-Critic Algorithm
Trains two NNs: 'critic' (Q-values) and 'actor' (policy)
Often converges faster/more reliably
Imitation Learning
Agent learns by imitating expert demonstrations
Useful in high-dimensional spaces or difficult reward formulation
Can initialize Q-learning/policy learning
Expectation Maximization (EM) Algorithm
For Parameter Learning from Partially Observed Data
Uses 'Expected Counts'
Iterative (Initialize, Partial Days, Expected Counts, Re-estimate)
Always Converges
Results depends on initial guess
Maximum Likelihood Estimation (MLE)
For Parameter Learning from Fully Observed Data
Maximizes Likelihood of Observations
Estimates parameters based on observed frequencies
Structure Learning (Bayesian Networks)
Knowledge Engineering (ask experts)
Causal Analysis (find graphs with fewest edges)
Hidden Markov Models (HMMs)
Probabilistic environments evolve over time
Observable state Xt, Observable evidence Et
Markov Assumption (current state depends only on previous)
Observation Assumption (evidence depends only on current state)
Applications (Speech Recognition, Robot Tracking)
Inference Tasks
Filtering (current state given evidence)
Smoothing (past state given entire sequence)
Evaluation (probability of observation sequence)
Decoding (most likely state sequence)
Learning (model parameters)
Forward Algorithm, Viterbi Algorithm (more efficient)
Markov Decision Processes (MDPs)
Actions affect world state
Components: States, Actions, Transition Model, Reward Function
Solution: Policy (mapping states to actions)
Maximize Expected Utility (discounted rewards)
Bellman Equation (recursive relationship)
Solving MDPs: Value Iteration, Policy Iteration
Expectiminimax Algorithm
For Stochastic Games (dice throwing)
Maximizes Min/Max of Expected Value
Uses MAX, MIN, Chance Nodes
Useful methods: Alpha-Beta pruning, Evaluation function
Imperfect Information & Belief States
Agent doesn't know true state
Belief State (set of possible states given past actions/observations)
Update Equations: PREDICT(b,a), UPDATE(b,o)
qnlcrtg5booti3qab5o9gfkd721sspn
2718926
2718925
2025-06-17T21:35:17Z
TTencoder
3003655
2718926
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]], how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
def estimate_difficulty(self, game_state: GameState) -> int:
"""Estimate difficulty according to heuristic provided by user."""
matrix = game_state.location_matrix
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown_locations = sum(
sum(1 for loc in matrix[suit] if loc == "?") for suit in suits_of_interest
)
tableau_bonus = sum(1 for ace in matrix[0] if isinstance(ace, str) and ace.startswith("T"))
twos = matrix[1]
for idx, two in enumerate(twos):
if isinstance(two, str) and two.startswith("T"):
if isinstance(matrix[0][idx], str) and matrix[0][idx].startswith("T"):
tableau_bonus += 1
difficulty = max(0, 4 + unknown_locations - max(0, tableau_bonus))
difficulty = min(MAX_DIFFICULTY, difficulty)
return int(difficulty)
=== The Procedural Generation of Episodes ===
def generate_balanced_games(self, target_per_difficulty: int = 20, batch_size: int = 777, progress_callback: "Callable[[Dict[int, int]], None]" = None, *, min_difficulty: int = 0) -> Dict[int, int]:
"""Generate and persist games until each difficulty bucket is filled.
This implements the algorithm provided by the user. Games are stored
in sub-directories named after their estimated difficulty inside
*self.output_directory*.
The function prints progress information and finally returns a
mapping ``difficulty -> count``.
"""
# Only consider difficulties >= min_difficulty
bins: Dict[int, int] = {d: 0 for d in range(min_difficulty, MAX_DIFFICULTY + 1)}
SENTINEL = 12 + 1 # Matches the user-provided pseudo-code condition
while any(v < target_per_difficulty for v in bins.values()):
last_seen_bins = bins.copy()
for _ in range(batch_size):
game_state = self.generate_game_state()
difficulty = self.estimate_difficulty(game_state)
# Skip difficulties below threshold
if difficulty not in bins or bins[difficulty] >= target_per_difficulty:
continue
file_hash = hashlib.md5(str(game_state).encode()).hexdigest()
unique_string = file_hash[:10]
output_dir = os.path.join(self.output_directory, str(difficulty))
self.save_game_state_to_file(game_state, output_dir, unique_string)
bins[difficulty] += 1
# Show progress if something changed in this batch
if bins != last_seen_bins:
for b, v in bins.items():
print(b, v)
print("Total game states saved:", sum(bins.values()))
print()
if progress_callback is not None:
progress_callback(bins)
return bins
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
== AI Approach: Deep Reinforcement Learning (DRL) & Q-Learning ==
Reinforcement Learning (RL) Fundamentals
Agent interacts with Environment
Maximize Reward
Agent (learner, model)
Environment (board, response)
State (condition)
Action (valid moves)
Reward (intrinsic value)
Value (long-term expected reward)
Policy (states to actions mapping)
Optimal Policy (maximizes total reward)
Markov Decision Process (MDP) Formulation
Klondike as MDP
Components: States, Actions, Transition Model, Reward Function
Markov Assumption
Bellman Equation
Q-Learning
Model-free RL
Learns 'Quality' (Q-function)
Does not require explicit environment model
Handles stochastic transitions/rewards
Iterative Algorithm (Q(s,a) update)
Deep Q-Learning (DQN)
Combines Q-learning with Deep NN
Estimates Q-values for complex spaces
Exploration vs. Exploitation
Trade-off
Epsilon-greedy Policy (random vs. greedy)
Epsilon Decay
Optimistic Initial Conditions (encourage exploration)
Neural Networks (Function Approximation)
Approximates Q(s,a) with parameterized function
Training: Minimizes Mean-Squared Error (MMSE)
Instability Solutions: Freeze target Q network, Experience Replay
Architectures: CNN, MLP, LSTM for temporal data
Phase 3: DRL Implementation & Training
3.1 Deep Q-Network (DQN) Implementation
Neural Network Architecture (PyTorch)
CNN/MLP for Q-function
Input Layer (game state vector)
Hidden Layers (LSTM for temporal/partial states)
Output Layer (Q-values for actions)
Training Loop (TD-Learning)
Initialize Q-network weights
Experience Replay (store s,a,r,s' tuples, sample mini-batches)
Target Network (stabilizes training)
Q-value Update Rule
Hyperparameters (alpha, gamma)
3.2 Exploration-Exploitation Strategy
Epsilon-Greedy Policy
Epsilon Decay Over Time
3.3 Curriculum Learning Strategy
Start with Simpler Variations
Motivational Curriculum Learning (shape rewards)
Filter & Categorize Episodes by Similarity
Phase 4: Advanced Optimizations & Evaluation
4.1 Refined Reward Shaping & Feature Engineering
Dynamic Reward Shaping
Expanded Features
Playable Moves Count
Stock/Waste Potential Moves
Blocking Cards
Potential Infinite Loops
Heuristic Evaluations (expert strategies)
4.2 Performance Metrics & Evaluation
Win Rate
Time to Solve
Exploration Efficiency
Solvability Detection
Benchmark Against Humans/Existing Solvers
4.3 Continuous Improvement Loop
Analyze Performance Data
Identify Weaknesses
Fine-tune Model (rewards, data, retraining)
# Key Techniques & Algorithms
Monte Carlo (MC) Methods
Complex Combinatorial Optimization
Approximate State/Action Values
Rollout Method
Amplifies Heuristic Performance
Iterated in deterministic MDPs
Nested Monte Carlo Search
Nested Rollout Policy Adaptation
UCT (Upper Confidence Bound for Trees)
Monte-Carlo Planning Algorithm
Builds Sparse Look-ahead Tree
Balances Exploration & Exploitation
Successful in complex games (Go)
Sparse UCT (limits sampling calls)
Value & Policy Iteration
Iterative Methods to solve MDPs
Value Iteration (calculates state values)
Policy Iteration (policy evaluation & improvement)
Search Algorithms
Brute Force
Backtracking
Uniform Cost Search (UCS)
Breadth-First Search (BFS)
Depth-First Search (DFS)
A* Search (g(n) + h(n), admissible heuristic)
Multistage Nested Rollouts (different heuristics/search magnitude)
Reward Shaping
Provides additional rewards to guide behavior
Motivational Curriculum Learning
Self-Play Curriculum
Agents train against diversified pool of opponents (past selves)
Overcomes plasticity loss
Used in AlphaGo/AlphaZero
Experience Replay
Stores historical experiences (s,a,r,s')
Randomly samples mini-batches
Stabilizes learning, reduces correlations
Temporal Difference (TD) Learning
Actor-Critic Algorithm
Trains two NNs: 'critic' (Q-values) and 'actor' (policy)
Often converges faster/more reliably
Imitation Learning
Agent learns by imitating expert demonstrations
Useful in high-dimensional spaces or difficult reward formulation
Can initialize Q-learning/policy learning
Expectation Maximization (EM) Algorithm
For Parameter Learning from Partially Observed Data
Uses 'Expected Counts'
Iterative (Initialize, Partial Days, Expected Counts, Re-estimate)
Always Converges
Results depends on initial guess
Maximum Likelihood Estimation (MLE)
For Parameter Learning from Fully Observed Data
Maximizes Likelihood of Observations
Estimates parameters based on observed frequencies
Structure Learning (Bayesian Networks)
Knowledge Engineering (ask experts)
Causal Analysis (find graphs with fewest edges)
Hidden Markov Models (HMMs)
Probabilistic environments evolve over time
Observable state Xt, Observable evidence Et
Markov Assumption (current state depends only on previous)
Observation Assumption (evidence depends only on current state)
Applications (Speech Recognition, Robot Tracking)
Inference Tasks
Filtering (current state given evidence)
Smoothing (past state given entire sequence)
Evaluation (probability of observation sequence)
Decoding (most likely state sequence)
Learning (model parameters)
Forward Algorithm, Viterbi Algorithm (more efficient)
Markov Decision Processes (MDPs)
Actions affect world state
Components: States, Actions, Transition Model, Reward Function
Solution: Policy (mapping states to actions)
Maximize Expected Utility (discounted rewards)
Bellman Equation (recursive relationship)
Solving MDPs: Value Iteration, Policy Iteration
Expectiminimax Algorithm
For Stochastic Games (dice throwing)
Maximizes Min/Max of Expected Value
Uses MAX, MIN, Chance Nodes
Useful methods: Alpha-Beta pruning, Evaluation function
Imperfect Information & Belief States
Agent doesn't know true state
Belief State (set of possible states given past actions/observations)
Update Equations: PREDICT(b,a), UPDATE(b,o)
cqarnwnxyuno597z09q8thb07jhwcfg
2718928
2718926
2025-06-17T22:12:31Z
TTencoder
3003655
2718928
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
== Generating Experiences ==
=== Estimating the Difficulty of an Episode ===
def estimate_difficulty(self, game_state: GameState) -> int:
"""Estimate difficulty according to heuristic provided by user."""
matrix = game_state.location_matrix
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown_locations = sum(
sum(1 for loc in matrix[suit] if loc == "?") for suit in suits_of_interest
)
tableau_bonus = sum(1 for ace in matrix[0] if isinstance(ace, str) and ace.startswith("T"))
twos = matrix[1]
for idx, two in enumerate(twos):
if isinstance(two, str) and two.startswith("T"):
if isinstance(matrix[0][idx], str) and matrix[0][idx].startswith("T"):
tableau_bonus += 1
difficulty = max(0, 4 + unknown_locations - max(0, tableau_bonus))
difficulty = min(MAX_DIFFICULTY, difficulty)
return int(difficulty)
=== The Procedural Generation of Episodes ===
def generate_balanced_games(self, target_per_difficulty: int = 20, batch_size: int = 777, progress_callback: "Callable[[Dict[int, int]], None]" = None, *, min_difficulty: int = 0) -> Dict[int, int]:
"""Generate and persist games until each difficulty bucket is filled.
This implements the algorithm provided by the user. Games are stored
in sub-directories named after their estimated difficulty inside
*self.output_directory*.
The function prints progress information and finally returns a
mapping ``difficulty -> count``.
"""
# Only consider difficulties >= min_difficulty
bins: Dict[int, int] = {d: 0 for d in range(min_difficulty, MAX_DIFFICULTY + 1)}
SENTINEL = 12 + 1 # Matches the user-provided pseudo-code condition
while any(v < target_per_difficulty for v in bins.values()):
last_seen_bins = bins.copy()
for _ in range(batch_size):
game_state = self.generate_game_state()
difficulty = self.estimate_difficulty(game_state)
# Skip difficulties below threshold
if difficulty not in bins or bins[difficulty] >= target_per_difficulty:
continue
file_hash = hashlib.md5(str(game_state).encode()).hexdigest()
unique_string = file_hash[:10]
output_dir = os.path.join(self.output_directory, str(difficulty))
self.save_game_state_to_file(game_state, output_dir, unique_string)
bins[difficulty] += 1
# Show progress if something changed in this batch
if bins != last_seen_bins:
for b, v in bins.items():
print(b, v)
print("Total game states saved:", sum(bins.values()))
print()
if progress_callback is not None:
progress_callback(bins)
return bins
== Analyzing Experiences ==
=== Breadth-First Search Analysis ===
=== Depth-First Search Analysis ===
=== Pruning the Search Tree ===
==== The Prioritization of Moves ====
== Formalizing Klondike as an MDP/POMDP ==
=== States ===
* Suit Piles (highest card rank)
* Build Piles (Tableau - open/closed, unknown count)
* Stock/Waste Pile (ordered list, cycle count)
* Undo State (availability, last action)
* Game Progress (win/loss flag)
=== Actions ===
==== Standard Moves (e.g., Tableau to Foundation, Stock to Waste) ====
==== Undo Action (reveals hidden info) ====
=== Rewards ===
==== Primary Reward (+1 Win, -1 Loss) ====
==== Reward Shaping (Intermediate Rewards) ====
===== Positive (opening new card, to Foundation, clearing pile) =====
===== Negative (blocking options, excessive stock cycling) =====
== AI Approach: Deep Reinforcement Learning (DRL) & Q-Learning ==
Reinforcement Learning (RL) Fundamentals
Agent interacts with Environment
Maximize Reward
Agent (learner, model)
Environment (board, response)
State (condition)
Action (valid moves)
Reward (intrinsic value)
Value (long-term expected reward)
Policy (states to actions mapping)
Optimal Policy (maximizes total reward)
Markov Decision Process (MDP) Formulation
Klondike as MDP
Components: States, Actions, Transition Model, Reward Function
Markov Assumption
Bellman Equation
Q-Learning
Model-free RL
Learns 'Quality' (Q-function)
Does not require explicit environment model
Handles stochastic transitions/rewards
Iterative Algorithm (Q(s,a) update)
Deep Q-Learning (DQN)
Combines Q-learning with Deep NN
Estimates Q-values for complex spaces
Exploration vs. Exploitation
Trade-off
Epsilon-greedy Policy (random vs. greedy)
Epsilon Decay
Optimistic Initial Conditions (encourage exploration)
Neural Networks (Function Approximation)
Approximates Q(s,a) with parameterized function
Training: Minimizes Mean-Squared Error (MMSE)
Instability Solutions: Freeze target Q network, Experience Replay
Architectures: CNN, MLP, LSTM for temporal data
Phase 3: DRL Implementation & Training
3.1 Deep Q-Network (DQN) Implementation
Neural Network Architecture (PyTorch)
CNN/MLP for Q-function
Input Layer (game state vector)
Hidden Layers (LSTM for temporal/partial states)
Output Layer (Q-values for actions)
Training Loop (TD-Learning)
Initialize Q-network weights
Experience Replay (store s,a,r,s' tuples, sample mini-batches)
Target Network (stabilizes training)
Q-value Update Rule
Hyperparameters (alpha, gamma)
3.2 Exploration-Exploitation Strategy
Epsilon-Greedy Policy
Epsilon Decay Over Time
3.3 Curriculum Learning Strategy
Start with Simpler Variations
Motivational Curriculum Learning (shape rewards)
Filter & Categorize Episodes by Similarity
Phase 4: Advanced Optimizations & Evaluation
4.1 Refined Reward Shaping & Feature Engineering
Dynamic Reward Shaping
Expanded Features
Playable Moves Count
Stock/Waste Potential Moves
Blocking Cards
Potential Infinite Loops
Heuristic Evaluations (expert strategies)
4.2 Performance Metrics & Evaluation
Win Rate
Time to Solve
Exploration Efficiency
Solvability Detection
Benchmark Against Humans/Existing Solvers
4.3 Continuous Improvement Loop
Analyze Performance Data
Identify Weaknesses
Fine-tune Model (rewards, data, retraining)
# Key Techniques & Algorithms
Monte Carlo (MC) Methods
Complex Combinatorial Optimization
Approximate State/Action Values
Rollout Method
Amplifies Heuristic Performance
Iterated in deterministic MDPs
Nested Monte Carlo Search
Nested Rollout Policy Adaptation
UCT (Upper Confidence Bound for Trees)
Monte-Carlo Planning Algorithm
Builds Sparse Look-ahead Tree
Balances Exploration & Exploitation
Successful in complex games (Go)
Sparse UCT (limits sampling calls)
Value & Policy Iteration
Iterative Methods to solve MDPs
Value Iteration (calculates state values)
Policy Iteration (policy evaluation & improvement)
Search Algorithms
Brute Force
Backtracking
Uniform Cost Search (UCS)
Breadth-First Search (BFS)
Depth-First Search (DFS)
A* Search (g(n) + h(n), admissible heuristic)
Multistage Nested Rollouts (different heuristics/search magnitude)
Reward Shaping
Provides additional rewards to guide behavior
Motivational Curriculum Learning
Self-Play Curriculum
Agents train against diversified pool of opponents (past selves)
Overcomes plasticity loss
Used in AlphaGo/AlphaZero
Experience Replay
Stores historical experiences (s,a,r,s')
Randomly samples mini-batches
Stabilizes learning, reduces correlations
Temporal Difference (TD) Learning
Actor-Critic Algorithm
Trains two NNs: 'critic' (Q-values) and 'actor' (policy)
Often converges faster/more reliably
Imitation Learning
Agent learns by imitating expert demonstrations
Useful in high-dimensional spaces or difficult reward formulation
Can initialize Q-learning/policy learning
Expectation Maximization (EM) Algorithm
For Parameter Learning from Partially Observed Data
Uses 'Expected Counts'
Iterative (Initialize, Partial Days, Expected Counts, Re-estimate)
Always Converges
Results depends on initial guess
Maximum Likelihood Estimation (MLE)
For Parameter Learning from Fully Observed Data
Maximizes Likelihood of Observations
Estimates parameters based on observed frequencies
Structure Learning (Bayesian Networks)
Knowledge Engineering (ask experts)
Causal Analysis (find graphs with fewest edges)
Hidden Markov Models (HMMs)
Probabilistic environments evolve over time
Observable state Xt, Observable evidence Et
Markov Assumption (current state depends only on previous)
Observation Assumption (evidence depends only on current state)
Applications (Speech Recognition, Robot Tracking)
Inference Tasks
Filtering (current state given evidence)
Smoothing (past state given entire sequence)
Evaluation (probability of observation sequence)
Decoding (most likely state sequence)
Learning (model parameters)
Forward Algorithm, Viterbi Algorithm (more efficient)
Markov Decision Processes (MDPs)
Actions affect world state
Components: States, Actions, Transition Model, Reward Function
Solution: Policy (mapping states to actions)
Maximize Expected Utility (discounted rewards)
Bellman Equation (recursive relationship)
Solving MDPs: Value Iteration, Policy Iteration
Expectiminimax Algorithm
For Stochastic Games (dice throwing)
Maximizes Min/Max of Expected Value
Uses MAX, MIN, Chance Nodes
Useful methods: Alpha-Beta pruning, Evaluation function
Imperfect Information & Belief States
Agent doesn't know true state
Belief State (set of possible states given past actions/observations)
Update Equations: PREDICT(b,a), UPDATE(b,o)
ag8lchfahmvk47yehcxomn4kcchu7yt
2718929
2718928
2025-06-17T22:20:33Z
TTencoder
3003655
2718929
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== 1. Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalises those that already expose them:
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== 2. Analysing Experiences ===
After a game ends we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== 3. Formalising Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== 4. Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
gkg7v6jtu3ei0e4bzpdu4xcjw9ckjqy
2718930
2718929
2025-06-17T22:25:25Z
TTencoder
3003655
2718930
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== 1. Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== 2. Analysing Experiences ===
After a game ends we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== 3. Formalising Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== 4. Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
ibmh4lmu73i03eznbhek9eikqk9dr9r
2718931
2718930
2025-06-17T22:28:42Z
TTencoder
3003655
2718931
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== 1. Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== 2. Analysing Experiences ===
After a game ends we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== 3. Formalising Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== 4. Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
ox8kialavkohg1jom43uv6sj3knr7of
2718932
2718931
2025-06-17T22:40:13Z
TTencoder
3003655
2718932
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that may be at or above human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== 1. Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== 2. Analysing Experiences ===
After a game ends we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== 3. Formalising Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== 4. Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
ex1q9yrik2xp5vnr36ejsvejsl6ykei
2718933
2718932
2025-06-17T22:42:57Z
TTencoder
3003655
2718933
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== 1. Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== 2. Analysing Experiences ===
After a game ends we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== 3. Formalising Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== 4. Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
6sv9cwuyrv03vkbs96yz7yeiwuyula2
2718935
2718933
2025-06-17T22:46:58Z
TTencoder
3003655
2718935
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== 3Formalising Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
q7dhxoqu8rb2nx63nbo7ejsqkugqscv
2718936
2718935
2025-06-17T22:47:15Z
TTencoder
3003655
2718936
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
<!-- END OF DOCUMENT -->
dwkvn78fmre1ofcdas5iitpz70ekmnb
2718937
2718936
2025-06-17T22:54:56Z
TTencoder
3003655
2718937
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
== Game Definition ==
=== Draw‑3 Klondike ===
When the stock is tapped, three cards are dealt face‑up onto the waste. Only the top card is directly playable.
{| class="wikitable" style="margin:0 auto; text-align:center;"
+ Key distinction on the target platform
[[File:Fully observable.png
200px]]
[[File:Partially_observable.png
200px]]
-
Fully observable waste
''Partially'' observable waste
}
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
ta3q4g2ogy8pc2ukucr8ls11s1xur39
2718939
2718937
2025-06-17T22:55:37Z
TTencoder
3003655
2718939
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves left to be made. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
2hyj5bn3m6yu9jbv6s9hcda2mtdqq5f
2718941
2718939
2025-06-17T23:13:39Z
TTencoder
3003655
/* Knowing When to Stop */
2718941
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available. Knowing when to stop is a trivial matter of observing the last few moves/steps and checking if any of those steps were productive.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
rl0lsskhrrt6khi6ee3hlq0hjrn2hss
2718942
2718941
2025-06-17T23:15:12Z
TTencoder
3003655
/* Knowing When to Stop */
2718942
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available. Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
m0s3l69u2ceu01y5wawesskb53vabzb
2718943
2718942
2025-06-17T23:15:52Z
TTencoder
3003655
/* Knowing When to Stop */
2718943
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
* The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
* Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
5abs9diltouong44gc7jk9sdj0sydx1
2718944
2718943
2025-06-17T23:16:22Z
TTencoder
3003655
/* Knowing When to Stop */
2718944
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
1v82gqgmn4borhnh9s3184sfuxa8dez
2718945
2718944
2025-06-17T23:17:18Z
TTencoder
3003655
/* Knowing When to Stop */
2718945
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundaiton.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
t542buwbzyk7fdmlixgynv7giu2qt9h
2718946
2718945
2025-06-17T23:17:29Z
TTencoder
3003655
/* Knowing When to Stop */
2718946
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
tdar730pv3she4i8to8vyhxsmd242bs
2718947
2718946
2025-06-17T23:23:14Z
TTencoder
3003655
/* Primary Metrics of Success */
2718947
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
1lqwj5wqy9rdue59ecdrw86d609jd8s
2718948
2718947
2025-06-17T23:28:17Z
TTencoder
3003655
/* The Draw-3 Klondike Variant */
2718948
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
==== The "Wiggle" Trick ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
59s93p68s24on3gck8m0zem0eif2fkr
2718949
2718948
2025-06-17T23:28:30Z
TTencoder
3003655
/* The Draw-3 Klondike Variant */
2718949
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
==== The "Wiggle" Trick ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
The following sections outline the specific rules governing the Target Platform.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
3870kjau1oyf4mtjqbp3r0v6e24xqqp
2718950
2718949
2025-06-17T23:30:30Z
TTencoder
3003655
/* Defining Terms of the Game */
2718950
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Trick ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
qtrfl4gb1jutfn4xyi9irs2vpfi9v01
2718951
2718950
2025-06-17T23:30:51Z
TTencoder
3003655
/* The "Wiggle" Trick */
2718951
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
A card played from the waste can be moved to either the tableau or the foundation, but once played, it cannot be returned to the waste or stock—unless the player uses the Undo function to reverse a preceding move.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
8noas0cte0oq993liiyyhn2gq9njnd4
2718952
2718951
2025-06-17T23:32:05Z
TTencoder
3003655
/* Undo */
2718952
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
=== Primary Metrics of Success ===
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
tt0v8hjxdzdaeg73hkdczoh0oeopkvu
2718953
2718952
2025-06-17T23:32:28Z
TTencoder
3003655
/* Primary Metrics of Success */
2718953
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
== Objective ==
Develop an agent that, through [[w:Reinforcement_learning|reinforcement learning]], consistently achieves super‑human scores.
On the chosen platform the bottom two waste cards reveal rank and colour but not suit. This hidden information hinders perfect planning, but three useful cues remain:
'''Peek''' – Slightly drag the top waste card to momentarily expose the suit beneath.
'''Deduction''' – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
'''Undo''' – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
=== Platform Rules and Constraints ===
Undo – one consecutive move may be reverted.
Timer – each game starts at 300 s; the unused time converts to a bonus proportional to the base score.
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
jlva3yd2c5z5e45o9s453gok7jjv6uc
2718954
2718953
2025-06-17T23:33:12Z
TTencoder
3003655
/* Objective */
2718954
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimisation
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
5hb7rjulfbguf9k2l9sjs7x6c3pzi93
2718958
2718954
2025-06-18T01:01:42Z
TTencoder
3003655
/* Supporting Toolbox */
2718958
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Learning Algorithm ===
We use a two-network Deep Q-Learning architecture:
# '''Online network''' — updated every mini-batch by Temporal Difference learning.
# '''Target network''' — a lagged copy that stabilises the bootstrap target.
Key training tricks:
* Prioritised replay with stratified sampling over difficulty buckets.
* ε-greedy exploration where ε decays ''per difficulty level''; harder games retain higher exploration longer.
* Occasional '''self-play''' tournaments: the agent replays its own past solutions with randomised order to fight catastrophic forgetting.
=== 5. Toolbox of Supporting Algorithms ===
Below is a non-exhaustive list of classical methods that we reference elsewhere in this document. Each is evaluated in ablation studies but is ''not'' part of the core training loop.
* Monte-Carlo Tree-Search (UCT, Nested Roll-Out)
* Value / Policy Iteration for small abstracted state spaces
* Search techniques (A*, UCS) for single-deal tactical solvers
* Imitation Learning from expert play-throughs
* Actor–Critic variants for future multi-agent extensions
=== Scoring Components ===
;Foundation build
: +10 per card moved to the foundation; temporary withdrawals are allowed but must be planned.
;Card revelation
: +5 per previously hidden card flipped or inferred.
;Efficiency
: Avoid non‑productive moves; terminate once progress stalls to capture the time bonus.
== Agent Design ==
The environment is encoded as a belief‑state MDP; once all hidden cards are known it reduces to a fully‑observable MDP.
=== State Representation ===
Tableau stacks (ordered lists)
Foundation heights (4 integers)
Stock/Waste order plus cycle count
Undo availability flag
Location Matrix – 4 × 13 table of {unknown, stock, waste‑''i'', tableau‑''j'', foundation}
=== Critical Features ===
Location Matrix – continuously updated; enables probability‑weighted search.
Look‑ahead planning – encode candidate lines as linked lists; value‑estimate via roll‑outs.
Deadlock avoidance – learned patterns recorded in replay buffer.
== Experience Management ==
Solitaire deals vary widely in difficulty; curriculum learning keeps training efficient.
=== Curriculum Buffer ===
Generate random deals until each difficulty bucket is full.
=== Post‑mortem Analysis ===
BFS roll‑out depth – minimal moves to reproduce the win path
Dead‑end ratio – states with no legal forward moves
Move‑ordering gain – nodes pruned relative to naïve DFS
== Learning Algorithm ==
Two‑network DQN:
Online network – updated every mini‑batch (TD learning)
Target network – periodically synchronised
Training tricks:
Prioritised replay stratified by difficulty
ε‑greedy where ε decays per difficulty
Periodic '''self‑play''' tournaments to counter catastrophic forgetting
== Supporting Toolbox ==
Monte‑Carlo Tree Search (UCT, Nested Roll‑Out)
Value / Policy Iteration for reduced state spaces
Heuristic search (A*, UCS) for single‑deal optimization
Imitation learning from expert traces
Actor–Critic variants for future multi‑agent studies
53txk3c1a06tlqyhk6bjx8dcdh7cdm9
2718959
2718958
2025-06-18T02:02:20Z
TTencoder
3003655
2718959
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as an MDP ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
4kuavf1raqv1d1319i9ggrqlooypogy
2718960
2718959
2025-06-18T02:02:35Z
TTencoder
3003655
/* Formalizing Klondike as an MDP */
2718960
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* A game that provokes nostalgia. See: [[w:Microsoft_Solitaire|Microsoft Solitaire]]
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
d48hxqryt5fuodmfw0yg7eh2gtc1ve1
2718961
2718960
2025-06-18T02:03:23Z
TTencoder
3003655
2718961
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Managing the Complexity of Experience ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping we first score every newly-generated game according to a lightweight heuristic. The current implementation rewards deals that hide key cards and penalizes those that already expose them:
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
hk99qk27x7ettot7017p2ckge0y2kuh
2718962
2718961
2025-06-18T02:08:23Z
TTencoder
3003655
2718962
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
* Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
* Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
* Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
==== The "Wiggle" Peak ====
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
0ofh63ilyq3vvmr3z6l7mw3vgxog48s
2718963
2718962
2025-06-18T02:10:09Z
TTencoder
3003655
/* Defining Terms of the Game */
2718963
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid deadlocking moves.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
9jb0vlza8p44bdqwdwhxha0hxc89gxs
2718964
2718963
2025-06-18T02:10:40Z
TTencoder
3003655
/* Undo */
2718964
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid moves which lead to deadlock.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
562mxq031yd7p55ke02jqhft9jksxnj
2718965
2718964
2025-06-18T02:11:06Z
TTencoder
3003655
/* Undo */
2718965
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
We aim to evaluate the performance of our Agent on a Target Platform, which we interface with using electronic methods.
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
lql2g7h5kisr985l88mjfpnu3po230h
2718966
2718965
2025-06-18T02:11:42Z
TTencoder
3003655
/* Platform Rules and Constraints */
2718966
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
pd43129qk7sqhwhzdbv32z3i5azykdv
2718967
2718966
2025-06-18T02:13:49Z
TTencoder
3003655
/* The Draw-3 Klondike Variant */
2718967
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures: Foundation, Tableau, Waste, and Stock
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
9mmta92048ovc3x9jf4wy9a7z0q0mxo
2718968
2718967
2025-06-18T02:17:01Z
TTencoder
3003655
/* The Draw-3 Klondike Variant */
2718968
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
* Stock
* Waste
* Tableau
* Foundation
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
rgfxo7i6rd2of98cwb9i6noas2qgifg
2718969
2718968
2025-06-18T02:23:51Z
TTencoder
3003655
2718969
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 card each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
cw4ccqxpaomwocohw77yg78vetdea5r
2718970
2718969
2025-06-18T02:24:06Z
TTencoder
3003655
/* Stock */
2718970
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
gca7fqpzbgwsq7ylumou7e8xea2ehdu
2718972
2718970
2025-06-18T02:35:06Z
TTencoder
3003655
2718972
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
At the beginning of the game, we have no idea of the sequence of cards in the stock, nor its set composition.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of information.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
9gk5g4fmpnb2fz35gdjtkzox874pmip
2718973
2718972
2025-06-18T02:38:44Z
TTencoder
3003655
/* Stage 1: Unknown Stock */
2718973
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
At the beginning of the game, we have no idea of composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of information.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
9dhjhirciht5v1nkqqsyxmnyk05vm7a
2718974
2718973
2025-06-18T02:39:12Z
TTencoder
3003655
/* Stage 1: Unknown Stock */
2718974
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of information.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
4oi8f1kvvv59gcvbb2tbmhm4dbodq0o
2718975
2718974
2025-06-18T02:39:21Z
TTencoder
3003655
/* Stage 1: Unknown Stock */
2718975
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of the composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of information.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
7utesr0vz012wwqgl3ar3xtf869r5vg
2718976
2718975
2025-06-18T02:40:12Z
TTencoder
3003655
/* Stage 2: Revealing Hidden Information */
2718976
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of the composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of face-down cards.
The status/location of cards should be recorded to the location matrix.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
5n87m39j6i57jy4k3eepbdd6slgk0z0
2718977
2718976
2025-06-18T02:40:30Z
TTencoder
3003655
/* Stage 2: Revealing Hidden Information */
2718977
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of the composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of face-down cards.
The status/location of cards are recorded to the location matrix.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
4grf5y2u6qhsgssu8djf5d82wduac9p
2718978
2718977
2025-06-18T02:41:10Z
TTencoder
3003655
/* Stage 2: Revealing Hidden Information */
2718978
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed by unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of the composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of face-down cards.
The status/location of cards are updated to the location matrix for reference and inference.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
43bqqpa6rhyamumeyps1pmfkln5ggck
2718979
2718978
2025-06-18T02:43:14Z
TTencoder
3003655
/* Generating Experiences */
2718979
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed with unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of the composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of face-down cards.
The status/location of cards are updated to the location matrix for reference and inference.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
ktr4x6j39e9oapb1sb923vbtmqv8luq
2718980
2718979
2025-06-18T02:50:23Z
TTencoder
3003655
/* Which Cards Can Be Played? */
2718980
wikitext
text/x-wiki
{{Page tabs
| NOTOC = false
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 3
}}
== Maximizing Rewards in Solitaire ==
* This document aims to guide the reader through the development and production of a Solitaire Solver, specifically for the Draw-3 variant of Klondike.
* Such a Solver would aim to maximize its performance score, given any legal deal of the game.
* Our Solver targets a specific platform of interest, with its own set of rules and constraints.
* The development of this Strategic Agent may provide some value that is [[w:Concurrency|in parallel]] to [[w:Parallel_universe|other domains]].
== Mission ==
We aim to develop an Agent that [[w:Reinforcement_learning|learns from experience]] how to play Solitaire with optimal solutions, achieving scores that exceed standard human levels by a significant margin.
== Defining Terms of the Game ==
=== The Draw-3 Klondike Variant ===
The game, referred to as "Solitaire" for brevity, is specifically the "Draw-3 Klondike" variant. In this variant, when drawing from the stock to the waste, three cards are drawn at once.
The game is composed of these structures:
==== Tableau ====
* The term "Tableau" itself is sometimes used as a singular collective noun, referring to the entire area where the build piles are located.
* However, when referring to the individual components, the sources use "tableau stacks" or "build piles" in the plural, indicating there are multiple of them (seven, specifically). For example, the plan mentions implementing image processing to identify card positions on the "Tableau" and defines "Build Piles (Tableau)" as ordered lists of cards. The rules state there are "seven build piles".
* The instruction to establish consistent naming conventions explicitly uses "tableau_piles" as the agreed-upon precise naming.
==== Foundation ====
* Similar to Tableau, "Foundation" can be used as a singular collective noun.
* When referring to the individual components, the sources consistently use "Foundation piles" or "suit stacks" in the plural, indicating there are four of them. For instance, the reward shaping details positive rewards for moving a card to a "Foundation pile", and the rules state the goal is to organize all cards into "four foundation piles".
* The instruction to establish consistent naming conventions explicitly uses "foundation_stacks".
==== Stock ====
On an initial deal, the stock consists of 8 stacks of 3 cards each = 24 cards total.
Cards from the stock can be dealt to the Waste, and eventually cycled back into the stock.
Upon completion of a game, the stock becomes empty, consisting of zero cards.
==== Waste ====
{| class="wikitable" style="margin-left:auto; margin-right:auto; text-align:center"
|+ style="border: 1px solid black;" | Key Distinction
|-
| style="text-align:center" | [[File:Fully observable.png|200px]]
| style="text-align:center" | [[File:Partially_observable.png|200px]]
|-
| This platform provides a fully observable waste.
| This platform provides a partially observable waste.
|}
Our platform of interest provides a partially observable waste.
While the third card (the top card) is fully visible and playable, the first two cards (the bottom of the waste) are partially observable (information of the card is incomplete) and not playable.
This obfuscation of information creates a significant impedance in reaching an optimal solution.
What kind of information can be observed from the partially observable waste? Thankfully, it shows the ranks of each card, and the color of that rank (red or black). The suit, rank, and color of the top card (the third card) is fully observable. However, the suits of the second and first card are obscured by the top card. Wouldn't it be better if we knew the suits of the cards beneath it?
This hidden information hinders perfect planning, but three useful cues remain:
==== The "Wiggle" Peak ====
* 1. Peek – Slightly drag the top waste card to momentarily expose the suit beneath.
The platform of interest provides an interesting opportunity to circumvent the obfuscation. One "trick" that we can perform is to "wiggle" the third card out of place, not yet moving it to a foundation or tableau, but just enough to see the suit of the card beneath it. We then learn the suit of the second card. This provides information that could potentially be critical in reaching an optimal solution.
==== Logical Deduction ====
* 2. Deduction – Infer the hidden suit from complementary information (e.g. if ♥A is visible elsewhere, the hidden red Ace must be ♦A).
Although we cannot always visually observe the suit of the first card of the waste, its suit can be deduced if we know the locations of its color pair. For example, if we know that the Ace of Hearts is in the tableau, then by deductive reasoning, we also know that the red Ace in the waste is the Ace of Diamonds.
==== Undo ====
* 3. Undo – A single‑step undo is permitted and can both reveal information and back‑out of deadlocks.
The player is allowed to perform one adjacent Undo as a move. This action reverses the most recent move, returning any moved cards to their original positions. The Undo function provides the advantage of revealing hidden information—such as the locations of specific cards—while also allowing the player to avoid the moves which lead to deadlock.
=== Platform Rules and Constraints ===
==== Timer ====
Games on this platform are timed, with each game starting at 300 seconds. Ending the game early increases the Time Bonus, which is calculated as a fraction of the total Base Score.
== Primary Metrics of Success ==
The ultimate goal is to develop an Agent that achieves a reasonably high score, better than most humans.
The score is a metric provided by the platform of interest.
The final score is a composite of the base score and the time bonus. The time bonus is a fraction of the base score, which is different depending on if the game was won or not.
Some games are not winnable, but the Agent should aim to achieve the highest score in these games as well.
Ultimately, the Agent aims to find the optimal path to the highest achievable score, for any given deal.
==== Building the Foundations ====
Points are accrued for moving cards to the foundation. Sometimes it may be necessary to remove a card from the foundation in order to build tableaus. This requires planning ahead a few steps.
==== Revealing Hidden Information ====
Points are accrued for revealing information of the hidden game state. This involves moving tableau cards and flipping cards to their face-up (observable) status. Sometimes it may be strategically desirable to flip a card in a specific location.
==== Knowing When to Stop ====
The Agent should avoid non-productive moves whenever possible and should terminate the game early when there are no more productive moves available.
* Knowing when to stop may be a simple matter of observing the last few moves/steps and checking if any of those steps were productive. These are repetitive moves, such as cycling/dealing the stock or moving cards back and forth between the tableau/foundation.
* A sophisticated search Agent would be able to look ahead with rollouts and decide that there are no more productive moves.
Terminating the game earlier allows for a higher time bonus, which is critical in a competitive environment.
== Strategy ==
The strategy is to encode the game state information in such a way that an Agent would be able to make optimal decisions.
Essentially, this requires feature engineering, understanding and providing that information which is so critical for making these decisions.
The environment is encoded, and the Agent operates using a policy, a set of rules for prioritizing optimal paths, informed by those critical features.
=== Critical Features of Strategic Gameplay ===
==== Keep Track of Card Locations ====
We implement a Location Matrix, a table which allows the Agent to look-up and update the known/unknown status of cards by their suit and rank. It is critical to know if a certain card is in the stock/waste, or if it might be hidden (face-down) within the tableau, or face-up in the tableau.
An updated Location Matrix then allows the Agent to perform calculations and probabilistic planning for finding shortest paths and most-likely paths for rewards.
==== Plan Ahead ====
How do we encode decision-making for the Agent so that it plans ahead? Some moves are not immediately rewarding, but they may avoid deadlocks, and they may lead to optimal rewards. This is when we start to apply some concepts of reinforcement learning.
We encode it as a linked list.
==== Avoid Deadlocks ====
Avoiding deadlocks may be as simple as learning from experience.
== Navigating Game Trees ==
Solitaire produces an enormous variety of game trajectories. If every deal were treated equally, the replay buffer would quickly fill with positions that teach the agent very little—either trivially solvable or almost surely lost. We therefore classify, store and sample experiences in a way that keeps the training signal informative and balanced.
=== Generating Experiences ===
To decide ''which'' deals are worth keeping, we calculate an immediately perceptible difficulty rating for every deal, using a lightweight heuristic.
The higher the rating, the more difficult this deal is expected to be, for finding an optimal solution.
<center><math display="block">
d \;=\; \min\left(\,12,\; \max\bigl(0,\; 4 + u - b\bigr)\,\right)
</math></center>
where
* <math>u</math> is the number of hidden ("?") card locations among these key cards: Aces, Twos, Queens and Kings; and
* <math>b</math> is the '''tableau bonus''' — the count of Aces or Twos that are already face-up in the tableau.
The transformation first boosts the baseline by 4, subtracts any visible-card bonus, clips the intermediate score at 0, and finally caps the overall difficulty at 12.
<syntaxhighlight lang="python">
# heuristics.py
from typing import Dict
MAX_DIFFICULTY = 12 # inclusive
def estimate_difficulty(game_state: "GameState") -> int:
"""Return a value in [0, MAX_DIFFICULTY] (higher → harder)."""
matrix = game_state.location_matrix # suit × rank table
suits_of_interest = [0, 1, -2, -1] # aces, twos, queens, kings
unknown = sum(
loc == "?" for suit in suits_of_interest for loc in matrix[suit]
)
tableau_bonus = sum(
1 for suit in (0, 1) for card in matrix[suit]
if isinstance(card, str) and card.startswith("T")
)
score = max(0, 4 + unknown - tableau_bonus)
return min(MAX_DIFFICULTY, score)
</syntaxhighlight>
A separate routine then ''fills buckets'' so that every difficulty level is represented:
# While any bucket contains fewer than the target number of deals:
## Generate a random deal.
## Compute its difficulty.
## If the corresponding bucket is not yet full, persist the deal to disk.
This curriculum-style dataset keeps training fresh while preventing the agent from being overwhelmed with unsolvable positions.
=== Analyzing Experiences ===
After a game ends, we perform an ''offline'' pass that extracts additional learning signals:
* '''Breadth-First Roll-Out Depth''' — minimal number of moves needed to reproduce the finished trajectory.
* '''Dead-end Detection''' — percentage of visited states that have no legal moves other than ''Undo''.
* '''Move Ordering Gain''' — how much a heuristic would have reduced the explored tree.
These metrics are logged and, if desired, can be fed back into the difficulty estimator.
=== Formalizing Klondike as a Markov Decision Process ===
The environment is treated as a fully observable Markov Decision Process once hidden cards are flipped; until then it is partially observable. We therefore maintain a belief state, but training proceeds exactly as in standard DQN.
* '''State''' — concatenation of (a) tableau stacks, (b) foundation heights, (c) stock/waste order & cycle, (d) availability of ''Undo''.
* '''Action''' — any legal card move ''or'' an ''Undo''.
* '''Transition''' — deterministic given an action and the current belief.
* '''Reward''' — shaped; +1 for a win, −1 for a loss, scaled bonuses for revealing cards and building foundations.
=== Looking Ahead to Prioritize Moves ===
The truth is that we should avoid exploring every possible move, due to the combinatorial explosion.
Instead, we should seek to provide a weighted score to each potential move, favoring moves that may lead to higher future rewards, pruning branches of moves that are not so promising. How can we do this in a sophisticated manner?
Let's try to define precisely the logic that is needed to succeed at the game.
==== Separate the Game into Stages ====
===== Stage 1: Unknown Stock =====
Upon initialization of the game, we start without knowledge of the composition nor the sequence of cards within the stock.
===== Stage 2: Revealing Hidden Information =====
Make moves, prioritizing the revelation of face-down cards.
The status/location of cards are updated to the location matrix for reference and inference.
===== Stage 3: Build the Foundations =====
Make moves, prioritizing the ordered building of the foundation piles.
Ensure that the spread of ranks is not too wide, prioritizing to get all Aces in the Foundation early on.
The risk of deadlock is high in this stage.
===== Stage 4: Finisher =====
At a certain point, the finishing moves become easier to analyze and execute, since the knowledge of the hidden state becomes more accurate.
==== Which Card is Needed? ====
Look at each of the tableaus and memoize the card that is needed to advance that tableau. Specify the rank and color.
==== Which Cards Can Be Played? ====
Look at all structures, most particularly the stock/waste, but also the tableaus, to see which cards can be moved.
We can compress the space of "moves" significantly if we don't consider "dealing 3 cards" to be a move. Instead, we consider the sequence of dealing and playing a card from the waste/stock to be one move.
Let's develop the function that looks at a memorized observations of cards in the stock, then determines the possible 3-ply sequences of cards that are playable. These 3-ply sequences could be compared to the tableau in probabilistic planning.
ds90apvhmt8fsg74dtva6g9l0qpvdq1
User:TTencoder/GettingRich
2
322078
2718915
2718814
2025-06-17T21:01:18Z
TTencoder
3003655
2718915
wikitext
text/x-wiki
{{Page tabs
| [[User:TTencoder|Index]]
| [[User:TTencoder/GettingRich|Getting Rich]]
| [[User:TTencoder/Solitaire|Solitaire]]
| This = 2
}}
== The Science of Getting Rich ==
Published in 1910, [[w:The_Science_of_Getting_Rich|''The Science of Getting Rich'']] presents wealth as a learnable discipline guided by clear principles. Wallace D. Wattles contends that every person is entitled to abundance and that prosperity enables fuller contribution to self and society.
This page distills his key ideas for quick study.
=== '''Wealth Is Essential to Full Living''' ===
''"It is not possible to live a really complete or successful life unless one is rich."''
In 2025 our lives run on global networks and rapid change. Developing talent, serving others, or pursuing truth all rely on adequate resources. Money funds those possibilities.
''"Man’s right to life means his right to have the free and unrestricted use of all the things which may be necessary to his fullest mental, spiritual, and physical unfoldment."''
Each person carries a duty to grow. Seeing wealth as a tool for expansion fosters progress and curbs excess.
=== '''The Certain Way: A Law, Not a Guess''' ===
''"There is a Science of getting rich, and it is an exact science, like algebra or arithmetic."''
Building riches follows dependable rules. Applied steadily, those rules produce results as predictably as gravity guides water downhill.
''"Getting rich is the result of doing things in a Certain Way."''
Shared backgrounds often yield different outcomes. Mindset expressed through method separates success from stagnation.
=== '''Unlimited Opportunity''' ===
''"No man is kept poor because opportunity has been taken away from him... There is abundance of opportunity for the man who will go with the tide."''
Digital platforms, open-source tools, and worldwide marketplaces create more avenues to prosperity than any era before. Whether you code, teach, farm, design, or consult, today’s instruments amplify effort.
Limits begin in disbelief and linger in hesitation.
=== '''Thought Shapes Substance''' ===
''"A thought, in this substance, produces the thing that is imaged by the thought."''
Every bridge, song, or startup began as an idea. Focused imagination, joined with will, turns concepts into form.
''"Man can form things in his thought, and, by impressing his thought upon formless substance, can cause the thing he thinks about to be created."''
Picture, plan, produce—this creative sequence rests on attention and belief, not mysticism.
=== '''Right Action, Daily and Exact''' ===
''"Act now. There is never any time but now, and there never will be any time but now."''
Goals remain abstract until movement starts. Each day offers moments suited to advance your vision. Acting in those moments keeps momentum; waiting blurs intent.
Work with what you have, refine as you progress.
=== '''Exchange that Increases Life''' ===
''"Give every man more in use value than you take from him in cash value."''
Enduring wealth grows from exchanges that enlarge life for everyone involved. A course that saves hours, an app that reduces stress, or a service that extends reach all qualify. Contribute value and value returns.
=== '''Gratitude Is Alignment''' ===
''"The grateful mind is constantly fixed upon the best; therefore it tends to become the best... and will receive the best."''
Thankfulness fixes attention on possibility. A grateful mind chooses increase over loss, drawing support from people and circumstances.
=== '''A Practical Method''' ===
The practice is simple:
Picture the result in vivid detail.
Keep the vision with steady faith and clear intent.
Act each day in line with that picture—efficiently, gratefully, and without contradiction.
Hold attention on the vision, not on appearances of scarcity. This approach is the Certain Way.
=== '''Closing Words''' ===
''"The universe desires you to have everything you want to have. Nature is friendly to your plans."''
Growth lies at the heart of nature. Your wealth expands options for everyone you meet. Think clearly, act purposefully, and offer more than you receive.
''"You can render God and humanity no greater service than to make the most of yourself."''
Rise to your best, and you find both wealth and freedom.
jcyymuckohjqoa9igibibfwbtssbt6b
User:Noalolonaharo
2
322081
2718836
2025-06-17T14:01:12Z
Noalolonaharo
3003186
New resource with "hello."
2718836
wikitext
text/x-wiki
hello.
308lq9fpzqbweu0kyxheb7m5zzwkgln
User:Noalolonaharo/sandbox
2
322082
2718837
2025-06-17T14:03:02Z
Noalolonaharo
3003186
New resource with "hello."
2718837
wikitext
text/x-wiki
hello.
308lq9fpzqbweu0kyxheb7m5zzwkgln
User:Noalolonaharo/sandbox/firstsandboxpage
2
322083
2718838
2025-06-17T14:03:50Z
Noalolonaharo
3003186
New resource with "this is my first sandbox page"
2718838
wikitext
text/x-wiki
this is my first sandbox page
3h5wtudgfd0rxnj8uasueg0ctl7csfe
User:Noalolonaharo/sandbox/mydirectory/files
2
322084
2718839
2025-06-17T14:05:17Z
Noalolonaharo
3003186
New resource with "my directory."
2718839
wikitext
text/x-wiki
my directory.
m16brg4cddbhlwqalpxvwot86trhogd
AIXworkbench/Tools-and-Community
0
322085
2718850
2025-06-17T17:22:05Z
Stevesuny
294667
created page for tools and community resources
2718850
wikitext
text/x-wiki
Software:
* Docker
* Open WebUI
Learning Resources
* Digital Brain Base
AIXworkbench Resources
* [https://discord.gg/CbPtc9m7 AIX Discord] has Workbench category
* Wikiversity
* Github
* YouTube
* Zotero https://www.zotero.org/groups/aix-workbench
trc0o866irn5u1q60a9p1vhwh64lqnr
2718864
2718850
2025-06-17T17:51:16Z
Stevesuny
294667
2718864
wikitext
text/x-wiki
{{:AIXworkbench/Wikiversity/navbar}}
=== Next Steps ===
New
=== Community ===
Learning Resources
* Digital Brain Base
AIXworkbench Resources
* [https://discord.gg/CbPtc9m7 AIX Discord] has Workbench category
* Wikiversity
* Github
* YouTube
* Zotero https://www.zotero.org/groups/aix-workbench
=== Tools ===
==== Software: ====
* Docker
* Open WebUI
* Git Hub
* Ollama
k0hv8rx9waq9cx4ho161n2693pkocqm
AIXworkbench/Wikiversity/navbar
0
322086
2718852
2025-06-17T17:28:11Z
Stevesuny
294667
created page for use as transcluded object
2718852
wikitext
text/x-wiki
[[AIXworkbench/Tools-and-Community|Tools and Community]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
k1m49btwrlkcglda8dnc8plgldtc6de
2718857
2718852
2025-06-17T17:35:46Z
Stevesuny
294667
added about to navbar
2718857
wikitext
text/x-wiki
[[AIXworkbench/About|About]] •
[[AIXworkbench/Tools-and-Community|Tools and Community]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
8e109u4ru7s4ugnhmluol5nqrki1tqv
2718862
2718857
2025-06-17T17:47:24Z
Stevesuny
294667
2718862
wikitext
text/x-wiki
'''workbench''' || [[AIXworkbench/About|About]] •
[[AIXworkbench/Tools-and-Community|Tools and Community]] •
[[AIXworkbench/People|People]] • [[AIXworkbench/Papers|Papers]] • [[AIXworkbench/Working-Groups|Working Groups]]
2fu008ukk9khf36jz0zawo3phfcgqms
Talk:AIXworkbench
1
322087
2718859
2025-06-17T17:40:00Z
Stevesuny
294667
/* Open WebUI */ new section
2718859
wikitext
text/x-wiki
== Open WebUI ==
Need to characterize this product and add it to https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages so that we can cite it in context. [[User:Stevesuny|Stevesuny]] ([[User talk:Stevesuny|discuss]] • [[Special:Contributions/Stevesuny|contribs]]) 17:40, 17 June 2025 (UTC)
nzf1rd1mmzkjjysfdzpv4ywj0o1hwah
2718860
2718859
2025-06-17T17:41:33Z
Stevesuny
294667
/* Open WebUI */
2718860
wikitext
text/x-wiki
== Open WebUI ==
Need to characterize Open WebUI and add it to https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages so that we can cite it in context. [[User:Stevesuny|Stevesuny]] ([[User talk:Stevesuny|discuss]] • [[Special:Contributions/Stevesuny|contribs]]) 17:40, 17 June 2025 (UTC)
3l7monuj9ht32kh6k62qqu1u0bgdxkd
Palestinian campus occupations of 2024
0
322088
2718867
2025-06-17T18:24:26Z
Jaredscribe
2906761
Jaredscribe moved page [[Palestinian campus occupations of 2024]] to [[User:Jaredscribe/Palestinian campus occupations of 2024]]: This was a draft, I shouldn't have published it in the first place
2718867
wikitext
text/x-wiki
#REDIRECT [[User:Jaredscribe/Palestinian campus occupations of 2024]]
a4q04eztpj2tvick54p4an3px8atq8a
Talk:Palestinian campus occupations of 2024
1
322089
2718869
2025-06-17T18:24:26Z
Jaredscribe
2906761
Jaredscribe moved page [[Talk:Palestinian campus occupations of 2024]] to [[User talk:Jaredscribe/Palestinian campus occupations of 2024]]: This was a draft, I shouldn't have published it in the first place
2718869
wikitext
text/x-wiki
#REDIRECT [[User talk:Jaredscribe/Palestinian campus occupations of 2024]]
mj6a3q0h5nd69raqa00gehqfn8t2vwh
User:Stevesuny/sandbox/username
2
322090
2718873
2025-06-17T19:02:33Z
Stevesuny
294667
changed to using {{USER}}
2718873
wikitext
text/x-wiki
{{#if:{{USER}}|{{USER}}|Guest}}
19yrljfczkvj0vrv91oofr7eodeiuqy
2718874
2718873
2025-06-17T19:07:49Z
Stevesuny
294667
2718874
wikitext
text/x-wiki
{{User|Example}}
[[aixworkbench/people/{{USERNAME}}]]
qh6jmldp4wcjwze998hw0d6jn3vr0yt
AIXworkbench/Papers/Building-the-Workbench/What-is-the-AIXworkbench
0
322091
2718891
2025-06-17T19:46:49Z
Stevesuny
294667
added beginnings of description to aix-workbench
2718891
wikitext
text/x-wiki
The AIXworkbench is built on Open WebUI, and adds
* Policies
* Knowledge Bases
* Additional functionality
** Ability to interact with Git Hub repositories to replicate experiences with LLMs, including access to previous prompts and responses, knowledge bases, and other indicators of "working with AI"
ayad033s1utdczejjz71typny2isjlh
AI-Assisted Evaluation of Cosmological Theories
0
322093
2718984
2025-06-18T06:11:17Z
Ruud Loeffen
2998353
Initial creation of project page under correct title
2718984
wikitext
text/x-wiki
= '''AI-Assisted Evaluation of Cosmological Theories''' =
== '''Introduction''' ==
This Wikiversity project explores, compares, and evaluates the most important theories concerning the origin, structure, and evolution of the universe — including gravity, cosmic expansion, planetary formation, and the emergence of matter and life-supporting systems.
We adopt a spirit of '''collaboration over competition''' and '''synthesis over supremacy'''. Rather than promoting or defending one specific theory, this project seeks to identify and combine the strongest components of multiple frameworks into a more coherent and testable whole.
Artificial Intelligence tools, including language models such as ChatGPT, are used to collect, analyze, and structure information. Human contributors serve as critical reviewers — identifying omissions, inconsistencies, or overlooked insights. The work is open, traceable, and versioned.
tcxp42vpbxi6ihelrw2620unf6huxs1
2718985
2718984
2025-06-18T06:15:40Z
Ruud Loeffen
2998353
add content Goals and Chapters
2718985
wikitext
text/x-wiki
= '''AI-Assisted Evaluation of Cosmological Theories''' =
== '''Introduction''' ==
This Wikiversity project explores, compares, and evaluates the most important theories concerning the origin, structure, and evolution of the universe — including gravity, cosmic expansion, planetary formation, and the emergence of matter and life-supporting systems.
We adopt a spirit of '''collaboration over competition''' and '''synthesis over supremacy'''. Rather than promoting or defending one specific theory, this project seeks to identify and combine the strongest components of multiple frameworks into a more coherent and testable whole.
Artificial Intelligence tools, including language models such as ChatGPT, are used to collect, analyze, and structure information. Human contributors serve as critical reviewers — identifying omissions, inconsistencies, or overlooked insights. The work is open, traceable, and versioned.
== '''Project Goals''' ==
To gather and compare a wide range of mainstream and alternative theories from physics, cosmology, geology, (bio)chemistry, and related disciplines.
To define and apply clear evaluation criteria such as empirical adequacy, internal coherence, predictive power, and cross-disciplinary compatibility.
To use AI-assisted synthesis (via ChatGPT) to identify overlaps, contradictions, and possible integrations among competing models.
To gradually formulate a plausible, testable, and inclusive theoretical framework, blending the strongest validated insights from multiple sources.
== '''Why This Project''' ==
The scientific community often favors established theories while marginalizing alternatives, regardless of their explanatory value. Many insights from geology, cosmology, or systems science remain siloed or dismissed due to lack of institutional endorsement.
This project was launched to provide an open-access, bias-aware platform where '''all serious theories''' can be compared based on their merits — not on their academic status.
== '''Method and Roles''' ==
'''ChatGPT (or similar LLMs)''' will be used to perform most of the analytical work: summarizing theories, comparing predictions, and drafting chapter content.
'''Human contributors''' are invited to:
** Follow the process
** Suggest edits or corrections
** Critically review AI-generated outputs
** Ensure that the project remains faithful to its goals and criteria
All edits and comments are welcome on the Talk page or within each chapter section.
== '''How to Participate''' ==
If you wish to contribute:
Simply read the chapters as they develop
Use the Talk pages to share your feedback
Suggest additional theories or references for inclusion
Correct errors or propose alternative interpretations
No formal affiliation is required. A respectful, evidence-based approach is expected from all contributors.
== '''Chapters and Content''' ==
'''Chapter 1: Introduction and Evaluation Criteria'''
'''Chapter 2: Gravity Theories – Comparison and Mapping'''
'''Chapter 3: Cosmic Expansion and Universe Models'''
'''Chapter 4: Planetary Formation, Disk Structures, and System Evolution'''
'''Chapter 5: Earth Science, Paleontology, and Planetary Growth'''
'''Chapter 6: Origin of Matter and Life – (Bio)Chemical Foundations'''
'''Chapter 7: Theory Convergence – Toward a Synthesis'''
'''Chapter 8: Epistemic Transparency and Scientific Bias Awareness'''
'''Chapter 9: References and Acknowledgements'''
== '''Permanent Link and Documentation''' ==
All chapters are written and versioned transparently. Drafts are generated in conversation with ChatGPT and refined through contributor review.
This is an open-access project under continuous development. Anyone is free to use, share, and improve upon this work under Wikimedia’s standard Creative Commons license.
mw992bowhhnc0nzrfhnafju3xa4imqx
File:VLSI.Arith.1.A.CLA.20250614.pdf
6
322094
2718992
2025-06-18T11:36:45Z
Young1lim
21186
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250614 - 20250613)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
2718992
wikitext
text/x-wiki
== Summary ==
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250614 - 20250613)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
== Licensing ==
{{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
97kjyg4cld3p24w65akn6j4e5b6pk4p
File:VLSI.Arith.1.A.CLA.20250616.pdf
6
322095
2718994
2025-06-18T11:37:36Z
Young1lim
21186
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250616 - 20250614)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
2718994
wikitext
text/x-wiki
== Summary ==
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250616 - 20250614)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
== Licensing ==
{{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
g1yv9bd09ndduydmwpilx3yrvtn1vz6
File:VLSI.Arith.1.A.CLA.20250617.pdf
6
322096
2718996
2025-06-18T11:38:40Z
Young1lim
21186
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250617 - 20250616)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
2718996
wikitext
text/x-wiki
== Summary ==
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250617 - 20250616)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
== Licensing ==
{{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
kzxdxb1njmv5yb7fhw550gp04ucxzxn
File:VLSI.Arith.1.A.CLA.20250618.pdf
6
322097
2718998
2025-06-18T11:39:36Z
Young1lim
21186
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250618 - 20250617)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
2718998
wikitext
text/x-wiki
== Summary ==
{{Information
|Description=VLSI.Arith: Carry Lookahead Adders 1A (20250618 - 20250617)
|Source={{own|Young1lim}}
|Date=2025-06-18
|Author=Young W. Lim
|Permission={{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
}}
== Licensing ==
{{self|GFDL|cc-by-sa-4.0,3.0,2.5,2.0,1.0}}
kc94nao6v6u0aaydk53yxej03zh8zce